✦ Free Calculator

Lump sum, or the monthly check for life?

Every pension offer letter frames this as a simple choice. It isn't — the honest answer depends on your expected return, your life expectancy, and what happens to your spouse's income after you're gone. This calculator runs the actual present-value math, including the survivor benefit, and finds the break-even return rate most offer letters never show you.

Sibling of <retirement-calc-ss> (when to claim Social Security) and <retirement-calc-withdrawal> (4% vs. Guyton-Klinger) — same engine, different question.

Full explanation: Pension: Lump Sum or Annuity? →

See it in context

Here's exactly what that looks like — a live instance embedded inside a sample article, using someone else's fonts and colors, not ours.

steadyincomeadvisors.com/blog/lump-sum-vs-pension-annuity
Pension Planning · 7 min read

Your Pension Offer Letter Isn't Lying to You — But It Isn't Telling You Everything Either

SI
Steady Income Advisors
Pension & guaranteed-income planning

We see the same offer letter dozens of times a year: a lump sum figure on one line, a monthly annuity figure on another, and no real guidance on how to compare them. Both numbers are accurate. Neither one tells you which is actually better for your situation.

It's a present-value question, not a bigger-number question

A monthly check for life is worth a specific amount of money today — it just depends on how long "life" turns out to be and what you'd otherwise earn on the cash. Discount thirty years of $3,500/month payments back to today at a conservative return, and you get a real number you can put next to the lump sum. Whichever number is bigger, at your assumed return, wins. The catch is that most people never see this comparison; they see two numbers on a letter and guess.

Single-life vs. joint-and-survivor is the decision inside the decision

If you're married, the annuity almost always comes in at least two flavors: a higher monthly payment that stops entirely at your death, or a reduced payment that continues at some percentage — commonly 50%, 66%, or 100% — for your spouse's remaining lifetime. Picking the higher single-life number because it "pays more" can quietly hand your spouse a income cliff at exactly the moment they're grieving and least equipped to absorb a budget shock. This is the election people regret, because it's irreversible once made.

The number that matters isn't the biggest monthly check — it's the one your household can't be blindsided by.

A pension changes the shape of your whole plan

Take the annuity, and you've effectively bought a personal floor of guaranteed income — which means the rest of your portfolio can afford to take more risk, or fund a more aggressive early-retirement spending plan, because a hard floor is already covering the essentials. Take the lump sum, and that floor doesn't exist; market sequence risk is now entirely yours to manage. Neither choice is wrong, but they lead to genuinely different portfolios and different risk tolerances downstream — which is why this decision shouldn't be made in isolation from the rest of the plan.

Try it with your own numbers

Enter your monthly annuity offer, the lump sum on the table, your expected investment return, and — if you're married — the survivor percentage. The calculator shows which option wins in present-value terms today, and the exact return rate where that answer flips.

Try it

That's the exact <retirement-calc-pension> widget, unmodified — same script tag, same math as the full app. See the full picture → · Jump to the embed code ↓

For developers

Everything below is for embedding this calculator on your own site — integration code, theming, and events.

Live demos

Default (household, $3,500/mo vs $500K lump)

Themed (single, healthy retiree, $2,800/mo vs $400K lump)

Preview your theme

Pick colors that match your site, then copy the CSS snippet at the bottom.

Theme colors

Big number, slider thumb, CTA button
#4f8ec9
Outer surface of the calc
#ffffff
Result area + toggle background
#f7f9fc
Title, slider values, result subline
#1a1f2e
retirement-calc-pension {
  --rc-accent: #4f8ec9;
  --rc-bg: #ffffff;
  --rc-surf: #f7f9fc;
  --rc-text: #1a1f2e;
}

Integration code

Drop this into your HTML:

<script src="https://app.retirementscenario.com/embed/v1/pension.js"></script>

<retirement-calc-pension></retirement-calc-pension>

Or pre-seed values relevant to your audience:

<retirement-calc-pension
  plan-type="household"
  current-age="65"
  life-expectancy="88"
  spouse-life-expectancy="92"
  monthly-annuity="4200"
  lump-sum-offered="650000"
  expected-return="6.5"
  survivor-pct="75">
</retirement-calc-pension>

Attributes

AttributeDefaultRange
plan-typehouseholdsingle or household (= MFJ)
current-age6550 – 75 (your age when pension would start)
life-expectancy87currentAge – 105 (your expected lifespan)
spouse-life-expectancy90currentAge – 105 (HH only)
monthly-annuity3500500 – 20,000 ($/mo offered for life)
lump-sum-offered50000050,000 – 5,000,000 (one-time cash offer)
expected-return60 – 12 (% annual return if you invest the lump)
survivor-pct500 – 100 (HH only — % spouse receives after first death; common values: 50, 66, 75, 100)
refsrc(none)partner attribution tag

Honest scope: Nominal dollars only — no inflation adjustment, no COLA on annuity (most pensions are flat). Taxes treated equally between options (both options pay ordinary income tax similarly when received). Assumes pension is in user's name (survivor benefit applies when user dies first; swap inputs if pension is in spouse's name). Spouse assumed same age as user (pension starts same year). Doesn't model partial commutation (some plans offer partial lump + partial annuity). For multi-year retirement-plan modeling with this decision applied, use the full app.

Theming

Override CSS custom properties on the host:

retirement-calc-pension {
  --rc-accent: #ff6b35;    /* primary color */
  --rc-bg: #ffffff;        /* card background */
  --rc-surf: #f7f9fc;      /* sub-surface (result area) */
  --rc-text: #1a1f2e;
  --rc-muted: #6a7280;
  --rc-border: rgba(20,30,50,0.10);
  --rc-radius: 12px;
}

Events

The element emits two custom events you can listen to:

document.querySelector('retirement-calc-pension')
  .addEventListener('rc-calculated', (e) => {
    console.log('Annuity wins?', e.detail.annuityWins);           // boolean
    console.log('NPV delta:', e.detail.npvDelta);                 // absolute dollar advantage
    console.log('Break-even rate:', e.detail.breakEvenRate);      // % or null
    console.log('Annuity PV at return:', e.detail.pvAnnuityAtReturn);  // dollars
    console.log('Lump sum offered:', e.detail.lumpSum);
    console.log('Annuity nominal total:', e.detail.annuityTotalNominal);
  });

document.querySelector('retirement-calc-pension')
  .addEventListener('rc-cta-clicked', (e) => {
    console.log('User clicked CTA to:', e.detail.url);
  });