Back to Blog

Inside the Roth Conversion Calculator: How the Math Actually Works

How does a Roth conversion calculator decide how much to convert? Learn the actual mechanics — maximizing after-tax estate, cheapest-tax-space-first, IRMAA cliffs, and ACA tradeoffs.

December 22, 20258 min read

"Fill up the 22% bracket." You've heard this advice a thousand times. It's fine as far as it goes, but there's a lot it doesn't tell you.


I spent months building retireclarity's Roth conversion optimizer, and the thing that surprised me most was how many moving parts interact with each other. Tax brackets, RMDs, Social Security taxation, Medicare premium cliffs, ACA subsidies if you're retiring early — they all feed into each other in ways that make simple rules break down pretty quickly.

This post walks through how the optimizer actually works. I'm going to skip the hand-wavy explanations and show you the real mechanics, because I think understanding the "why" helps you trust (or question) the recommendations.

Why Simple Rules Don't Work

The standard advice says to convert enough each year to fill your current tax bracket. And if taxes existed in a vacuum, that would be solid guidance. But they don't.

Think about what happens when you convert $50,000 from a traditional IRA to a Roth. That $50,000 shows up as taxable income this year, which affects your Medicare premiums two years from now (thanks to IRMAA's lookback rules), which might push you into a higher premium tier, which costs you an extra $2,000+ annually for the same coverage you'd get otherwise.

Meanwhile, that conversion also reduced your traditional IRA balance, which means smaller RMDs starting at 73 or 75, which means less taxable income stacking on top of Social Security in your 80s, which means you might stay in the 22% bracket instead of spilling into 24%.

So was the conversion worth it? Depends on the magnitude of each effect, your age, how long you'll live, what state you're in, and whether you need ACA coverage before Medicare kicks in.

The optimizer's job is to weigh all of this simultaneously. No spreadsheet formula can do that without becoming an unreadable mess, which is why a purpose-built Roth conversion calculator makes sense.

Starting at the End: What Balance Do You Want at RMD Age?

Most people think about conversions as "how much should I convert this year?" The optimizer flips that question around: what traditional IRA balance would produce manageable RMDs in your 70s and 80s?

RMDs are calculated by dividing your balance by a life expectancy factor. At 75, the factor is 24.6. So a $1.2 million traditional IRA forces you to withdraw about $49,000 that year whether you need it or not. That $49,000 is ordinary income, stacking on top of Social Security and any pensions.

For a married couple already receiving $45,000 in Social Security, that $49,000 RMD doesn't just get taxed — it also increases how much of their Social Security becomes taxable (the "combined income" calculation that trips people up). The effective tax rate on that RMD ends up higher than you'd expect from looking at brackets alone.

So the optimizer works backward. Given your expected Social Security, pension, and other income, what traditional IRA balance would produce RMDs that fill your target bracket without spilling over? The math involves iteration because Social Security taxation creates a feedback loop — more RMDs means more SS is taxed, which means more total income, which means you might need an even lower target balance than you first calculated.

Once we have that target balance, the total conversion budget is simply: current projected balance at RMD age minus target balance, adjusted for expected growth between now and then. But the target balance is where the optimizer starts, not what it's aiming for. It's a seed — a sensible opening bid. What the optimizer actually optimizes for is something bigger, which is the next section.

What the Optimizer Actually Maximizes: After-Tax Estate

We know how much to convert in total. But when? And what makes one schedule better than another?

The optimizer maximizes a single number: your after-tax estate at the end of the plan — the real, spendable wealth left after every tax is accounted for. It isn't a basket of weighted penalties. It's the money that actually survives:

  • Roth dollars count in full — tax-free to you and to your heirs.
  • Traditional balances are discounted at a flat 25% — the midpoint of the brackets a working heir is likely to be in when the SECURE Act's 10-year rule forces the money out. It's a fixed modeling assumption, not a forecast, and it's applied to the recommendation and the no-conversion baseline identically, so it shapes the comparison rather than deciding it.
  • Brokerage gains are discounted at the 15% long-term capital-gains rate, since the embedded gain gets taxed on the way out.

This one number already prices everything the old rules-of-thumb tracked separately. Converting costs tax today, and that tax is money missing from the terminal estate — so the cost of every conversion is already inside the objective. A smaller traditional balance means less forced RMD income taxed later — already inside it. ACA subsidies lost and IRMAA surcharges paid flow through the projection into the ending balances — already inside it. That's why there is no cliff fence in the objective or in the refinement: the opening estimate deliberately starts below the cliffs — it holds 5% back from the 400% FPL line in years with a material subsidy, and stops short of the next IRMAA step — but from there nothing is fenced. The refinement can spend that whole margin, and it crosses a cliff exactly when crossing leaves you with more money and not a dollar sooner. Nothing is double-counted, because everything lands in the same place: what's left at the end.

When two schedules tie on estate, the optimizer prefers the one that saves more lifetime tax. That's a tie-breaker, not a competing goal.

Safety is a hard limit, not a penalty

An earlier version of this optimizer scored schedules by summing penalty terms — liquidity, outflow, bracket, ACA — and picking the lowest total. That approach could veto a conversion that left you unambiguously better off, just because one penalty term didn't like it. The redesign pulled every safety concern out of the score and made it a hard constraint the search simply won't cross:

  • Accessibility floor. In every year your plan could already leave two years of spending reachable without a forced traditional withdrawal, the recommendation has to leave it reachable too. (Where the no-conversion baseline was already below that line, conversions can't be blamed for a shortfall the plan had anyway, so the floor doesn't police that year.) Two years is fixed, not a setting — it used to be a slider, and the slider turned out to be non-monotone: because the floor is only enforced where the baseline clears it, raising the cushion also raises the bar the baseline must clear, so the most-cautious setting silently switched the protection off. Measured on the FIRE persona, the top of the slider produced the same schedule as no floor at all ($867,068 of conversions), while the middle positions produced $356,200. The fixed two years is the position that was actually doing the work.
  • Never worsen depletion. No recommended schedule may make your money run out earlier than it would with no conversions at all.
  • Affordability. You have to be able to pay each year's conversion tax from accessible funds.

A schedule that breaks any of these is rejected outright — it never competes on estate. Everything that survives is safe by construction, and among the safe schedules the optimizer takes the one that leaves the most.

Distributing Conversions Across Years

With a total budget and a clear objective, the optimizer needs to decide how much to convert each year from retirement through age 72 (or whenever RMDs start).

The naive approach would be to divide evenly — if you need to convert $400,000 over 10 years, do $40,000 annually. But that ignores the fact that some years have more room than others.

Take someone who retires at 60 and starts Social Security at 67. From 60-66, they have relatively low income, which means lots of bracket room for conversions. From 67 onward, Social Security fills up part of that space. The optimizer front-loads conversions into the roomier years automatically.

Years with large one-time income events tend to come out empty, and they get there the same way every other year does — by being priced. Selling a rental property with $200,000 in capital gains? A conversion that year stacks ordinary income underneath the gain and pushes part of it from the 15% bracket into 20%, so the same dollars converted a year later cost thousands less. The optimizer scores that year with the extra tax included and puts the conversion where it buys more. There is no rule saying "skip the sale year" — there was one until July 2026, and taking it out changed nothing on eleven of twelve test households while finding an extra $8,000 of worthwhile conversions on the twelfth, where a gain sat just over the old cut-off in an otherwise cheap year.

IRMAA thresholds shape the schedule too, especially for people in their mid-60s approaching Medicare. The two-year lookback means a big conversion at 64 affects premiums at 66 — something easy to forget until the bill arrives.

Testing Multiple Intensities

One thing I learned while building this: there's rarely a single "optimal" amount. Different people have different risk tolerances, and someone with ACA coverage faces different tradeoffs than someone already on Medicare.

So the optimizer doesn't just test one conversion budget. It tests several intensities — from 0% (no conversions at all) up to 130% of the calculated target — and keeps whichever leaves the largest after-tax estate.

Why would converting less than the full target win? Usually because of ACA subsidies. If you're 58 and converting everything would push your income over the subsidy cliff, you'd lose $20,000+ in annual premium assistance. Converting 50% of the target might keep you just under the cliff, and those preserved subsidies more than offset the slightly higher future taxes.

The optimizer finds that balance point automatically. It doesn't assume converting more is always better.

That sweep is also what gives you something to choose from. Once the search has an answer, it re-scores nested, smaller versions of that schedule through the same engine and the same hard limits, and the result is your plan's own conversion-efficiency curve. The How much to convert slider on the planner moves along it. Every stop is a schedule that was actually evaluated, so the slider stops only on those points and never between them — offering a position nobody priced would be exactly the kind of made-up number this whole post exists to avoid. Optimal is the right end, the schedule that keeps the most money after every tax. Efficient is the last stop where each new $1 of conversion tax still earns at least $0.50 of after-tax estate; past it, every stop still adds net money, at a shrinking rate. A readout prints that rate wherever you are, so the falling return is something you watch rather than something you take on faith.

Final Polish: Buying the Cheapest Tax Space First

After picking the best intensity, a refinement pass tightens the schedule. It works like water finding its level. It looks at the marginal price of the next conversion dollar in every open year — the combined federal and state rate you'd pay on it — and buys the cheapest space first. A dollar of bracket room at 12% gets filled before a dollar at 22%; a year sitting just under an IRMAA cliff gets used before a year that would cross one.

Then comes the part I'm most confident about. A convergence pass walks a ladder of block sizes — $100,000, $50,000, $25,000, $10,000, $5,000, $1,000 — and at every rung it offers three kinds of move in every year: add a block, remove a block, shift a block from one year to another. It keeps cycling that ladder until a complete pass at every size, in every direction, changes nothing — or until a deliberately generous compute budget runs out. In the common case it reaches that fixed point. That clean pass is the certificate: the schedule is a fixed point of the whole move set, not just of the coarse steps. Coarse rungs don't imply fine ones (or the reverse), which is exactly why the certificate has to be a whole clean cycle rather than a single sweep.

What that buys you is an honest claim, precisely bounded: certified locally optimal, not global perfection. When the cycle comes back clean, the schedule survived every move the search knows how to make. When the budget binds first — which the widest plans I've measured do hit — the pass reports that it didn't converge rather than pretending it did, and what you get is a well-descended schedule without the certificate. Either way it isn't a proof that no differently-shaped schedule anywhere could beat it — no tractable search can promise that, and I'd rather tell you the boundary than imply there isn't one.

You can see the whole reasoning in the app. The year-by-year schedule table sits open under the planner and shows, for each year: how much converted, the federal bracket as a marginal → effective rate, federal and state tax, the ACA and IRMAA effect, and that year's total tax cost. Every row carries a why this amount explanation (a tooltip beside the amount on desktop, printed inline on phones) naming the one ceiling that decided it, from a short fixed vocabulary — limited by the cash available to pay the conversion tax; stopped just below the ACA subsidy cliff at 400% of the federal poverty level; stopped short of the next IRMAA tier; filled a federal bracket to within a stated distance of the next edge; in the top bracket, that there is no bracket above it. Where nothing bound the year, the line reports the geometry and claims no cause — "Lands in the 22% bracket, $10.0K below the 24% edge." — because "fills" is a claim about the search, and the search didn't make one. Years the schedule leaves out read Not recommended, with their reason beside them.

That table is read-only, and used not to be. You could pin a year or type over its amount, and the optimizer would fill in around you. Both are gone. A hand-edited year had a price nobody had computed: it sat outside the curve the panel was measuring, so the figures above it described a plan you were no longer on. If a year in your plan really is different — a property sale, a large one-off gain, a stretch of consulting income — that belongs in the plan's income and expense streams, where the optimizer can price it. Then the schedule reflects it, and every number on the page still means what it says.

What the Optimizer Doesn't Know

I want to be direct about limitations, because overselling this stuff helps nobody.

Tax law will change. The optimizer uses current brackets, inflation-adjusted forward. If Congress raises rates in 2028 or eliminates Roth accounts in 2035, every projection becomes wrong. No model predicts legislation.

Markets don't follow projections. The optimizer assumes some average return for growth calculations. Actual markets deliver returns in random order, and a 40% crash early in retirement changes everything. That's what the Chance of Success analysis addresses — stress-testing against historical sequences rather than assuming smooth returns.

State-specific rules vary. The optimizer knows your state's income tax rate, but not whether your state exempts pension income, has special deductions for retirement distributions, or has its own cliff effects. If you're in a state with unusual rules, double-check the state implications separately.

Your behavior matters. The optimizer assumes you'll follow the conversion schedule it recommends. If you convert $50,000 in January and then sell appreciated stock for a $100,000 gain in November, the year's projection no longer applies. Life doesn't follow spreadsheets.

Trying It Yourself

If you've made it this far, you're probably wondering what the optimizer recommends for your situation. The calculations depend on your specific numbers — age, balances, Social Security, state, retirement date, all of it.

The Roth Conversion Planner — retireclarity's Roth conversion calculator — runs through everything I've described here. You'll see a year-by-year schedule, the reasoning behind each year's amount, and a comparison of lifetime taxes with versus without conversions.

Whether you follow the recommendations exactly or use them as a starting point for conversations with a tax professional, having the math in front of you beats guessing.


Common Questions

"How much should I convert each year?" — No universal answer exists, which is exactly why a Roth conversion calculator beats generic rules. The amount depends on bracket room, other income, how many years until RMDs, and whether you need ACA coverage. The planner calculates year-specific amounts based on your inputs.

"At what age should I stop converting?" — Usually when RMDs begin, though some people find small conversions still make sense during RMDs if they have room in lower brackets. The planner identifies when conversions stop being beneficial.

"Will converting increase my Medicare premiums?" — Possibly. IRMAA surcharges apply at specific income thresholds, and the two-year lookback catches people off guard. The optimizer avoids these cliffs when the math supports it, but sometimes paying higher premiums is worth the overall tax savings.


Related Reading

From the Guide: How Roth Conversions Work · Tax Optimizer Deep Dive

Try retireclarity

Put these strategies into practice with our free retirement calculator. Model Roth conversions, run Monte Carlo simulations, and optimize your tax strategy. 100% private - runs entirely in your browser.

Open Calculator