Kessavo

Methodology

Every formula, in plain language and in the exact numbers.

This page exists so you don't have to take "we show our work" on faith. Below is exactly how Kessavo calculates Social Security, pensions, RMDs, taxes, and Medicare surcharges — and, just as important, exactly where it simplifies and what it doesn't attempt to model yet.

Tax brackets and figures last verified: August 7, 2026

How the projection runs

Kessavo simulates your finances month by month, from today through age 100, using three account buckets: taxable/cash, tax-deferred (401(k), 403(b), 457(b), 401(a), TSP, traditional IRA, and similar — anything that grows tax-deferred and is taxed as ordinary income on withdrawal), and Roth. Each year it works out your income (Social Security plus any withdrawals), your expenses (living costs, health insurance or Medicare, taxes, debt, long-term care if you've added it), and covers the gap by drawing from your accounts in a fixed order:

  1. Taxable/cash first
  2. Tax-deferred next
  3. Roth last

That order is the default modeled sequencing approach, chosen to keep the assumptions consistent across scenarios. It is not a withdrawal recommendation. Required minimum distributions (RMDs) are enforced on top of this order once you're old enough that they apply, even if you don't otherwise need the money that year.

Why the model runs through age 100: Planning through 100 is really about buying yourself confidence: it means the projection still holds up in the best-case version of your life, where you stay healthy and stick around longer than the averages suggest. That is a genuinely likely outcome for people who are financially prepared and looking after themselves — of 65-year-olds today, roughly one in nine reaches 95, and for a couple the chance that at least one of them does is closer to one in five. The odds tend to run better still for a healthy, well-off household. Modeling through 100 is not a prediction that you will get there; it is a way of making sure a long, good life is something the plan can comfortably absorb rather than something it depends on you not having.

One deliberate simplification worth naming directly: taxes and Medicare surcharges are calculated on a one-year lag — this year's income determines next year's tax bill and Medicare premium, which is how these systems actually work in real life (IRMAA in particular is explicitly based on your tax return from two years prior). We simplified that two-year lag to one year for modeling clarity, which is close enough to matter less than getting the mechanism itself right, but it's not an exact calendar match to the real IRMAA timeline.

The years before you retire

If you're still working, the years between now and your retirement year are modeled as anaccumulation phase. Enter your salary and how much of it you save, and the model adds those contributions to your accounts month by month so they compound alongside your existing balances. Employer contributions go into your tax-deferred bucket; your own contributions split between tax-deferred and Roth according to the share you set. Contributions stop in your retirement year.

Contributions respect the 2026 IRS limits: the elective deferral limit, the additional catch-up amount from age 50, the larger catch-up amount that applies only from age 60 through 63, the total annual additions limit, and the compensation limit that caps the salary an employer match can be calculated on. The limits are treated as holding their value in today's dollars, on the assumption they keep being adjusted for inflation as they are now.

What this deliberately leaves out. Your salary isn't taxed in the model, and your spending before retirement isn't modeled either. Doing one without the other would be incoherent, and doing both would mean asking you to budget your working life as well as your retirement. Asking what you save instead takes the number you already know. One consequence follows from it: because there's no pre-retirement tax, a dollar of traditional and a dollar of Roth contribution are treated the same, which understates what the Roth dollar really costs you today. Leave the salary field blank and none of this applies — the projection behaves exactly as it does for someone already retired.

Other income and one-time amounts

Beyond Social Security and pensions, you can add recurring income — part-time or consulting work, rental or business income, an annuity — each with its own start age, optional end age, inflation treatment, and whether it's taxable. It's applied from your retirement year onward, the same as Social Security and pension income, because the model doesn't charge living costs before then. Anything you earn while still working reaches the plan through your savings rate instead, so a part-time figure and a salary can't double-count each other.

One-time amounts — an inheritance, downsizing proceeds, a business sale, severance, shares vesting — are entered in today's dollars with the year they arrive and the account they land in. Whether receiving one is itself a taxable event is a separate question from where it goes: severance and vesting equity are ordinary income in the year they land, while an inheritance generally isn't.

Two simplifications to know about. Each income source is treated as either fully taxable as ordinary income or fully tax-free — rental depreciation and the partly-taxable treatment some annuities receive aren't modeled, so enter rental and business figures net of costs. And an inherited tax-deferred account generally has to be emptied within 10 years; the model adds the balance but doesn't enforce that deadline, so the later years of a scenario built that way run optimistic.

Social Security

You can enter either your 62–70 benefit table straight from your Social Security statement, or a single estimate at your full retirement age — the model derives the rest from there using the SSA schedule for your entered birth year. The calculator collects birth year, not month and day, so it cannot apply the January 1 birth-date exception.

If you're already receiving Social Security, you tell the model that instead, and enter the gross monthly amount arriving now. That figure is used exactly as entered: it already carries whatever early reduction, delayed credit or spousal top-up was applied when the benefit was awarded, so the model applies none of them a second time and derives no further spousal amount for you. It is paid from the first modeled year and adjusted for inflation from there, and no claiming-age comparison is produced, because there is no longer a choice to compare. Two limits worth knowing: the model doesn't ask for your primary insurance amount, so the survivor floor that protects a widow or widower from a deceased spouse's early claim can't be applied — a survivor receives the full amount the deceased was being paid. Because the calculator does not ask for the primary insurance amount when a benefit is already in payment, it cannot apply the early-claim survivor floor in that branch.

If you've entered a salary and haven't filled the benefit in yourself, the model estimates it for you rather than leaving you to guess. It does what the published formula does: cap your earnings at the Social Security taxable maximum, average them over the 35 years the formula counts to get your average indexed monthly earnings, then apply the three-bracket rate — 90%, 32% and 15% of the portions falling between the bend points — and round down to the nearest dime.

That estimate is ours, not the Social Security Administration's. Two things make it approximate. It assumes you earn at the level you entered for your whole career, and most careers rise over time — so a salary entered at your peak will read high. And bend points are indexed to national wage growth and applied in the year you turn 62, while the model uses the current year's, pricing your benefit as if you turned 62 today. Your real figure is atssa.gov/myaccount; type it in and it replaces the estimate permanently. Kessavo is not affiliated with or endorsed by any government agency.

The numbers

  • Claiming before your full retirement age: your benefit is reduced 5/9 of 1% per month for the first 36 months early, then 5/12 of 1% per month for any additional months earlier than that.
  • Claiming after your full retirement age: your benefit increases 2/3 of 1% per month, up to age 70.
  • Spousal benefits: up to 50% of the higher earner's full-retirement-age benefit, reduced on its own early-claiming schedule if the spouse claims before their own full retirement age — a steeper reduction in the first three years early than an individual's own benefit uses.
  • The model pays whichever is higher for a given spouse in a given year — their own benefit, or the spousal amount — reflecting the Social Security rule Kessavo currently models.

Source: 20 CFR §404.410, SSA — Delayed Retirement Credits

Survivor view (Premium)

In couple mode, you can model your spouse passing away at a chosen age. From that age on, your household Social Security switches from spousal rules to the survivor ("widow(er)") rules Kessavo currently models, your spouse's Medicare Part B and IRMAA cost drops off, and your spouse no longer contributes to the senior deduction.

The numbers

  • The survivor benefit's base amount: 100% of what your spouse was actually receiving if they claimed at or after their own full retirement age — survivor benefits do get the benefit of delayed retirement credits. If they claimed early, the base is the higher of their actual reduced benefit or 82.5% of their full benefit amount — a floor that protects you from their early-claiming choice.
  • Your own reduction as the survivor: 100% of that base if you're at your own full retirement age or later when the survivor benefit starts, reduced on a straight line down to 71.5% at age 60 — survivor benefits can start as early as 60, earlier than retirement benefits' age-62 floor.
  • The model pays whichever is higher: your own claimed benefit, or the survivor benefit.

What this simplifies: this models the primary person surviving their spouse — the reverse case isn't modeled yet. It uses your already-chosen claim age rather than independently optimizing when to start survivor benefits (the real "widow's switch" strategy some people use). It doesn't change tax filing status or federal brackets beyond removing your spouse's share of the senior deduction, and it doesn't reduce household spending automatically — if you expect your expenses to drop after your spouse is gone, adjust your expense slider yourself to see that effect layered on top.

Source: Congressional Research Service, IF12091 (the widow(er)'s limit provision), 20 CFR §404.410

Pension income

Kessavo treats pension income as a separate income source, not as a larger savings balance. You enter a monthly amount, the age it starts, whether it keeps pace with inflation, and whether it is military retired pay for state-tax purposes. A pension marked as inflation-adjusted stays flat in today's dollars; a fixed nominal pension erodes each year by the inflation assumption, the same real-dollar convention used elsewhere in the projection.

The numbers

  • Pension income reduces account withdrawals before the funding waterfall runs, just like Social Security. If Social Security plus pension income is higher than the month's expenses, the surplus is added to the taxable/cash bucket.
  • Pension income is counted as ordinary federal income, included in the Social Security provisional-income calculation, and included in the MAGI proxy used for Medicare IRMAA and ACA subsidy estimates.
  • Survivor continuation is modeled only for a spouse's pension, at the percentage you enter. That matches the current survivor view: it models you as the survivor, and the reverse case isn't modeled yet.
  • Military retired pay uses a state exemption table before state tax is calculated. Civilian pensions use the ordinary state income-tax treatment already modeled for the household.

What this simplifies: private pensions often default to a qualified joint and survivor annuity for married participants, while military Survivor Benefit Plan coverage is elective and commonly continues 55% of the elected base amount. Kessavo lets you enter the spouse-pension survivor percentage directly rather than deciding whether a real plan election exists. State military pension exemptions are also simplified: Colorado, Delaware, and Maryland use age cutoffs because age is already available; California and Vermont income caps are not modeled; Montana's 5-year provision is not modeled; Oregon's pre-1991-service provision is not modeled; and Idaho's disability provision is not modeled. This state-by-state list should be spot-checked periodically because state tax law changes; the military retirement state-tax data reflects information current as of February 2026.

Source: IRS — Qualified joint and survivor annuity, Military.com — Survivor Benefit Plan in 2026, NASRA — Cost-of-Living Adjustments issue brief, Defense Finance and Accounting Service — Retirement COLA, Military.com — State taxation of military retirement pay

Required minimum distributions (RMDs)

Once you reach your RMD age, you're required to withdraw a minimum amount from tax-deferred accounts each year, calculated using the IRS Uniform Lifetime Table — your account balance divided by a life-expectancy factor that shrinks as you age (26.5 at age 73, down to 6.4 at age 100).

The numbers

  • Born 1959 or earlier: RMDs start at age 73.
  • Born 1960 or later: RMDs start at age 75.
  • Kessavo applies whichever age matches your entered birth year — this isn't a flat rule.

Source: IRS Publication 590-B, Congressional Research Service, IF12750 (SECURE 2.0 RMD age)

Roth conversion (Premium)

You can model converting a fixed amount from your tax-deferred balance to Roth each year, over a range of ages you choose — a common strategy for filling up low tax brackets in the years before RMDs start, so future forced withdrawals (and the taxes they trigger) are smaller.

Each converted dollar leaves your tax-deferred balance and lands in Roth immediately, and is taxed as ordinary income the same year it converts — modeled like a regular withdrawal, using the same one-year tax lag as everything else in the model. Converting more shrinks the balance your future RMDs are calculated against, so the effect compounds the earlier it happens relative to your RMD age.

What this simplifies: Kessavo models a flat amount over a chosen age range, not a dynamic "fill exactly to the top of the 12% bracket" strategy that adjusts every year based on your other income. That kind of year-by-year optimization is a real strategy some tools specialize in — this is a simpler version of the same idea.

Federal income tax

Ordinary income — tax-deferred withdrawals, RMDs, and the taxable portion of Social Security — is taxed using the 2026 single-filer federal brackets, after your standard deduction ($16,100, plus an additional $2,050 if you're 65 or older). In couple mode, Kessavo uses married-filing-jointly brackets and deduction figures instead — not a simple doubling of the single-filer numbers. The MFJ standard deduction is $32,200 (exactly double), but the age-65 addition is $1,650 per qualifying spouse, not $2,050, and the top 37% bracket starts at $768,700 MFJ versus $640,600 single — nowhere near double.

Taxable income up toRate
$12,40010%
$50,40012%
$105,70022%
$201,77524%
$256,22532%
$640,60035%
37%

The temporary senior deduction: an additional $6,000 deduction applies per qualifying spouse age 65+ — up to $12,000 for a couple where both qualify — phasing out at 6 cents per dollar of household income above $75,000 (single) or $150,000 (joint), and currently legislated to disappear after tax year 2028. Kessavo applies and expires this deduction on that same schedule, rather than treating it as a permanent feature of the tax code.

Source: IRS — 2026 inflation adjustments (including OBBBA amendments)

Fixed 2026-08-07: the brackets above previously started one bracket too high in the underlying calculation (the first $12,400 of income was taxed at 0% instead of 10%, and every dollar above that at the prior bracket's lower rate), understating tax across every plan. Verified against IRS Rev. Proc. 2025-25 and Rev. Proc. 2025-32's own worked figures and corrected. The same pass also added the MFJ brackets and deduction figures described above, replacing an earlier version that used single-filer brackets even in couple mode. See review-or-fix.md #12 and #13.

Capital gains on taxable withdrawals

When you withdraw from your taxable account, Kessavo estimates how much of that withdrawal is gain (versus a return of your original investment) using your cost-basis percentage input, and taxes only the gain — at long-term capital gains rates, stacked on top of your ordinary income.

The numbers

  • 0% up to $49,450 of stacked income.
  • 15% up to $545,500.
  • 20% above that.

What this simplifies: Kessavo uses one blended cost-basis percentage across your whole taxable account rather than tracking individual purchase lots — this matches how every major competitor we reviewed handles it (none do lot-level tracking in a consumer-facing planner), but it's still an estimate, not your actual per-lot basis.

Source: IRS — 2026 inflation adjustments

How Social Security gets taxed

Up to 85% of your Social Security benefit can itself be subject to federal income tax, depending on your other income. Kessavo models the "provisional income" method used for Social Security taxation: your other taxable income plus half your Social Security benefit, compared against thresholds that determine what portion becomes taxable.

The numbers (single-filer, not inflation-indexed since 1984 — this isn't a Kessavo simplification, these thresholds are genuinely fixed in the tax code)

  • Provisional income under $25,000: none of your benefit is taxable.
  • $25,000–$34,000: up to 50% becomes taxable.
  • Above $34,000: up to 85% becomes taxable.

Source: Congressional Research Service, IF11397 (Social Security taxation)

State tax

Kessavo uses curated state-specific tax handling for 13 states — full progressive brackets where the state has them (CA, NY, NJ, VA, OR, SC), and the correct flat rate where it doesn't (MA, MI, NC, GA, AZ, OH, CO) — automatically applies $0 for the 9 states with no income tax (AK, FL, NV, NH, SD, TN, TX, WA, WY) and the 4 states that fully exempt retirement income (IA, IL, MS, PA), and falls back to a flat-rate estimate you set yourself for every other state.

What this simplifies: we didn't attempt full 50-state bracket accuracy — no retirement planning tool we reviewed does. The 13 curated states cover the specific carve-outs that can move the number (like Social Security exemptions); everything outside that list uses your flat-rate estimate as an intentional, narrower version of the same fallback every competitor in this category also relies on.

Source: Tax Foundation — 2026 state income tax rates, SC Department of Revenue — H.4216 (each state's own Department of Revenue is the primary source for its figures)

Medicare and IRMAA

Once Medicare is active, Kessavo applies the standard Part B premium plus any IRMAA surcharge your income triggers — calculated per person, so a couple where both spouses are 65+ sees both premiums and both surcharges stack. Married-filing-jointly households are checked against the higher joint MAGI thresholds below, not the single-filer ones, using the household's combined income.

MAGI up to (single)MAGI up to (MFJ)Part B surcharge (added to the $202.90 standard premium)Add-on
$109,000$218,000$0$0*
$137,000$274,000$81.20$14.50
$171,000$342,000$202.90$37.50
$205,000$410,000$324.60$60.40
$500,000$750,000$446.30$83.30
aboveabove$487.00$91.00

* The standard $202.90 Part B base premium always applies, regardless of income tier — the surcharge/add-on columns show only the additional IRMAA amount. Joint thresholds are roughly double the single ones, except the top tier ($750,000 joint vs. $500,000 single) — a real regulatory asymmetry, not a doubling shortcut.

What isn't included after 65: Kessavo charges the Part B premium, the Part B surcharge and the Part D surcharge — but not the Part D premium itself, and not Medigap or a Medicare Advantage plan. That is worth knowing precisely, because it isn't a rounding difference: a Part D plan is commonly around $40 a month and Medigap frequently more than the Part B premium itself. We leave them out because what you'd actually pay depends on the plan you pick and where you live, and a national average would be a number nobody is charged. Add your own figure for these to your monthly spending — the model won't add it for you, and reading the modeled Medicare cost as your whole healthcare cost after 65 will understate it.

Before 65: you enter your plan's full monthly premium — not a pre-subsidized guess — and Kessavo estimates your ACA premium tax credit automatically each year, based on your projected income, and nets it against that premium. Kessavo doesn't estimate the premium itself, since that varies heavily by state, county, and plan tier; you're expected to enter your own estimate of the full cost.

The numbers: for 2026, the enhanced ACA subsidies from 2021–2025 have expired — the original 400% federal poverty level (FPL) cliff is back, meaning $0 subsidy above that income line, with no exceptions. Below it, your expected contribution runs from 2.10% of income (under 133% FPL) up to a flat 9.96% (300–400% FPL), on a sliding scale in between. Kessavo compares your projected income each year against the federal poverty guideline for your household size (1 or 2), applies the matching percentage, and covers the rest of your entered premium up to that amount.

What this simplifies: ACA subsidies use your income estimate at enrollment, reconciled against actual income at tax time (Form 8962) — Kessavo uses a one-year lag instead (this year's income sets next year's subsidy), the same simplification already used for tax and Medicare IRMAA elsewhere on this page. Household size is based on couple mode only (1 or 2) — dependents aren't modeled.

Sources: IRS Rev. Proc. 2025-25 (2026 premium tax credit applicable percentages), HHS 2026 poverty guidelines, Federal Register — CMS 2026 Medicare Part B premium rule

Survival-probability horizon (Premium)

Instead of assuming everyone lives to exactly one fixed age, Kessavo uses selected 2023 SSA period life-table data to estimate the probability you're still alive at a given age — and, for couples, the probability at least one spouse is still alive, which is meaningfully later than either individual's own odds.

Source: SSA — 2023 Period Life Tables

Monte Carlo simulation

Rather than a single fixed annual return, Monte Carlo mode runs 300 trials, each drawing a random annual return for every year from a normal distribution centered on your expected return with your chosen volatility. Volatility follows your expected return unless you set it yourself — the two describe one portfolio, and interpolating between conventional allocations (roughly 4% volatility at a 3% return, 19% at 12%) keeps the pair coherent. Those anchors are a modeling judgment, not a published table, and are marked as such in the engine's source map; if you enter your own figure it is used exactly as entered. Because more than half of trials can deplete before age 100 in a given scenario, an ending-balance figure for the worst-case or median trial is often $0 — so results are reported as the age each percentile (worst 10%, median, best 10%) stays funded through, alongside the percentage of trials still funded at ages 80, 85, 90, 95, and 100, and a chart of the balance range across all simulated ages.

What this simplifies: returns are drawn independently each year (no modeled correlation between a bad year and the years around it, i.e. no explicit "sequence risk" clustering beyond what randomness alone produces), and the distribution is a plain normal curve, not a bootstrap from actual historical market sequences.

Sequence of returns. Because the simulation reports order-dependence only as a percentage, your results page also shows it directly: one drawn set of yearly returns, run twice — sorted best-first and sorted worst-first. Both runs use the same money over the same years and carry an identical arithmetic mean by construction, so the whole gap between them is attributable to ordering. They are the two extremes of that ordering, not forecasts and not likelihoods; the Monte Carlo above remains the probabilistic view.

Single-change comparisons

The "if you changed one thing" panel re-runs the model at your fixed expected return, once per change, with a single input moved and everything else held where you set it: spending $500/month less, claiming Social Security at 70, retiring two years later, or saving $500/month more. Changes that are not available to you are left out rather than shown greyed — there is no claiming row once a benefit is in payment, and no retire-later or save-more row once you have retired or if you entered no salary.

Why these units. A projection that depletes is ranked by how many extra years of funding each change buys; one that reaches age 100 is ranked by ending balance, since every change would otherwise tie at zero extra years. Deliberately not expressed as a movement in a success score against a target — that framing states a recommendation, and these are modeled outcomes under your own assumptions. The step sizes are fixed so the rows are comparable; the sliders above the panel let you model any size of change.

What Kessavo doesn't model yet

Stated plainly, not buried: these are the things Kessavo either simplifies more than the categories above, or doesn't attempt at all.

  • Qualified charitable distributions. No modeling of using RMDs to satisfy charitable giving tax-free.
  • Per-account growth rates. Taxable/cash balances use one rate; tax-deferred and Roth balances share a single rate rather than each having its own.
  • State-specific credits beyond the curated list. Outside the 13 curated states, state tax is a flat estimate you provide, not a real bracket calculation.
  • Massachusetts' millionaire surtax. The engine models Massachusetts as a flat 5% — it doesn't add the extra 4% surtax that applies to taxable income above roughly $1.1M. Low materiality for most users, but worth knowing if that applies to you.
  • Net Investment Income Tax (NIIT). The 3.8% NIIT on investment income (including the taxable gain portion of a withdrawal) once MAGI exceeds $200,000 for a single filer isn't modeled. This can understate your tax bill in a high-income year with meaningful taxable-account gains.
  • Exact per-lot cost basis. One blended percentage across your taxable account, not individual purchase-lot tracking.
  • Income tax and spending before you retire. The accumulation phase models what you contribute, not what you earn and spend. Salary is used to work out contributions and to estimate Social Security; it isn't taxed. A side effect is that traditional and Roth contribution dollars are treated as equal, which understates what a Roth dollar costs today.
  • A career where your earnings changed. Contributions and the Social Security estimate both assume you earn at the level you entered for your whole career. Most careers rise, so a salary entered at your peak reads high on both. Entering your own benefit figure from ssa.gov removes half of this.
  • Rental depreciation and partly-taxable annuities. Each income source you add is treated as either fully taxable as ordinary income or fully tax-free. Enter rental and business income net of costs.
  • Part D premiums, Medigap and Medicare Advantage. After 65 the model charges the Part B premium and both the Part B and Part D income surcharges, but not the Part D premium itself (commonly around $40 a month) or any Medigap or Advantage plan. What you'd pay depends on the plan you choose and where you live, so we don't guess — add your own figure to your monthly spending.
  • Tax-exempt interest in the Social Security calculation. How much of your Social Security is taxable depends on a figure that, under IRS rules, includes tax-exempt interest — municipal bond interest counts towards it even though the interest itself isn't taxed. Income you mark as not taxable is left out of that figure here. We haven't split the not-taxable option apart, because it also covers Roth withdrawals and the return-of-capital part of an annuity, and those correctly stay out. If a meaningful part of your income is municipal bond interest, the modeled tax on your Social Security will read low.
  • Inherited-account distribution deadlines. A one-time amount directed into a tax-deferred account is added to the balance, but the 10-year window an inherited account generally has to be emptied within isn't enforced.
  • Money you plan to give away. Gifts to children or grandchildren, and other one-time future expenses, aren't modeled yet — only amounts arriving, not amounts leaving.

The line Kessavo tries to hold: if something meaningfully changes your number, we simplify it as little as we can and say so where it appears. If it's a genuinely advanced strategy that depends on your specific tax situation and timing, we say plainly it's not modeled — that's the point where the "worth a conversation with a financial planner" guidance is meant to kick in.