The annual salary you would earn if working full-time.
Enter your average contracted hours per week.
Defined Benefit schemes typically accrue at 1/60th or 1/80th per year. Enter the denominator (e.g., 60).
Pro Rata Ratio (FTE %):0%
Pensionable Service (Years):0.00
Estimated Annual Pension:$0.00
Understanding Pro Rata Pension Calculations
Calculating a pension for part-time employees can be complex because most Defined Benefit schemes are designed around full-time hours. A Pro Rata Pension adjustment ensures that part-time workers receive a pension that is fair and proportional to the hours they have actually worked compared to a full-time equivalent (FTE) colleague.
How the Calculation Works
The standard formula for a Defined Benefit (Final Salary or Career Average) pension usually follows this structure:
FTE Salary: The salary the role pays for a standard full-time week.
Accrual Rate: The fraction of your salary you "bank" as pension for every year worked (commonly 1/60th or 1/80th).
Pro Rata Ratio: This is calculated by dividing your actual contracted hours by the company's standard full-time hours.
The Formula
Our calculator uses the standard accepted method for adjusting service for part-time hours:
(Actual Hours / Standard Hours) × Years of Service = Pensionable Service
Then, the annual pension is determined by:
(Pensionable Service / Accrual Rate Denominator) × FTE Salary
Example Scenario
Imagine an employee who works 20 hours a week where the standard week is 40 hours. Their role pays $60,000 for full-time work (FTE Salary), and they have worked there for 10 years on a scheme with a 1/60th accrual rate.
FTE Ratio: 20 / 40 = 0.5 (50%)
Pensionable Service: 10 years × 0.5 = 5 full-time equivalent years.
Calculation: (5 / 60) × $60,000 = $5,000 per year.
Without the pro rata adjustment, calculating simply based on 10 years would incorrectly suggest a pension of $10,000. The pro rata calculation ensures the payout reflects the actual time worked.
Why Check Your Accrual Rate?
The "Accrual Rate" is a critical variable. Older pension schemes often used 1/80th (giving a lump sum alongside the pension), while modern schemes often use 1/60th or even 1/50th (generally without an automatic lump sum). Inputting the correct denominator is essential for an accurate estimate.
function calculateProRataPension() {
// Get input values
var fteSalary = parseFloat(document.getElementById('fteSalary').value);
var stdHours = parseFloat(document.getElementById('stdHours').value);
var actHours = parseFloat(document.getElementById('actHours').value);
var years = parseFloat(document.getElementById('yearsService').value);
var accrualDenom = parseFloat(document.getElementById('accrualRate').value);
// Clear previous errors if any (simple alert for invalid inputs)
if (isNaN(fteSalary) || fteSalary < 0) {
alert("Please enter a valid FTE Salary.");
return;
}
if (isNaN(stdHours) || stdHours <= 0) {
alert("Please enter valid Standard Hours.");
return;
}
if (isNaN(actHours) || actHours < 0) {
alert("Please enter valid Actual Hours.");
return;
}
if (isNaN(years) || years < 0) {
alert("Please enter valid Years of Service.");
return;
}
if (isNaN(accrualDenom) || accrualDenom <= 0) {
alert("Please enter a valid Accrual Rate denominator (e.g. 60).");
return;
}
// 1. Calculate the Pro Rata Ratio (FTE Ratio)
var fteRatio = actHours / stdHours;
// Cap ratio at 1 (100%) generally, though some might work overtime.
// Usually pension schemes cap pensionable service at FTE, but let's allow raw math.
// For display purposes, we format nicely.
// 2. Calculate effective pensionable service (Years * Ratio)
var pensionableService = years * fteRatio;
// 3. Calculate Annual Pension
// Formula: (Pensionable Service / Accrual Denominator) * FTE Salary
var annualPension = (pensionableService / accrualDenom) * fteSalary;
// Display Results
var resultDiv = document.getElementById('results');
resultDiv.style.display = "block";
// Format percentage for display
document.getElementById('fteRatioResult').innerHTML = (fteRatio * 100).toFixed(2) + "%";
// Format service years
document.getElementById('pensionableServiceResult').innerHTML = pensionableService.toFixed(2) + " Years";
// Format currency
document.getElementById('annualPensionResult').innerHTML = "$" + annualPension.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2});
}