Calculate entitlement for part-time or part-year staff
days/year
hours
hours/week
months
Enter 12 for a full year.
0
Total Days Entitlement
Pro Rata Percentage:0%
Equivalent in Hours:0 hrs
How to Calculate Pro Rata Holiday Days
Calculating holiday entitlement for part-time employees or staff who start part-way through a leave year is a common payroll challenge. "Pro rata" literally means "in proportion," ensuring that employees receive leave benefits fair to the hours they actually work compared to a full-time equivalent.
This calculator handles the two most critical variables in holiday logic: reduced weekly hours and partial years of employment.
The Core Calculation Formula
To manually calculate pro rata holiday entitlement, you need to establish the ratio of the employee's work compared to a standard full-time role. The logic follows three steps:
Step 1: Determine the Part-Time Ratio (Employee Hours ÷ Full-Time Hours)
Step 3: Adjust for Partial Years (if applicable) (Full-Year Entitlement ÷ 12) × Months Employed
Practical Example
Let's look at a realistic scenario. Imagine a company offers 28 days of holiday to full-time staff who work 40 hours a week.
Scenario: Jane joins the company on a part-time contract working 20 hours per week. However, she joins 3 months into the holiday year, meaning she will only work 9 months of that year.
Ratio: 20 hours / 40 hours = 0.5 (50%)
Annual Base: 28 days × 0.5 = 14 days (if she worked the full year)
Pro Rata Adjustment: (14 days ÷ 12 months) × 9 months = 10.5 days
In this example, Jane is entitled to 10.5 days of leave for her first year.
Important Considerations
Bank Holidays: Be clear whether your "Standard Full-Time Holiday Allowance" includes public/bank holidays. In many jurisdictions (like the UK), the statutory minimum is 28 days inclusive of bank holidays. If your part-time worker doesn't work Mondays (when most bank holidays fall), you generally calculate their total pot (including bank holidays) pro rata and let them book the time off, rather than giving them specific bank holidays off automatically.
Rounding: Statutory guidance often states you cannot round down holiday entitlement. Usually, calculations resulting in a fraction (e.g., 10.3 days) should be treated exactly or rounded up to the nearest half-day depending on company policy, but never rounded down to deny statutory rights.
function calculateHoliday() {
// 1. Get Input Values
var stdDaysInput = document.getElementById('stdHoliday');
var stdHoursInput = document.getElementById('stdHours');
var empHoursInput = document.getElementById('empHours');
var monthsInput = document.getElementById('monthsWorked');
var errorDiv = document.getElementById('errorDisplay');
var resultBox = document.getElementById('resultBox');
// Parse floats
var stdDays = parseFloat(stdDaysInput.value);
var stdHours = parseFloat(stdHoursInput.value);
var empHours = parseFloat(empHoursInput.value);
var months = parseFloat(monthsInput.value);
// 2. Validation
if (isNaN(stdDays) || isNaN(stdHours) || isNaN(empHours) || isNaN(months)) {
errorDiv.style.display = 'block';
errorDiv.innerHTML = "Please ensure all fields contain valid numbers.";
resultBox.style.display = 'none';
return;
}
if (stdHours <= 0) {
errorDiv.style.display = 'block';
errorDiv.innerHTML = "Standard full-time hours cannot be zero.";
resultBox.style.display = 'none';
return;
}
if (months 12) {
errorDiv.style.display = 'block';
errorDiv.innerHTML = "Months worked must be between 0 and 12.";
resultBox.style.display = 'none';
return;
}
// Hide error if previously shown
errorDiv.style.display = 'none';
// 3. Calculation Logic
// Calculate the ratio of hours worked vs full time
var workRatio = empHours / stdHours;
// Calculate full year entitlement for this specific employee based on their hours
var personalFullYearEntitlement = stdDays * workRatio;
// Adjust for the portion of the year they are employed
// (Entitlement / 12) * Months
var finalEntitlementDays = (personalFullYearEntitlement / 12) * months;
// Calculate equivalent hours
// To get hours: (Standard Days * (StandardHours/5)) is roughly total annual hours?
// Better: finalEntitlementDays * (EmpHours / (Days worked per week?))
// If we don't know days worked per week, we convert the entitlement days into hours
// by assuming the entitlement days represents "standard days".
// A standard day = StdHours / 5 (assuming 5 day week is the basis for the "Days" input).
// Let's assume the Standard Days input implies a standard 5-day full-time week.
var standardDayInHours = stdHours / 5;
// However, for the specific employee, a "Day" of holiday usually matches their shift length OR
// the result is just a bank of hours.
// Formula: Total Holiday Hours = (Standard Days) x (Work Ratio) x (Months/12) x (Standard Hours / 5)
// Wait, simpler: We have FinalEntitlementDays (adjusted for hours and months).
// If these are "Full Time Equivalent Days" (e.g. 8 hours), then:
// Total Hours = FinalEntitlementDays * standardDayInHours.
var finalEntitlementHours = finalEntitlementDays * standardDayInHours;
// 4. Update UI
// Rounding to 1 decimal place for display usually suffices for days
// but let's show 2 to be precise, or clean up if integer.
var displayDays = Math.round(finalEntitlementDays * 100) / 100;
var displayHours = Math.round(finalEntitlementHours * 100) / 100;
var displayPercent = Math.round((workRatio * (months/12)) * 100);
document.getElementById('daysResult').innerHTML = displayDays;
document.getElementById('percentageResult').innerHTML = displayPercent + "% of Standard";
document.getElementById('hoursResult').innerHTML = displayHours + " hours";
resultBox.style.display = 'block';
}