A plain-English explanation of every calculation — so you can validate the numbers yourself.
The modeler runs a year-by-year projection from your current age through your life expectancy. Each year it: (1) determines your income from all sources, (2) computes the Roth conversion amount based on your chosen strategy, (3) calculates federal and state taxes, (4) assesses IRMAA surcharges, (5) applies cash flow against your expenses, and (6) updates all account balances. This repeats for every year and every scenario you’ve configured.
All dollar values use a 2024 baseline and are inflated forward at your specified inflation rate. Tax brackets, standard deductions, IRMAA tiers, and RMD divisors all follow current law as of 2024; they are not assumed to change legislatively, but their dollar thresholds are inflated each year.
Each year, the model assembles income from up to five sources:
Income from wages, pension, and RMDs is taxable ordinary income. Social Security benefits are partially taxable depending on your combined income (see Section 3).
Social Security benefits are taxed based on your provisional income — a concept defined by the IRS to determine how much of your SS benefit is included in taxable income. The formula stacks other income first, then determines what fraction of SS is taxable:
The taxable SS fraction depends on your filing status and provisional income:
| Provisional Income (MFJ) | Provisional Income (Single) | SS Taxable % |
|---|---|---|
| Below $32,000 | Below $25,000 | 0% |
| $32,000 – $44,000 | $25,000 – $34,000 | Up to 50% |
| Above $44,000 | Above $34,000 | Up to 85% |
These thresholds are not inflation-adjusted by law — they have been fixed since 1993 and 1984, respectively. The model keeps them fixed (as they are in current law), which means more and more retirees cross these thresholds over time.
This is one of the key nonlinear interactions the model captures: a Roth conversion increases your provisional income and can push more of your SS into the taxable zone, making the effective marginal rate on the conversion higher than the bracket rate alone.
The age at which RMDs must begin depends on your birth year, per the SECURE 2.0 Act of 2022:
| Born | RMD Start Age |
|---|---|
| Before 1951 | 72 |
| 1951 – 1959 | 73 |
| 1960 or later | 75 |
Each year’s RMD is calculated as:
The model uses the IRS Uniform Lifetime Table published in IRS Publication 590-B. The divisor decreases with age, making RMDs a larger fraction of the balance each year. If a Roth conversion is also done in the same year, the RMD is taken first — you cannot convert dollars that are required to be distributed.
Federal taxable income is assembled as follows:
The standard deduction starts at 2024 values ($14,600 single / $29,200 MFJ) and is inflated forward at your specified inflation rate each year. Tax-free portions of RMDs or conversions (from IRA basis — see Section 9) are excluded from gross income.
The model uses the 2024 federal income tax brackets (10%, 12%, 22%, 24%, 32%, 35%, 37%) and inflates the bracket thresholds forward each year. Federal tax is computed by applying each bracket rate to the taxable income that falls within that bracket.
The marginal rate shown in the table is the bracket rate at the top of your taxable income — it tells you what rate applies to the next dollar of income. For fill-the-bracket conversions, the model uses this rate to determine how much room remains in the target bracket.
State income tax is applied to the same taxable income base used for federal tax (gross income minus federal standard deduction). This is a simplification — states have their own deduction rules — but it is a reasonable approximation for most flat-rate states.
State rates auto-populate from current published rates when you select a state code. You can override this with a custom rate. Each scenario has its own state settings, so you can compare “stay in Massachusetts” versus “move to Florida at age 67” side by side.
If you specify a future state and a move age, the model uses the current state rate before the move age and the future state rate from that age onward.
IRMAA (Income-Related Monthly Adjustment Amount) is a surcharge added to your Medicare Part B and Part D premiums if your income exceeds certain thresholds. It applies starting at age 65.
IRMAA in a given year is based on your MAGI from two years prior. For example, IRMAA in 2029 is based on your 2027 MAGI. This means a large Roth conversion today can create a Medicare surcharge bill two years from now. The model tracks this lag precisely.
The model uses 2024 IRMAA tiers (Tier 0–4) and inflates the MAGI thresholds forward. Each tier adds a fixed annual surcharge to Part B and Part D combined. The tier shown in the table is 0 (no surcharge) through 4 (maximum surcharge). The IRMAA cost shown is the additional annual cost above the base premium — not the total Medicare premium.
No conversions are performed. Traditional IRA grows and is eventually distributed as RMDs.
A fixed dollar amount is converted each year within the conversion window (start age through end age). The conversion is capped at the remaining Traditional IRA balance after the RMD is taken. If the brokerage account is set to pay taxes and doesn’t have enough to cover the estimated tax bill, the conversion is skipped for that year.
The model solves for the largest conversion that keeps your total taxable income at or below the ceiling of your target bracket (e.g., the top of the 22% bracket). It accounts for the SS taxation interaction — adding more conversion income can pull more SS into the taxable zone, which the solver handles iteratively.
Pay from brokerage: conversion taxes are withdrawn from the brokerage account, keeping the full conversion amount in the Roth IRA. This is generally the better option when you have brokerage funds available, because it maximizes the tax-free Roth balance.
Pay from proceeds: conversion taxes are paid from the conversion amount itself. The net deposit to the Roth IRA is the conversion minus the tax bill. This is equivalent to converting a smaller amount.
If you have made non-deductible (after-tax) contributions to a Traditional IRA, those dollars have already been taxed and are called your basis. Under the IRS pro-rata rule, every distribution — whether an RMD or a conversion — is treated as coming proportionally from taxable and after-tax dollars. You cannot choose to withdraw only the after-tax portion first.
The basis is depleted proportionally with each distribution and cannot exceed the remaining Traditional IRA balance. If you have no basis (the most common case), the tax-free fraction is zero and all distributions are fully taxable.
When you enter annual living expenses, the model computes a net cash flow each year and determines whether income covers expenses or whether savings must be drawn down.
Post-tax income represents the spendable cash generated from your income sources after paying taxes on those flows. Conversion taxes are excluded here — they are handled separately (deducted from brokerage or from conversion proceeds, depending on your setting).
Net cash flow is the difference between post-tax income and inflated annual expenses:
A positive net cash flow (surplus) is added to the taxable brokerage account. A negative net cash flow (deficit) triggers a drawdown from savings in this order:
At the end of each year, balances are updated in this sequence:
The model uses the post-retirement return rate for the brokerage account throughout (a simplification — in practice the return rate may differ pre- and post-retirement for non-IRA accounts).
In addition to your three custom scenarios, the model automatically searches a grid of parameter combinations to find the strategy that maximizes after-tax equivalent wealthat your life expectancy. The search grid covers:
The winning combination is the one with the highest after-tax equivalent wealth, defined as:
This metric puts all three account types on a comparable after-tax basis. A $1M traditional IRA is not worth the same as $1M in a Roth — the traditional balance carries an embedded tax liability that the Roth balance does not.
State/residency settings for the optimal scenario are inherited from your first (leftmost) custom scenario.
© 2026 Horyzen LLC. All rights reserved.