Run the same plan through two retirement apps and you can get two very different numbers. Usually neither app did the math wrong; they made different guesses about the next 30 years. This calculator runs one plan four ways, so you can see how much of the answer comes from the assumptions rather than from you. Drop it into your own article in one script tag.
The same four views as the “How much do assumptions matter?” card in the full app — same engine, same numbers.
Full explanation: Why Retirement Calculators Disagree →
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.
That's the exact <retirement-calc-assumptions> widget, unmodified — same script tag, same math as the full app. See the full picture → · Jump to the embed code ↓
Everything below is for embedding this calculator on your own site — integration code, theming, and events.
Pick colors that match your site, then copy the CSS snippet at the bottom.
retirement-calc-assumptions {
--rc-accent: #4f8ec9;
--rc-bg: #ffffff;
--rc-surf: #f7f9fc;
--rc-text: #1a1f2e;
}
Drop this into your HTML:
<script src="https://app.retirementscenario.com/embed/v1/assumptions.js"></script>
<retirement-calc-assumptions></retirement-calc-assumptions>
In the partner program? Add your via tag — readers who click through to the full app then credit your account (40% of anything they buy, 90-day window):
<retirement-calc-assumptions via="your-partner-name"></retirement-calc-assumptions>
Or pre-seed values relevant to your audience:
<retirement-calc-assumptions
current-age="48"
retirement-age="60"
current-savings="1200000"
contrib-annual="22000"
monthly-goal="7500"
ss-amount="2700">
</retirement-calc-assumptions>
| Attribute | Default | Range |
|---|---|---|
current-age | 55 | 30 – 75 |
retirement-age | 65 | current age – 75 |
current-savings | 900000 | 0 – 5,000,000 |
contrib-annual | 20000 | 0 – 100,000 (150,000 for a couple) — everything saved each year until retirement, including employer match, backdoor Roth and IRAs; fills the 401(k) up to its limit, the rest is modeled as a brokerage account |
plan-type | single | single or household — a couple: savings, yearly savings and spending are household totals; the spouse is the same age and retires at the same time |
spouse-ss-amount | 1800 | 0 – 5,000 (spouse’s monthly Social Security at 67; couple mode only) |
monthly-goal | 6000 | 1,000 – 20,000 (retirement spending, today’s dollars) |
ss-amount | 2500 | 0 – 5,000 (monthly at 67) |
refsrc | (none) | optional placement label for your own tracking (analytics only) |
via | (none) | your affiliate tag — credits your partner account (40% of referred purchases) when readers click through and buy |
Override CSS custom properties on the host:
retirement-calc-assumptions {
--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;
}
The element emits two custom events you can listen to:
document.querySelector('retirement-calc-assumptions')
.addEventListener('rc-calculated', (e) => {
console.log('Your plan:', e.detail.scan.ours.sr, 'Popular:', e.detail.scan.popular.sr);
});
document.querySelector('retirement-calc-assumptions')
.addEventListener('rc-cta-clicked', (e) => {
console.log('User clicked CTA to:', e.detail.url);
});