Use this Pension Calculator to estimate a defined benefit (DB) pension based on final average salary, years of service, and your plan multiplier, then see the monthly amount. You can also model an early-retirement reduction and compare the monthly pension to a rough lump-sum value.
Advanced options
How to use our Pension Calculator
- Enter your Final average salary (USD per year), using the salary average your plan uses (often highest 3 or 5 years).
- Enter Years of service. You can use decimals if needed (example: 30.5).
- Enter your Pension multiplier (percent per year), sometimes called the accrual rate (example: 2).
- Set Retirement start age (years), the age when payments begin.
- Set Normal retirement age (years), the age when your plan usually pays the full (unreduced) amount.
- Open Advanced options if you want to estimate an early-retirement reduction, convert to today's dollars, or compute a rough lump-sum present value.
- Click Calculate to see your estimated annual pension, monthly pension, and replacement rate.
- If you filled in discount rate and years paid, review the lump-sum value as a comparison only (real plans can use different rates and mortality rules).
Definitions
Defined benefit (DB) pension: A retirement plan that pays a set benefit based on a formula, not an investment account balance.
Final average salary: The average yearly pay your plan uses in the formula (often your highest 3 or 5 years, or your last years).
Pension multiplier (accrual rate): The percent you earn each year of service (example: 2% per year).
Normal retirement age: The age when the plan typically pays the full, unreduced pension.
Early-retirement reduction: A cut to the pension if payments start before normal retirement age.
Replacement rate: Your pension as a percent of final average salary.
Present value: A way to estimate what a stream of future payments could be worth as a single lump sum today, using a discount rate. Real pension lump sums may follow IRS-related rules for rates and mortality assumptions. [1] [2]
Methodology
What this calculator estimates
This tool uses a common, generic DB pension formula, then applies an optional simple early-retirement reduction. It can also (optionally) convert the result to today's dollars using an inflation rate, and compute a rough lump-sum present value using fixed-term annuity math. For official numbers, your plan administrator (or PBGC for certain plans) can provide a benefit estimate based on your plan's exact rules and payment option. [3]
Step 1: Unreduced annual pension (generic formula)
unreduced_annual_pension = final_avg_salary * (multiplier_pct/100) * years_service
This is the baseline estimate before any early-retirement reduction.
Step 2: Early-retirement reduction (optional simple model)
years_early = max(0, normal_retire_age - retire_age)
reduction_pct = years_early * early_reduction_pct_per_year
if early_reduction_cap_pct is provided: reduction_pct = min(early_reduction_cap_pct, reduction_pct)
reduced_annual_pension = unreduced_annual_pension * (1 - reduction_pct/100)
If retire_age is at or after normal_retire_age, then years_early is 0, so the reduction is 0%. This model does not increase benefits for retiring after normal retirement age.
Step 3: Convert annual to monthly
monthly_pension = reduced_annual_pension / 12
Step 4: Replacement rate
replacement_rate_pct = 100 * (reduced_annual_pension / final_avg_salary)
If final_avg_salary is 0, the replacement rate is shown as N/A to avoid divide-by-zero.
Optional: Pension in today's dollars (real dollars)
This is only calculated when both current_age and inflation_pct are provided.
years_until_retire = max(0, retire_age - current_age)
today_dollars_monthly = monthly_pension / (1 + inflation_pct/100)^(years_until_retire)
This helps you compare a future monthly pension to prices today. It is a simple inflation adjustment, not a promise of how your plan will add cost-of-living increases.
Optional: Rough lump-sum present value (simple comparison)
This is only calculated when both pv_discount_pct and pv_years_paid are provided. Real pension lump sums can be based on IRS-related segment rates and mortality tables, so this result is for a rough sanity-check only. [1] [2]
r = pv_discount_pct/100
n = pv_years_paid*12
i = r/12
if i = 0: PV = monthly_pension * n
if i != 0: PV = monthly_pension * (1 - (1 + i)^(-n)) / i
Validation and edge-case handling
Required inputs must be valid numbers. Final average salary must be greater than 0, years of service cannot be negative, and the pension multiplier must be greater than 0 (blank is not allowed). Ages must be within a reasonable range (0 to 100). If the reduction percent reaches 100% or more, the pension is set to 0 and a warning is shown because the inputs imply no benefit under this simple model.