Roth or traditional: which one ends with more after tax?
Both wrappers priced to the same finish line: the after-tax balance at retirement under each, and the gap between them. What the deduction saves you today is measured by computing a full 2025 Form 1040 twice, once with the contribution in box 1 and once with it out, rather than by multiplying your bracket. You set the rate you expect in retirement, because at equal rates the two are identical and nobody knows that number. The page names the rate at which they tie and does not pick a side.
Loading the calculator.
At the same rate, they are the same account
Put $7,000 a year into a Roth for 30 years at 7.0% and you end with $661,226. Put the same $7,000 a year into a traditional account and you end with $661,226. Identical, because nothing in the arithmetic of compounding knows which wrapper it is inside. The only thing that differs is when the tax is charged.
And multiplication commutes. Taxing a dollar at 22% and then growing it thirty-fold gives exactly what growing it thirty-fold and then taxing it at 22% gives. So if your marginal rate is the same now and later, the two accounts end with the same spendable money, to the penny. You can watch this page prove it: set the tax on the invested refund to 0 and the crossover rate comes out at 22.17%, which is precisely the 22.17% the deduction saves today.
That is the whole comparison, and it is why almost every article on this question is arguing about something else. Two things break the tie. The rate can change, which is a forecast. And the traditional contributor gets money back today that the Roth contributor does not, which only counts if it gets invested. This page models both, names the rate at which they tie, and stops there. It is not going to tell you which to pick.
What the deduction is actually worth, measured rather than looked up
Every other version of this comparison multiplies your contribution by your tax bracket. That is wrong here in a way you can see on the form. At $120,000 of wages filing single, the next $1,000 you earn is taxed at 24.0%. But the $7,000 contribution does not all come off the top: it reaches down past a bracket boundary. Computing the whole return twice, once with the money in box 1 and once with it out, the tax falls from $17,867 to $16,315. A saving of $1,552, which is 22.17%, not 24.0%. The bracket shortcut would have claimed $1,680 and been 1.83 points too generous.
That gap matters because the saving is the entire traditional-side advantage. Overstate it and you overstate the invested refund, the balance it grows to, and the crossover. Here it is the difference between a crossover of 19.90% and one of 21.54%, which is 1.64 points of future tax rate you would have been betting on without being told. If you want the same arithmetic run on your next dollar of income rather than on a contribution, the marginal rate calculator does exactly that, and the income tax calculator shows the return the two figures came out of.
One more thing the form settles rather than asserts. Line 23 is identical under both wrappers, at every income. A pre-tax contribution comes out of box 1 but not out of boxes 3 and 5, so it never touches Social Security or Medicare wages. At $250,000, where the 0.9% additional Medicare tax under § 3101(b)(2) is live, line 23 reads $450 on both sides of the comparison. Deferring income does not defer payroll tax, and a calculator that applies your full payroll-plus- income rate to a deduction is overstating it.
The refund is most of the argument
A traditional year costs you $5,448 of take-home. A Roth year costs you $7,000. The same $7,000 lands in the account either way, so the traditional contributor is $1,552 a year better off in cash, right now.
If that $1,552 goes into a taxable account alongside, the two choices cost the same and the comparison is honest. Over 30 years at 7.0% it becomes $146,603, of which $100,043 is gain; at 15.0% under § 1(h)(1)(C) that is $15,006 of tax and $131,597 kept. Add it to the $515,756 left in the account after 22.0% at withdrawal and the traditional side finishes at $647,353, against $661,226 for the Roth.
If it gets spent, the traditional side finishes at $515,756 and the crossover falls to 0.00%. That is not a finding about traditional accounts. It is a finding about spending the refund: without it you are comparing a cheaper choice against a dearer one and calling the dearer one better. Notice too that the invested refund is taxed as it grows, which costs 2.27 points of crossover on its own. That drag is the one structural edge the Roth has, and it is worth less than most people assume.
The crossover, and what moves you across it
The crossover is the retirement marginal rate at which the two accounts end with the same after-tax money. At the inputs above it is 19.90%. Below it the traditional wins; above it the Roth does. Only the retirement rate changes down this table, and every row is the same $661,226 pile.
| Rate in retirement | Roth, after tax | Traditional, after tax | Gap | Ahead |
|---|---|---|---|---|
| 0% | $661,226 | $792,822 | -$131,597 | Traditional |
| 10% | $661,226 | $726,700 | -$65,474 | Traditional |
| 12% | $661,226 | $713,475 | -$52,250 | Traditional |
| 19.90% | $661,226 | $661,238 | -$13 | a tie |
| 22% | $661,226 | $647,353 | $13,873 | Roth |
| 24% | $661,226 | $634,128 | $27,097 | Roth |
| 32% | $661,226 | $581,230 | $79,995 | Roth |
Four things move a reader across that line, and none of them is an opinion about tax policy. A raise now: earning more today raises what the deduction saves, which raises the refund and pushes the crossover up. Retiring into a smaller income: most people withdraw less than they earned, which pushes their retirement rate down toward the traditional side. Moving between states: this page models federal tax only, and leaving a high-tax state for a no-tax one is a rate change the federal arithmetic cannot see. And the law: the current rate schedule is a statute, not a constant.
Two neighbouring tools price the same decision from different angles. The 401(k) calculator prices the contribution itself, including the employer match and the § 402(g) limit, which is the question to settle before this one. The Roth conversion calculator prices the same rate bet on money already inside a traditional account, where the tax is due now in cash rather than forgone. And the retirement calculator is where the retirement rate on this page stops being a guess: what you will actually withdraw is what sets it.
Where the rate goes strange, and both directions are real
At modest income the § 25B saver's credit gets involved and the deduction stops behaving like a bracket. It runs both ways, and neither direction is a rule of thumb you can carry around.
At $45,000 of wages, the same $7,000 contribution saves $1,040, a rate of 14.86%, against a 12.0% rate on the next $1,000. The credit tier is set by income after the deduction, so taking it moves you into a better tier: line 21 rises from $0 to $200. The deduction is worth 2.86 points more than the bracket, and the crossover sits at 13.34%.
At $25,000 it inverts. The same contribution saves only $528, a rate of 7.54%, while the next $1,000 of wages costs 30.0%. That 30.0% is not a bracket and does not appear in the 2025 rate schedule: it is the ordinary tax on that $1,000 plus the § 25B credit the same $1,000 gives up as it crosses a tier line. The deduction is worth far less than either figure, because the saver's credit is nonrefundable. It can only offset tax that exists, and the deduction erased some of the tax it was offsetting: line 21 falls from $400 to $226. The reader here is paying for a deduction with a credit, and the crossover drops to 6.77%. This is the case where the wrapper choice is least like the one the internet describes, and it is also the case a bracket table is most confident about.
What this calculator does not know
The future. The retirement rate is an input because it has to be: the 2025 rate schedule is a statute, and the rates in it have been rewritten repeatedly within a single working life. Nothing on this page is a forecast of what Congress does next, and any calculator that hands you a verdict without asking for that number has made the forecast for you silently. The engine behind this page carries 2025 parameters only, not a history of past brackets and not a projection of future ones.
The rules that surround the withdrawal. Required minimum distributions under § 401(a)(9) force money out of a traditional account from age 73 whether you want it or not, which can push you into a higher retirement rate than you planned; a Roth IRA has none during the owner's life. The § 408A(d)(2) five-year rule can make an otherwise qualified Roth distribution taxable on its earnings. Employer matching contributions are pre-tax to the plan even when your own deferral is Roth, so a Roth saver with a match still ends up with a traditional balance to withdraw. And adjusted gross income two years before you claim Medicare sets your Part B and Part D premiums under § 1395r, so a traditional withdrawal can raise a premium a Roth withdrawal would not. None of those four is modelled here, and all four push in the same direction.
Eligibility, state tax, and everything outside the federal income tax on wages. This page does not check whether you may contribute or deduct: the traditional IRA deduction phases out when you are covered by a workplace plan, direct Roth IRA contributions phase out on income, and § 402(g) caps deferrals with a § 414(v) catch-up from 50. It models the deduction as coming out of box 1, which is the workplace-plan route; a deductible IRA reaches the same adjusted gross income through Schedule 1 and every line from 11 down is the same. It assumes a filer over 17 and under 65, so no extra standard deduction and no age bar on the saver's credit, and a household with no dependents. State and local income tax is on top of every number here and is often the largest single thing this arithmetic leaves out. And the return is priced on wage income alone: if your next dollar is a capital gain, the capital gains calculator is the right page for it.
For agents and scripts
This calculator is built to be used without a browser. Every input is a query parameter on this page, and the same parameters on the JSON twin return the complete answer as a document.
GET /tools/roth-vs-traditional.json?income=180000&contribution=23500&retirementRate=24&status=married-joint
The response carries inputs after parsing and clamping, result with rothAfterTax and tradAfterTax, the gap between them, and crossoverRate, the retirement marginal rate at which they tie, plus taxSaved and savingRate for what the deduction is worth this year, bracketRate for the same slice as a bracket would price it, sideBalance and sideAfterTax for the invested refund, form1040 as a two-wrapper line walk, sensitivity across a retirement-rate ladder, all five filing statuses and both settings for the refund, and computability, the engine's verdict on both returns, drivers ranked by effect with a plain sentence each, assumptions that say for every field whether you supplied it and name the source when the default came from one, sources with a URL and an as-of date for each source the tool cites, which is an empty list on the calculators whose every default is an example input rather than a published figure, warnings, a disclaimer, and in tool the canonicalUrl and jsonUrl that carry only your non-default parameters. The canonical URL is the answer's permanent address; use it when you cite the number.
Parameters, all optional, in any order:
contribution($ per year), default $7,000 per year.income($ per year), default $120,000 per year.retirementRate(%), default 22%.years(years), default 30 years.rate(%), default 7%.gainsRate(%), default 15%, from 26 U.S.C. (Internal Revenue Code).saving(one ofinvested,spent), defaultinvested.status(one ofsingle,married-joint,married-separate,head-of-household,qualifying-surviving-spouse), defaultsingle.
Values accept plain numbers and loose human formats such as 100k, $100,000, or 6.5%. Unknown parameters are ignored, values outside a field's range are clamped and reported in warnings, and the endpoint never fails on bad input. Responses are cacheable for a day; the defaults change when their sources publish, and tool.version changes when the method does.
Common questions
Should I use a Roth or a traditional retirement account?
This page will not tell you, because the honest answer is a bet on a number nobody has. At $120,000 of wages filing single, putting $7,000 a year away for 30 years at 7.0%, the two end level at a retirement marginal rate of 19.90%. Above that the Roth ends ahead; below it the traditional does. You entered 22.0%, which puts the Roth ahead by $13,873 on $661,226. What moves you across the line is your income in retirement, where you live then, and what Congress does to the rate schedule in the meantime.
Is a Roth or a traditional 401(k) better if my tax rate stays the same?
Neither. They are arithmetically identical, and you can watch it happen: set the tax on the invested refund to 0 and the crossover comes out at 22.17%, which is exactly the 22.17% the deduction saves today. At equal rates the multiplication commutes, so paying tax on the way in and paying it on the way out produce the same after-tax dollar. Everything anyone claims beyond that comes from the rate changing, from the refund being invested or not, or from a rule outside the arithmetic.
What tax rate does a traditional contribution actually save me?
Here, 22.17%, not 24.0%. The whole return is computed twice on identical facts, once with the $7,000 left in box 1 and once with it taken out, and the difference is $1,552. Your next $1,000 of wages is taxed at 24.0%, but the contribution straddles a bracket boundary, so only the top slice came off at that rate. Multiplying by your bracket would have overstated the saving by $128.
What is the crossover tax rate between a Roth and a traditional account?
It is the retirement marginal rate at which the two end with the same after-tax money, and at the inputs above it is 19.90%. The arithmetic is simple once the refund is in it: the Roth ends with the whole pile, the traditional ends with the pile less the retirement rate plus whatever the invested refund is worth after its own tax, so the two are equal when the retirement rate equals the after-tax refund as a share of the pile. If the refund is spent instead of invested the crossover collapses to 0.00%, because then the traditional account is just the Roth with tax still to come off it.
Does it matter whether I invest the tax refund?
It is most of the argument. A traditional year costs $5,448 of take-home against $7,000 for a Roth year, and that $1,552 difference is real money. Invested for 30 years at 7.0% it becomes $146,603, or $131,597 after 15.0% on its $100,043 of gain, and the traditional side finishes at $647,353. Spent, the traditional side finishes at $515,756, which is $145,470 behind the Roth. Most comparisons quietly assume the refund is invested and never say so.
Is a Roth better on a low income?
At low income the deduction is worth less than the bracket suggests, and this page measures how much less. At $25,000 of wages the deduction saves $528 on a $7,000 contribution, a rate of 7.54%, because the § 25B saver's credit is nonrefundable: taking the deduction cut the credits on line 21 from $400 to $226. But it does not always run that way. At $45,000 the deduction moves you into a better saver's credit tier, line 21 rises from $0 to $200, and the deduction is worth 14.86% against a 12.0% bracket. Enter your own income rather than trusting either rule of thumb.
Can an agent or a script use this calculator?
Yes, and it is the same computation the page runs. Every input is a query parameter, and the same parameters on /tools/roth-vs-traditional.json return the full answer as JSON: both after-tax balances, the gap, the crossover retirement rate, what the deduction saves and the rate that works out to, the rate on your next $1,000 of wages for comparison, the two Form 1040s side by side, a retirement-rate ladder, all five filing statuses, both settings for the refund, and the engine's own computability verdict on both returns. The page itself reads that endpoint, so the agent surface cannot quietly drift from the human one.
Sources
- IRS Rev. Proc. 2024-40 (2025 inflation-adjusted items), as of 2025-01-01. The rate tables, standard deduction, and credit thresholds for tax year 2025, as published by the IRS. These are what the current rate on this page is measured against.
- One Big Beautiful Bill Act (P.L. 119-21), as of 2025-07-04. The statute behind the standard deduction and the rate schedule used for 2025. It is also the reason the retirement rate on this page has to be an input: a rate schedule is a law, and laws change.
- 26 U.S.C. (Internal Revenue Code), as of 2025-01-01. The sections this comparison is built out of: § 1 rates, § 1(h) capital gain rates on the invested refund, § 63 standard deduction, § 25B saver's credit, § 219 and § 402(g) contribution limits, § 408A(d) tax-free qualified Roth distributions, and § 401(a)(9) required minimum distributions.
These are the parameter authorities the engine itself reports for every computation, not citations chosen after the fact. The rate schedule, standard deduction, and saver's credit tiers come from the IRS revenue procedure and the statute that set them; the code sections are the rules that make one wrapper differ from the other. When the engine loads a different parameter set, this list changes with it.
Want the number for your actual finances?
Carlo is a personal finance agent. It knows your accounts, debts, and goals, so instead of a worked example at the salary you typed it can watch what you actually earn through the year, so the rate this decision turns on is a measurement rather than a number you had to guess at in January. Text it the question.
ask carlo anything(415) 376-5678
Other calculators
- Compound interest calculator
- Principal, monthly contributions, rate, and years to the final balance, split into the money you put in and the growth compounding added.
- What will my 401k be worth at retirement?
- Salary, contribution percent, and employer match to the 401k balance at retirement, split into your own money, the match, and the growth on top.
- Retirement calculator
- Grows your retirement savings month by month to the age you name, shows the balance in today's dollars as well as nominal, and walks the drawdown forward to the age the money runs out.
- FIRE number calculator
- Divides your annual retirement spending by the withdrawal rate you choose, shows the number at four rates side by side, and computes the years to reach it from what you have invested and what you save each month.
- Roth conversion calculator
- Other income and the amount you convert to the federal tax the conversion adds, the rate it pays, and the largest conversion that still fits your current bracket.
- Federal income tax calculator
- Wages, filing status, and children under 17 to the federal income tax for the year, walked down the numbered Form 1040 lines that produce it.
Every calculator is on one page, and each one answers at the same address in JSON.
Written by Tejas Shah, Co-founder, Engineering. Building Carlo, the financial model that begins with the decision you're actually weighing. Previously engineering leadership across fintech and consumer startups.
This compares two wrappers on federal income tax alone, for tax year 2025, on wage income with the standard deduction and no dependents. It does not know what rates will be when you retire, and it leaves out state and local tax, required minimum distributions, the five-year rule, employer matching contributions, Medicare premium surcharges, and every eligibility limit on who may contribute or deduct. It is arithmetic, not advice, and it does not pick a side. Check anything that matters against your own return and your own plan documents.