You are {{data.person.age}} years old,
you are planning to retire in {{data.person.retirement.age-data.person.age}}
years in {{data.person.retirement.year}} at the age of
{{data.person.retirement.age}} (beginning of the year).
You can start penalty free withdrawing from your traditional 401k/IRA accounts at
{{data.noPenaltyWithdraw.age}}(59.5), your medicare will kick in when you are
{{data.medicare.age}}, and your social security retirement benefit starts at
{{data.person.ss.age}}.
When you are
{{data.rmd.age}}, you'll be required to withdraw (RMD) from your traditional tax
deferred accounts (IRA, 401k).
Your life expectancy age is
{{data.person.deceased.age}}.
Your total number of years in retirement is
{{data.person.deceased.age-data.person.retirement.age}}.
Salary based income and savings (you and spouse)
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.person.salary = Number(val); }"
type="text" min="0" step="1000" @change="calculate" />
%
%
%
%
%
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.person.ss.perMonth = Number(val); }"
type="text" min="0" step="100" @change="calculate" />
Summary
Your current household earned income is {{toDollar(data.person.salary)}}, you
expect annual merit increase of {{toPercent(data.meritIncrease)}}.
Your current tax deferred retirement accounts
have{{toDollar(data.person.pretaxBalance)}}, you are contributing
{{toPercent(data.contrib.employeePercent)}} of your
salary to 401k, and your employer contributes
{{toPercent(data.contrib.employerPercent)}} of
your contribution up to {{toPercent(data.contrib.employerMatchUpTo)}}, total
contribution is {{toPercent(data.contrib.totalPercent)}} of your
salary each year. Your current year 401k contribution calculates to be
{{toDollar(data.person.salary*data.contrib.totalPercent/100)}}.
Your current Roth retirement accounts
have{{toDollar(data.person.roth)}}, you are contributing
{{toPercent(data.contrib.roth401kPercent)}} of your
salary to Roth 401k, and your employer contributes
{{toPercent(data.contrib.employerPercent)}} of
your contribution up to {{toPercent(data.contrib.employerMatchUpTo)}}, total
contribution is {{toPercent(data.contrib.rothTotalPercent)}} of your
salary each year. Your current year Roth 401k contribution calculates to be
{{toDollar(data.person.salary*data.contrib.rothTotalPercent/100)}}.
Current Savings (you and spouse)
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.person.pretaxBalance = Number(val); }"
type="text" step="100" @change="calculate" />
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.person.roth = Number(val); }"
type="text" min="0" step="1000" @change="calculate" />
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.person.investment = Number(val); }"
type="text" min="1" step="1000" @change="calculate" />
Rate of return
%
%
Net worth
{{toDollar(data.person.roth+data.person.investment+data.person.pretaxBalance)}}.
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.spending.beforeRetirement = Number(val); }"
type="text" step="10000" @change="calculate" />
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.spending.afterRetirement = Number(val); }"
type="text" step="10000" @change="calculate" />
{ let val = e.target.value.replace(/[^\d.]/g, ''); data.spending.insurance = Number(val); }"
type="text" step="1000" @change="calculate" />
Your estimated yearly spending before retirement is
{{toDollar(data.spending.beforeRetirement)}},
monthly spending is {{toDollar(data.spending.beforeRetirement/12)}},
this should include:
Housing
Your expensive kid(s) - tuition, activities, etc
Your estimated yearly spending after retirement is
{{toDollar(data.spending.afterRetirement)}}, monthly spending is
{{toDollar(data.spending.afterRetirement/12)}}:
Lower housing expenses, and hopefully no more mortgage
Higher medical expenses
More traveling
Your estimated starting Medicare year {{data.medicare.year}}
When you retire in {{data.person.retirement.age-data.person.age}} years at
{{data.person.retirement.age}},
you are not yet qualified for Medicare, your estimated your monthly health insurance
out
of pocket before Medicare kicks in is
{{toDollar(data.spending.insurance/12)}}.
Your spending will be adjusted for {{toPercent(data.inflation)}} inflation
every
year.
{ let val = e.target.value.replace(/[^\d.-]/g, ''); data.rothConversion.offset = Number(val); }"
type="text" step="1000" @change="calculate" />
Stage 2: When pre-tax balance is managable (e.g. ≤ $500k, bleed to prepare for RMD)
{ let val = e.target.value.replace(/[^\d.-]/g, ''); data.rothConversion2.offset = Number(val); }"
type="text" step="1000" @change="calculate" />
Roth Conversion Strategy
2 stage Roth conversion strategy is designed to minimize the total tax paid on your
retirement, and to prepare for the required minimum distribution (RMD) at age
{{data.rmd.age}}.
It allows agressive conversion in the early stage of retirement when you may have little to
no income, and slows down the conversion in later stage of retirement to avoid pushing you
into higher tax brackets when RMD starts.
Stage 1: After retirement begins at age
{{data.person.retirement.age}}, aggressive Roth conversion fills the
{{toPercent(data.rothConversion.bracket)}} tax bracket annually.
Stage 2: Once pre-tax balance drops to manageable level (e.g. $500k),
the
conversion slows down and is managed carefully to "bleed" the balance so that by age
{{data.rmd.age}} (RMD start), the required minimum distribution won't push you
into higher capital gains tax brackets.
Required Minimum Distribution {{data.rmd.year}} (age {{data.rmd.age}})
When you reach the age of {{data.rmd.age}}, you'll be required to take "Required
Minimum Distribution" from your tax deferred traditional 401k/IRA accounts, and
distribution is taxed at the ordinary income rate.
The 'ordinary income' also means that you'll have taxable income, which affects the
tax you pay,
your Medicare payment, and Social Security retirement benefit taxes. However,
there are some tax benefits of keeping some money in the tax-deferred accounts,
you want the amount to be low enough that you won't be forced to take out a lot each
year.
The RMD money you are forced to take out cannot be directly converted to Roth IRA. The
IRS requires that you take the RMD for the year before you can perform a Roth
conversion.
The strategy is to convert your traditional 401k/IRA to Roth IRA as early as possible
(typically after you retire),
you'll pay taxes for the years of conversion; once converted, your roth balance,
including
gains, won't be taxed again, and there's no required minimum distribution, nor will your
withdraws from Roth count as taxable income.
Your Roth conversion starts at {{data.rothConversion.age}}, and
fills up the {{toPercent(data.rothConversion.bracket)}}tax bracket;
at
{{data.yearlyData.find(x => x.pretaxBalance == 0).age-1}}, your tax deferred
accounts will have $0.00
at {{data.rmd.age}}, your tax
deferred accounts will have {{toDollar(data.rmd.pretaxBalance)}}.
you'll be required to withdraw {{toDollar(data.rmd.pretaxBalance)}} / 27.4 =
{{toDollar(data.rmd.rmd)}} on first year and increases percentage wise every
year
after. Your tax bill on that first year distribution is around
{{toDollar(calculateOrdinaryIncomeTaxForYear(this.data.rmd.rmd,
this.data.rmd.year))}}.
%
%
%
Taxes
Federal Ordinary Income Tax (see table below) - with historical 1.7% increase in
bracket
ceilings each year
Federal Capital Gain Tax (0%/15%/20%/23.8% for long term)
FICA (SS & Medicare), 6.2%, and extra 0.9% for portion of salary income over
$250,000;
no FICA on capital gains or roth conversion.
Medicare Surtax 3.8% on Capital Gain for MAGI over $250,000.
State Tax inputs allows different taxes for before and after retirement.
Long-term capital gains can't push you into a higher tax bracket
Social Security benefits tax:
Depending on your 'provisional income', 0%-85% of SSN income is taxed.
'Provisional income' includes gross income (wages, interest, dividend, pension, rent
income), tax-free interest (municipal bond) and 1/2 of SS Benefits.
For single filer (tax): if provisional income is less than 25000, 0%;
between
25000 and 34000, then 50%, above 34000 = 85%.
Married Filing Jointly: less than 32,000 = 0%, between 32000 and 44000 =
50%, >
44000, then 85%.
Note: provisional income is not inflation adjusted.
The resulting percentage of SS Benefits is subject to ordinary income tax rate.
Note: The calculation assumes there's no state tax for SS benefits.
Note: Roth IRA distributions are not included in the provisional income calculation.
Buckets to withdraw to minimize tax:
Use tax-deferred accounts (401k, traditional IRA) to reduce taxable income
in
early retirement years when you may have little to no income, and fill up
the
lower tax brackets first.
Use Roth accounts for tax free growth and tax free withdraws in later years,
especially after RMD starts, to avoid pushing you into higher tax brackets.
Use post-tax investment account for more flexibility, but be mindful of
capital
gain tax. Keep in mind that there's 0% long term capital gain tax when MAGI
is below
threshold (e.g. $98,900 for MFJ for 2026).
example: $98,900 + $32,200 (standard deduction) - $40,000 (SS) - $50,000
(Pretax withdraw) = $41,100 investment gain that you can realize with 0%
tax.
Age
Year
Salary
401k Contrib
Roth 401k Contrib
RMD
Spending
Roth Conversion
Tax
Deferred Balance
Roth Balance
Investment
Medicare
Social Security
Taxes
Net Worth
{{yearly.age}}
{{yearly.year}}
{{toDollar(yearly.salary)}}
{{toDollar(yearly.k401)}}
{{toDollar(yearly.roth401k)}}
{{toDollar(yearly.rmd)}}
-{{toDollar(yearly.spending)}}
{{toDollar(yearly.conversionAmount)}}
{{toDollar(yearly.pretaxBalance)}}
{{toDollar(yearly.roth)}}
{{toDollar(yearly.investment)}}
-{{toDollar(yearly.medicare)}}
{{toDollar(yearly.ss)}}
-{{toDollar(yearly.tax)}}
{{toDollar(yearly.netWorth)}}
Projected Tax Rates
Calculated with historical 1.7% increase in bracket ceilings each year, and accounted
for 2025 trump tax (Tax Cuts and Jobs Act) brackets.
Year
Rate
{{y.year}}
{{toPercent(b.percent)}}
{{toDollar(b.income)}}
Current year {{new Date().getFullYear()}} (age {{data.person.age}})
Your current retirement plan cannot get you to
{{data.person.retirement.age}}, your
post-tax balance will be {{toDollar(data.person.retirement.investment)}}, try
adjusting
your retirement plan!
After retirement, all your spending, including taxes that you need to pay will come from
your
post-tax investment account until you reach the age of
{{data.noPenaltyWithdraw.age}}, which
means that you'll need to pay capital gain taxes for the amount drawn.
Note: the calculation assumes 50% withdraws from post-tax investment
accounts are
capital gains Note: For ease of calculation, age 60 is used, instead of 59.5
Penalty free withdraw year {{data.noPenaltyWithdraw.year}} (age
{{data.noPenaltyWithdraw.age}})
After you've reached the age of {{data.noPenaltyWithdraw.age}} (59.5),
You can start withdrawing funds from pretax accounts without penalty, however,
you'll pay
ordinary income tax for the withdraws. At this time, instead of selling investments
from
post-tax accounts to cover taxes and spending, the funds should come from your
pretax accounts.
The step-up rule allows you to pass down your brokerage investment balance to your
heir without
incurring capital gain tax.
Your current retirement plan cannot get you through
{{data.noPenaltyWithdraw.age}} where
you can withdraw from pretax accounts without penalty. Your post-tax savings is
{{toDollar(data.noPenaltyWithdraw.investment)}}, You have
{{toDollar(data.noPenaltyWithdraw.pretaxBalance)}} in pretax accounts,
consider adjusting
your plan, or look into "55 rule" or "72t" for early withdraw.
Required Minimum Distribution year {{data.rmd.year}} (age
{{data.rmd.age}})
Your pretax retirement accounts will have {{toDollar(data.rmd.pretaxBalance)}}
Good Job
You'll be required to take out
{{toDollar(data.rmd.rmd)}} from your pretax accounts this year (RMD), your
estimated tax bill
will be {{toDollar(data.rmd.tax)}} for withdraw amount of
{{toDollar(data.rmd.dist)}}.
End of life year {{data.person.deceased.year}} (age
{{data.person.deceased.age}})