The scenario
You're a married couple filing jointly with a modest, flexible income. Say $20,000 of net self-employment income and $20,000 of long-term capital gains and qualified dividends. You have a solo 401(k) you can use to shelter the self-employment income, and a taxable brokerage account with embedded gains. You're not spending much this year, so you have a rare opportunity: you can choose how much taxable income to recognize.
There's "room" at the bottom of two different tax structures — the 12% ordinary income bracket and the 0% long-term capital gains (LTCG) bracket. The question is which one to fill, and with what. Three candidate strategies:
- Roth conversion — convert enough traditional 401(k)/IRA money to ordinary income to fill the 12% bracket.
- Capital gains harvesting — realize additional long-term gains while they're taxed at 0%.
- Defer everything — push all self-employment income into the solo 401(k) and realize a large chunk of gains at 0%.
Each is defensible. The right answer depends on how ordinary income and capital gains stack, where the thresholds land for 2026, and your read on future tax rates. Let's build the mental model first, then run the numbers.
How ordinary income and capital gains stack
This is the single most important mechanic, and it's the one people get wrong most often. Long-term capital gains and qualified dividends are taxed under a separate rate schedule from ordinary income — but they sit on top of your ordinary income, not underneath it.
Picture your taxable income as a stack. Ordinary income (wages, self-employment income, traditional retirement withdrawals, Roth conversions, interest) fills the stack from the bottom. Then long-term gains and qualified dividends are layered on top. The LTCG rate that applies depends on where the gains land once stacked above ordinary income — not where they'd land in isolation.
This means every dollar of ordinary income you add pushes your capital gains higher up the stack, potentially out of the 0% band and into the 15% band. The two decisions are linked: a Roth conversion doesn't just cost ordinary tax, it can also push existing gains from 0% into 15%. That interaction is the heart of this whole problem.
The 2026 numbers you're working with
All figures below are for tax year 2026, married filing jointly:
- Standard deduction (2026): $32,200
- 12% ordinary bracket (2026): taxable income from $24,801 to $100,800 (the 10% bracket covers $0–$24,800)
- 0% LTCG bracket (2026): applies until taxable income reaches $98,900; 15% from $98,901 to $613,700; 20% above that
- Solo 401(k) employee deferral (2026): $24,500 (employer/profit-sharing contributions are separate and based on net SE earnings)
- NIIT (2026): 3.8% on net investment income once MAGI exceeds $250,000 (MFJ)
Note that the top of the 12% bracket ($100,800 of taxable income) and the top of the 0% LTCG bracket ($98,900 of taxable income) are close but not identical. They are indexed separately and don't line up perfectly. That small gap matters when you're optimizing to the dollar, so check both thresholds rather than assuming "the 12% bracket and the 0% LTCG bracket end at the same place." For 2026 they do not.
One more framing note: the bracket thresholds above are stated in taxable income terms, i.e. after the standard deduction. When you think in gross dollars, add the $32,200 deduction back. A rough gross ceiling for the 0% LTCG bracket is therefore about $98,900 + $32,200 = $131,100 of total income before deductions, though your exact number depends on your mix of income.
Strategy 1: Roth conversion to fill the 12% bracket
Start from your base case. You have $20,000 of net self-employment income and $20,000 of LTCG/dividends. Assume for simplicity you make no 401(k) deferral here, so the full $20,000 of SE income is ordinary (we'll set aside the SE-tax wrinkle — see the flag below).
After the $32,200 standard deduction (2026), the $20,000 of ordinary income is fully absorbed by the deduction. That leaves you with a lot of unused space in the bottom brackets. You could convert traditional retirement money to Roth to fill the 12% bracket.
To reach the top of the 12% bracket you need taxable ordinary income of $100,800. Your SE income provides $20,000 gross, and you have $32,200 of deduction. So a Roth conversion of roughly $113,000 would bring ordinary taxable income to about $100,800 ($20,000 + $113,000 − $32,200 ≈ $100,800).
The tax on filling the bracket: the ordinary income from $24,801 to $100,800 is taxed at 12%, and the first $24,800 at 10%. But here's the catch from the stacking rule. Your $20,000 of capital gains now sits on top of $100,800 of ordinary income. Taxable income is well past the $98,900 0% LTCG ceiling (2026), so essentially all $20,000 of those gains get pushed into the 15% band. That's roughly $3,000 of capital gains tax you wouldn't otherwise owe.
The Roth conversion still has merit: you're moving money into a tax-free-forever account at a 12% marginal rate, which is historically cheap. But the true marginal cost of the last conversion dollars is higher than 12% because of the gains being pushed up. This is the bracket interaction in action.
Strategy 2: Capital gains harvesting at 0%
Now flip it. Instead of recognizing ordinary income, harvest long-term gains while they're free.
Keep ordinary income low. With $20,000 of SE income and a $32,200 standard deduction (2026), your ordinary taxable income is $0 — the deduction more than covers it, and roughly $12,200 of deduction is "wasted" against ordinary income (it can still shelter gains). Your capital gains now sit at the very bottom of the stack.
You can realize long-term gains up to the point where taxable income hits $98,900 (2026), and all of it is taxed at 0%. Your existing $20,000 of gains is already in there. Room remaining: roughly $98,900 − ($20,000 − $32,200 worth of deduction absorption)... let's be precise. Taxable income = $20,000 SE + total gains − $32,200. Setting that equal to $98,900: total gains = $98,900 − $20,000 + $32,200 = $111,100. Since you already have $20,000, you can harvest about $91,100 of additional gains at 0%.
That's a substantial, permanent tax saving. Harvesting gains at 0% and immediately repurchasing the same position resets your cost basis upward — no wash-sale rule applies to gains, so you can buy back instantly. Future appreciation is measured from the higher basis, reducing tax when you eventually sell for real.
The tradeoff: every dollar of basis step-up you take here uses up 0% room that you can't also give to a Roth conversion. You can't max both in the same year.
Strategy 3: Defer all SE income, then harvest gains
The third strategy combines a deferral with harvesting. Contribute enough to the solo 401(k) to zero out (or sharply reduce) the self-employment income, then realize gains at 0%.
The employee deferral limit is $24,500 (2026), which more than covers $20,000 of SE income — though your deductible deferral is limited to your net SE earnings, so you can effectively shelter the full $20,000. With ordinary income driven to roughly $0 and the standard deduction fully available to shelter gains, you maximize the 0% LTCG room: taxable income can climb to $98,900 entirely as gains. Total harvestable gains ≈ $98,900 + $32,200 = $131,100, of which $20,000 already exists, leaving about $111,100 of new gains at 0%.
This is the most aggressive gains-harvesting play. But notice the cost: by deferring the SE income into a traditional 401(k), you've converted income that could have filled the 0% LTCG / 12% space cheaply into a future ordinary-income liability. You'll pay ordinary rates on it (and on its growth) when you withdraw. If you expect to be in a low bracket forever, that's fine. If you expect higher rates later, you've arguably made the wrong trade — you sheltered income at a 0% effective cost today only to tax it later at a positive rate.
A frequently better variant: make the solo 401(k) contribution a Roth solo 401(k) deferral instead of traditional. You give up the deduction (the SE income stays taxable, but it's largely absorbed by the standard deduction anyway), and the money grows tax-free. This captures the spirit of "fill the cheap brackets with Roth money" without manufacturing a future tax bill.
Comparing the three: it's a Roth-vs-gains tradeoff
Strip away the detail and the choice is really: do you spend your scarce low-bracket room on a Roth conversion (future tax-free growth) or on capital gains harvesting (a basis step-up)?
- Roth conversion wins when you have meaningful pre-tax balances, expect your future tax rate to be higher than today's, and want decades of tax-free compounding. The cost is real ordinary tax now (12%) plus the gain-stacking penalty (pushing existing gains to 15%).
- Gains harvesting wins when you have large embedded gains you'll eventually realize anyway, expect future capital gains rates to be the same or higher, and value a guaranteed 0% basis reset. The cost is opportunity — you're not building Roth balances.
A reasonable hybrid: harvest gains at 0% up to a point, then do a smaller Roth conversion, accepting that the last conversion dollars push some gains to 15%. The optimal split depends on your balances and rate forecast. Model both legs explicitly with the [Roth conversion calculator](/calculators/roth-conversion) and the [capital gains tax calculator](/calculators/capital-gains-tax), and compare the lifetime outcome with [Roth vs. traditional](/calculators/roth-vs-traditional).
The NIIT and TCJA-sunset backdrop
Two structural factors should color the decision.
NIIT (2026): the 3.8% net investment income tax kicks in once MAGI exceeds $250,000 (MFJ). At the income levels in this scenario you're nowhere near it — but be aware that a very large Roth conversion and a large gain harvest in the same year both add to MAGI and could, in aggregate, brush the threshold. Roth conversions count toward MAGI; the resulting tax-free withdrawals later do not, which is part of the long-run appeal.
TCJA sunset: the individual provisions of the 2017 Tax Cuts and Jobs Act were originally scheduled to expire after 2025, which would have raised the 12% bracket back toward 15% and shifted thresholds. Subsequent legislation has changed the picture, and the exact post-sunset bracket structure is an area where the rules are unsettled and politically contingent. I'm flagging this explicitly: do not assume today's low brackets are permanent, and do not assume they'll definitely rise either. The practical takeaway is asymmetric — if rates are likely to rise, front-loading income into today's cheap brackets (via Roth conversions especially) becomes more attractive, which tilts the scale toward Strategy 1 over indefinitely deferring income in Strategy 3.
A flag on self-employment tax
One simplification above deserves a caveat. Net self-employment income is subject to self-employment tax (Social Security + Medicare, ~15.3% on net earnings, with a deduction for half of it) in addition to income tax. That changes the precise dollar figures for how much deduction and SE income you actually have to work with, and deferring SE income into a 401(k) does not reduce SE tax. I've kept the worked examples in income-tax terms for clarity, but your real optimization should net out SE tax first. When the numbers are this close to a bracket edge, that detail can move your answer by a few thousand dollars — run it through a calculator with your actual figures rather than relying on the round numbers here.
Bottom line
You have a genuinely valuable asset this year: unused room in the 12% ordinary bracket and the 0% LTCG bracket (2026). Because gains stack on top of ordinary income, you generally can't fully exploit both at once — filling one consumes the other. Choose based on your balances and your tax-rate outlook: build tax-free Roth space if you expect higher future rates, or lock in a 0% basis step-up if you have large embedded gains. Deferring all SE income to harvest the most gains is the flashiest move but quietly trades cheap-bracket income today for ordinary tax later. Model the exact split with your own numbers before you pull any lever.