Taxes — Capital Gains, WA State, Step-Up, and QSBS
Most of the tax information on the web is a mess. It’s confusing because it tries to apply to everyone, and it’s often written by non-engineers for non-engineers. This post is the taxes-only slice of my notes — capital gains, Washington State cap-gains mechanics, step-up in basis, retirement-account mechanics (IRAs, 401(k)s, Roth, 529s), and related tax-code levers for a software engineer’s life.

For RSUs, stock options, metrics, health insurance, and money philosophy, see the companion money post.
- Hannah — assumptions
- Taxable income, and capital gains
- Rates Taxes and Savings
- IRAs Non-Taxable Saving Accounts
- Tax-placement Q&A
- Standard deduction + 0% LTCG
Hannah — assumptions
Everything here assumes you’re roughly in Hannah’s shoes: a software engineer at a big company, maxing a 401k, earning too much to deduct a Roth, with a 35% federal marginal rate and 15% long-term capital gains rate. Retirement-account mechanics (IRAs, 401(k)s, Roth rules, 529s) are covered below — the RSU grants, stock-option strategy, and money philosophy live on the money post.
Taxable income, and capital gains
Income is the money you make. That starts by being your wages, but as you get assets like stocks, bonds and houses, things get a big more complex. Let start with easy sources of income:
Wages + Bonus: What you’re paid at work; you pay the marginal tax rate. Interest on Savings and Bonds and Stock Dividends: What you’re paid to hold an investment (to assume the risk); you pay the marginal tax rate.
Capital Gains: If you have assets (houses, shares of companies), you may not get interest, but the asset can appreciate. You need to pay tax on those gains. In general capital gains can be short (STCG) or long term (LTCG), with short term being at the marginal tax rate, and long term having a tax benefits (Hannah: 15% LTCG, vs 34% marginal tax rate).
When retired, you need to get money out of your savings, which you can do by taking interest/dividends or by selling assets. When selling assets, you pay capital gains. This raises a question: should you keep your capital gains inside or outside your IRAs (where they have tax-free growth)?
Rates Taxes and Savings
Marginal vs Average Tax Rate
Taxes are like a step function. From 0 - K1 you pay rate t1, From K1 - K2 you pay rate t2, etc. The marginal tax rate is how much tax you pay on every extra dollar make, E.g. the tax rate in the maximum step. By contrast, your average tax rate is the total taxes/total income, which can be significantly less then the marginal tax rate depending on how far over the step function you are.

Short vs Long term capital gains
Short-term capital gains are the same as income, but long-term capital gains (assets held longer than a year) are taxed at a lower rate:
Below is tax rate by income in 2020.
| Tax Rate | Married Filing Jointly |
|---|---|
| 15% | Up to 488K |
| 20% | Above 488K |
Washington State Capital Gains Tax
Washington has a state-level long-term capital gains tax, enacted by ESSB 5096 (2021) and upheld as an excise tax — not an income tax — by the WA Supreme Court in Quinn v. State (2023). The 2.9% surcharge tier was added by ESSB 5813 (2025), retroactive to Jan 1, 2025. Current schedule (2026, indexed annually):
| Annual LTCG (after exemption) | WA rate |
|---|---|
| $0 – $278,000 (standard deduction) | 0% |
| $278,001 – $1,278,000 | 7% |
| $1,278,001+ | 9.9% (7% + 2.9% surcharge) |
Authority: RCW 82.87 · WA DOR — Capital Gains Tax · WA DOR — Tiered rates special notice.
The tax applies to individuals, including those with ownership interests in pass-through or disregarded entities that sell or exchange long-term capital assets. Key exemptions:
- Real estate (separately covered by the real-estate excise tax)
- Retirement accounts (IRAs, 401(k)s) and assets held inside them
- Some family-owned small business stock, timber, livestock, commercial fishing privileges
Note: WA does not conform to the federal §1202 QSBS exclusion — qualifying small-business-stock gains are federally excluded but still fully WA-taxable.
Hypothetical worked example — a married-filing-jointly household already above the $250K NIIT threshold on wages, so NIIT applies to the full gain. Federal LTCG at 20% (top bracket, MFJ > $613,700 taxable income) + 3.8% NIIT = 23.8%. Realizations chosen to sit at or just past the WA step-function kinks so the marginal bite is visible:
| LTCG realized | Where it sits | Total | Effective | Marginal at this tier |
|---|---|---|---|---|
| $278,000 | At the WA exemption ceiling — last dollar free | $66,164 | 23.8% | 23.8% |
| $300,000 | $22K past the first kink — 7% bites on the excess | $72,940 | 24.3% | 30.8% (+7% WA) |
| $1,278,000 | At the 9.9% surcharge threshold — last dollar at 7% | $374,164 | 29.3% | 30.8% |
| $1,300,000 | $22K past the surcharge — 9.9% bites on the excess | $381,578 | 29.4% | 33.7% (+9.9% WA) |
| $2,000,000 | Well past the surcharge — 9.9% sustained over $722K | $617,478 | 30.9% | 33.7% |
Two step-functions to notice:
- NIIT 3.8% at $250K MAGI (MFJ) — unindexed since enactment, so it triggers for any meaningful LTCG once household MAGI is above the threshold. Baked into the 23.8% federal column above.
- WA goes 0 → 7% → 9.9% at $278K and $1.278M. The jump from 23.8% to 30.8% total marginal at the first kink, then 30.8% to 33.7% at the second, is what makes realization-year planning matter.
Planning implication. Splitting a $2M realization into two $1M tax years saves the 2.9% surcharge on the ~$722K above $1.278M — roughly $21K/yr. Every dollar above the surcharge kink pays nearly 10% more than the dollar just below it. See installment sales under IRC §453 for the standard mechanism to spread across tax years.
Retirement scenario — living on LTCG with no wage income. The picture flips dramatically when there’s no salary in the mix. With LTCG as essentially all income, a retired MFJ household unlocks federal brackets that high earners never see during working years: the 0% federal LTCG bracket (taxable income ≤ $98,900 MFJ in 2026) and the 15% bracket (up to $613,700), rather than the 20% top bracket. Example: living on $300K/yr, all from LTCG realizations, MFJ, using the 2026 standard deduction (~$30,000):
| Layer | Math | Tax |
|---|---|---|
| Taxable income (after std deduction) | $300,000 − $30,000 = $270,000 | — |
| Federal 0% LTCG bracket (≤ $98,900 taxable) | $98,900 × 0% | $0 |
| Federal 15% LTCG bracket ($98,900–$270,000 taxable) | $171,100 × 15% | $25,665 |
| Federal NIIT (MAGI $300K; excess over $250K = $50K) | $50,000 × 3.8% | $1,900 |
| WA state cap gains (LTCG realized minus $278K) | ($300,000 − $278,000) × 7% = $22K × 7% | $1,540 |
| Total | $29,105 |
That’s a 9.7% effective rate on $300K of spending — one-third of the ~29% the same household pays on the same dollar amount during working years (from the table above). Two mechanics drive the swing:
- The 0% LTCG bracket is only accessible without wage income (wages push taxable income past $98,900 before any LTCG shows up). Lose your W-2 and you get the first ~$99K of LTCG federally tax-free, assuming no other income.
- NIIT’s $250K threshold is unindexed — it still bites, but only on the $50K above the threshold, not the full gain. The “always applies at high income” rule loosens to “applies on the margin.”
WA state is linear in this range (first $278K free, then 7%), so the state bite stays small.
This is the tax case for timing retirement realizations: every year you draw mostly from LTCG-heavy taxable accounts (vs. ordinary-income sources like traditional-IRA withdrawals or wages-in-transition) captures the 0% bracket once. A retiree with $2M in appreciated stock can walk down ~$300K/yr for ~7 years paying ~10% effective, vs. realizing the same $2M in a single working year at ~30%.
Benchmark table — effective vs. marginal rates at retirement draw levels. Same MFJ, all-LTCG, no-wages assumptions as above. The “which taxes are active” column shows why the effective rate climbs: lower brackets fill up one by one as the draw grows, while the marginal rate on the next dollar locks in once all three taxes are active.
| LTCG drawn | Fed LTCG bracket at top | NIIT status | WA state bracket | Total tax | Effective | Marginal on next $ |
|---|---|---|---|---|---|---|
| $200,000 | 15% (taxable $170K) | ❌ not yet (MAGI < $250K threshold) | ❌ not yet (LTCG < $278K) | $10,665 | 5.3% | 15.0% |
| $300,000 | 15% | ✅ on $50K excess over $250K | ✅ 7% on $22K over $278K | $29,105 | 9.7% | 25.8% |
| $400,000 | 15% | ✅ on $150K excess | ✅ 7% on $122K over $278K | $54,905 | 13.7% | 25.8% |
| $500,000 | 15% | ✅ on $250K excess | ✅ 7% on $222K over $278K | $80,705 | 16.1% | 25.8% |
Between $300K and $500K, the marginal on the next dollar is flat at 25.8% (15% federal LTCG + 3.8% NIIT + 7% WA). What drives the effective rate up is that a smaller share of each incremental dollar lives in the free 0% federal bracket. Below ~$250K MAGI you’re in the 5% effective zone (no NIIT, no WA); cross $250K MAGI and NIIT kicks in; cross $278K LTCG and WA kicks in. After both kinks, the climb is linear.
Why this strategy — the RMD cliff at 73. The low-effective-rate window isn’t permanent. Required Minimum Distributions force withdrawals from traditional IRAs and 401(k)s starting at age 73, and those withdrawals hit at ordinary-income rates — not LTCG rates. A $5M traditional balance at 73 forces ~$189K/yr out (divisor 26.5), and that $189K stacks on top of any LTCG realized the same year, pushing taxable income into higher brackets. So the decade-ish between retirement and 73 is the window to: (a) spend taxable-brokerage LTCG first at ~5–16% effective, (b) do Roth conversions in low years to drain traditional balances before RMDs, (c) land on 73 with a smaller traditional-IRA balance and manageable RMDs. Skip the window and RMD tax drag shows up forever. See the RMDs section below for mechanics.
Coming in 2028 — millionaires’ income tax. ESSB 6346 (signed March 30, 2026) layers a 9.9% state income tax on household income above $1M/yr, effective Jan 1, 2028. MFJ couples share a single $1M deduction (not doubled). Credits against WA cap-gains tax and other states’ income tax prevent stacking. A legal challenge is in progress; monitor before 2028 planning.
Sources at the federal layer: IRS Topic 409 — Capital Gains and Losses · IRS Topic 559 — Net Investment Income Tax · Kiplinger 2026 federal LTCG brackets.
Step-Up in Basis at Death - The Ultimate Tax Escape
TL;DR: When you die, your heirs inherit assets at current market value with ZERO capital gains tax on all appreciation during your lifetime.
This is one of the most powerful provisions in the U.S. tax code. Your beneficiaries receive a “stepped-up basis” - the tax basis resets to market value on your date of death, completely eliminating capital gains.
Example:
- You bought stock for $100K
- Worth $5M at death
- Heirs inherit with $5M basis
- They sell for $5M = $0 capital gains tax
- Tax savings: ~$1M vs. selling while alive
Special Benefits for Spouses in Washington State:
As a community property state, Washington provides a massive advantage - BOTH halves of community property get stepped up when one spouse dies. Your surviving spouse can immediately diversify the entire position tax-free.
- Joint purchase: $200K
- Current value: $2M
- First spouse dies: Entire $2M gets new basis
- Surviving spouse sells: $0 tax (saves ~$400K)
When This Makes Sense:
- You’re 65+ or have health issues
- Have other assets for living expenses
- Estate under $13.61M (2024 exemption)
- Can manage concentration risk
The “Buy, Borrow, Die” Strategy:
- Hold appreciated assets
- Borrow against them for expenses (loans aren’t taxable)
- Die holding assets (heirs get step-up, sell to repay loans)
Important Caveats:
- Estate tax applies over $13.61M
- Doesn’t apply to retirement accounts (401k, IRA)
- Stock could crash before death
- Opportunity cost of holding vs. diversifying
Remember: Balance tax optimization with actually living your life. Your heirs would prefer you alive and happy over any tax savings.
No load index funds and ETFs
Funds with zero or almost zero fees. Usually a broad index fund like Fidelity’s FZROX and FZILX or an ETF like VTI and ITOT (Note these ETFs have a 0.03% fee, or 300/1,000,000).
ETFs and Mutual Funds (MF) differ primarily in how they handle Capital Gains and Dividends.
With an ETF, you pay all capital gains when you sell, meaning you have control to avoid short term capital gains, and potentially long term capital gains when you’re at 20% (vs 15%).
With MFs they need to have a capital gains distribution annually as they re-balance the fund. This matters because you need to pay the capital gains on behalf of the mutual fund at distribution time. The capital gains might be short term depending on when the fund bought and sold individual stocks.
Digging a bit deeper, it seems like there are Mutual Fund strategies to avoid capital gains distributions, but I didn’t make the time to understand how effective they are. If I understand this correctly, its possible FZROX is using a similar strategy as there were no capital gains distributions in 2020, though there were in 2018-2019.
It seems both ETFs and MFs need to distribute dividends, which are often taxed as income. I don’t understand why they can’t directly re-invest it.
IRAs Non-Taxable Saving Accounts
An IRA is an account that grows tax-free. The critical value of the IRA is the tax-free growth. With money not in an IRA you have to pay tax twice 1) when you make the money 2) when the money grows.
IRAs have contribution limits, X, Y, Z
IRAs early withdrawal penalties
IRAs hardship withdrawal
TODO show calculation for Roth growth
TODO show calculation for IRA growth
IRAs vs 401Ks
A 401k is a special IRA that is set up by your employer that has matching (good thing) but usually fewer choices of what you can invest in (bad thing). Otherwise, it’s a regular IRA.
RMDs Required Minimum Distributions
Once you turn 73, the IRS requires you to start taking Required Minimum Distributions (RMDs) each year from traditional retirement accounts like IRAs and 401(k)s. Your RMD is calculated by dividing your account balance at the end of the previous year by a life expectancy factor from IRS tables. For example, at age 73, the divisor is 26.5, so a $5 million balance would result in a required withdrawal of about $188,679 ($5,000,000 / 26.5). Failing to take your RMD on time can lead to steep penalties, so it’s essential to plan ahead and integrate RMDs into your overall retirement income strategy.
IRA vs Roth IRA
IRA you pay no tax on the way in, but you pay tax on the way out. By contrast with Roth you pay tax before making a contribution, but then pay no tax on the way out.
Assuming your tax rate is the same, it doesn’t matter which you choose. If your tax rate goes up post retirement, you’re better off with a Roth, and if your tax rate goes down, you’re better off with an IRA. A few notes:
- Your tax rate can go up by moving to a state with higher state taxes (e.g. From WA w/0% state tax to HI w/TK% state tax).
- If you’ve saved a lot, your marginal tax rate might be the same, but your average tax rate (which will be on your retirement withdrawals) is most likely lower.
IRA and Roth IRA contribution limits
You’re limited to how much you can put in your IRA and Roth. Odds are you can’t put money into your Roth IRA because you make too much.
Back door Roth
Tax law is goofy. You can’t deposit money into a ROTH since you’re over the limit, but you can take money from your IRA and convert into a Roth IRA. But there’s a rub - the Pro-Rata rule.
The pro-Rata rule
Even though you are using after-tax dollars to transfer money to the Roth IRA, you can’t do the math like that. The rules (arbitrary) state that the money you transfer is in the ratio of your IRA before and after-tax contributions.
529s
An education-only after-tax savings account. You put in money after tax, get tax-free growth, and can use distributions for your kids’ or grandkids’ education.
Tax-placement Q&A
- Should I hold my high risk/high return investments in my taxable or non-taxable accounts?
- My high risk investments are already in non-taxable, should I sell them and swap them with my taxable account?
Standard deduction + 0% LTCG
If long-term capital gains are your only income, you can use the standard deduction to further reduce your taxable income. For 2024, the standard deduction for married filing jointly is $29,200. The 0% federal long-term capital gains rate applies up to $94,050 of taxable income (after the standard deduction). This means you could sell over $120,000 of appreciated stock and pay no federal tax on those gains if you have no other income.
However, in practice, most people will have at least some dividend or interest income from fixed income positions (like bonds, CDs, or high-yield savings). These count toward your taxable income and reduce the amount of capital gains that can be taxed at the 0% rate. Be sure to include all sources of income when planning your withdrawals and tax strategy.