✦ Free Calculator

Your success rate says 87%. But where does the plan actually break?

A single Monte Carlo percentage tells you a plan mostly works. It doesn't tell you whether it's exposed to a bad decade early in retirement, to living longer than planned, or to inflation quietly outrunning the budget — three very different risks that can produce the exact same headline number.

Sibling of <retirement-calc-age> — same engine, different question.

Full explanation: Will My Money Last? →

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.

downsideprotected.com/blog/success-rate-is-not-risk-profile
Risk Analysis · 7 min read

Your Plan's Success Rate Isn't Its Risk Profile — Here's the Difference

DP
Downside Protected
Risk-exposure analysis for retirees

Clients bring us a number from some calculator — "I'm at 89% success" — like it settles the question. It doesn't. Two plans can both land at 89% and be fragile in completely different, and completely unrelated, ways.

One number, three different exposures

A Monte Carlo success rate is an average across a thousand simulated futures. It blends together plans that fail because the market crashes in year one, plans that fail because someone lives to 97, and plans that fail because inflation eats the budget by year twenty. Averaging those together into one percentage is mathematically correct and practically unhelpful — you can't do anything about "89%." You can do something about "your plan is fine unless the market drops in the first five years."

Sequence-of-returns risk is a timing problem, not a returns problem

The same average annual return produces wildly different outcomes depending on when the bad years land. A portfolio that loses 20% in year one of retirement, while withdrawals are already being taken, recovers very differently than one that loses 20% in year fifteen after two decades of growth. This is why "the market averages 7% a year" is close to useless for judging whether a specific retirement date is risky.

Longevity risk hides behind a comfortable median

Most retirement math quietly plans to a life expectancy that's really a coin-flip midpoint — half the people modeled live longer than that. A plan that looks solid to age 90 can be genuinely exposed if either spouse has a real chance of reaching 95 or 100. That's a distinct fragility from a bad market, and it needs a distinct answer (spending flexibility, longevity insurance, a later claim age), not just "a bigger success rate."

A plan can be robust against one risk and fragile against another — "robust" only means something once you say robust to what.

Try it with your own numbers

Adjust the sliders to the right — savings, spending, retirement age, Social Security — and watch the simulation respond in real time. No signup, and nothing entered leaves the browser.

What a single score can't show you

This calculator gives you the headline stress-tested number, which is a real improvement over a static rule of thumb — but it's still one number. Separating that number into its component exposures (sequence, longevity, inflation) and ranking which one is actually load-bearing for a specific plan is a deeper analysis than one slider panel can do. If the number here surprises you, that's the right moment to look closer, not the moment to panic or shrug it off.

Try it

That's the exact <retirement-calc-resilience> 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 (single, defaults)

Themed (orange accent, household, pre-seeded)

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-resilience {
  --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/resilience.js"></script>

<retirement-calc-resilience></retirement-calc-resilience>

Or pre-seed values relevant to your audience:

<retirement-calc-resilience
  plan-type="household"
  current-age="48"
  current-savings="1200000"
  contrib-annual="35000"
  retirement-age="62"
  monthly-goal="7500"
  ss-amount="2700"
  return-pct="7.0">
</retirement-calc-resilience>

Attributes

AttributeDefaultRange
current-age5030 – 70
current-savings10000000 – 5,000,000
contrib-annual250000 – 50,000 (incl. employer match)
retirement-age6550 – 75 (planned retirement age)
monthly-goal50001,000 – 20,000 (today's-$ monthly retirement spending)
ss-amount25000 – 5,000 (monthly at FRA)
return-pct7.04.0 – 10.0 (nominal annual %, engine handles inflation)
plan-typesinglesingle or household
refsrc(none)partner attribution tag

Theming

Override CSS custom properties on the host:

retirement-calc-resilience {
  --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-resilience')
  .addEventListener('rc-calculated', (e) => {
    console.log('Stress-tested success rate (0-100):', e.detail.stressSR);
  });

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