Calculating Pro Rata Holiday

Pro Rata Holiday Calculator

Calculate the annual holiday entitlement for part-time employees based on a full-time equivalent.

No Rounding Round to nearest half day Round up to next whole day
Your Pro Rata Holiday Entitlement:
Days per Year
Please ensure all fields are filled with positive numbers.

Understanding Pro Rata Holiday Calculation

Pro rata holiday is the amount of annual leave an employee is entitled to, calculated in proportion to the number of hours they work compared to a full-time employee. In many jurisdictions, including the UK, part-time workers have the legal right to be treated no less favorably than full-time workers, meaning their holiday allowance must be proportional.

The Pro Rata Formula

The standard formula used in this calculator is:

(Part-time Hours / Full-time Hours) × Full-time Holiday Entitlement = Pro Rata Entitlement

Example Calculation

If a full-time employee works 40 hours per week and receives 28 days of holiday per year, and you work 20 hours per week:

  • Step 1: 20 / 40 = 0.5 (You work 50% of full-time hours)
  • Step 2: 0.5 × 28 = 14 days

Your pro rata holiday entitlement would be 14 days per year.

A Note on Bank Holidays

Pro rata calculations should usually include bank holidays. If a full-time entitlement of 28 days includes 8 bank holidays, the part-time calculation should be applied to the total (28 days). This ensures that part-time workers whose scheduled days do not fall on bank holidays still receive their fair share of paid time off.

function calculateHoliday() { var ftHours = parseFloat(document.getElementById('fullTimeHours').value); var ptHours = parseFloat(document.getElementById('partTimeHours').value); var ftEntitlement = parseFloat(document.getElementById('fullTimeEntitlement').value); var rounding = document.getElementById('roundingPreference').value; var resultDiv = document.getElementById('holidayResult'); var valueDiv = document.getElementById('holidayValue'); var errorDiv = document.getElementById('errorBox'); // Reset display errorDiv.style.display = 'none'; resultDiv.style.display = 'none'; // Validation if (isNaN(ftHours) || isNaN(ptHours) || isNaN(ftEntitlement) || ftHours <= 0 || ptHours <= 0 || ftEntitlement <= 0) { errorDiv.style.display = 'block'; return; } // Logic: (Part time / Full time) * Entitlement var proRata = (ptHours / ftHours) * ftEntitlement; // Apply Rounding var finalValue; if (rounding === 'half') { finalValue = Math.round(proRata * 2) / 2; } else if (rounding === 'up') { finalValue = Math.ceil(proRata); } else { finalValue = Math.round(proRata * 100) / 100; } // Display valueDiv.innerText = finalValue; resultDiv.style.display = 'block'; }

Leave a Comment