Language: English

ESPP
Form 8949
Form 1099-B
Form 3922
Adjusted Cost Basis
Double Taxation
Form W-2
Schedule D
IRC Section 423
Qualifying Disposition

How to Avoid Double Taxation on ESPP Sales

Step-by-step guide to adjusting your cost basis on Form 8949 to prevent double taxation on ESPP stock sales. Use Form 3922, the ESPP basis calculator, and adjustment code B.

16 min read

An ESPP adjusted cost basis calculator tells you the number your broker will not: purchase price plus the ordinary income per share your employer already reported on Form W-2 for that ESPP lot. Without that adjustment on Form 8949 column (e), Schedule D can tax the same discount dollars twice—once as wages, again as phantom capital gain when you accept a Form 1099-B import that shows purchase price only.

Verified against IRS Instructions for Form 3922 and Form 8949 (2025), accessed 16 June 2026. As of the 2026 filing season, Fidelity, Schwab, E*TRADE, and Morgan Stanley still file purchase-price-only cost basis on Form 1099-B for standard Section 423 ESPP lots—Form 8949 remains where you document the wage layer brokers omit.

$108

per-share wage layer a broker typically omits on a single ESPP lot

On an 80-share disqualifying sale at a 32% federal marginal rate, phantom gain from purchase-only basis can cost roughly $2,765 in extra federal tax on top of W-2 income already withheld

Data point: per-share wage layer a broker typically omits on a single ESPP lot equals $108. Context: On an 80-share disqualifying sale at a 32% federal marginal rate, phantom gain from purchase-only basis can cost roughly $2,765 in extra federal tax on top of W-2 income already withheld

Why ESPP sales trigger double taxation

ESPP shares sit at the intersection of two ledgers that do not reconcile automatically:

LedgerWhat it recordsESPP blind spot
Payroll / Form W-2Ordinary income on the ESPP discount or spread at saleYou stop thinking about it after February
Brokerage / Form 1099-BSale proceeds + what you paid for sharesPurchase price only—no W-2 wage layer
Your Form 8949Taxpayer-reported basis reconciled to 1099-BMust add compensation income yourself

Under IRC Section 423, the compensation element of an ESPP sale is ordinary income. Your employer reports it on Form W-2 and documents the purchase on Form 3922. The broker knows your purchase price from the plan administrator feed—not the payroll spread.

The double-taxation failure mode: W-2 withholding taxes the discount as wages. You import Form 1099-B with basis = purchase price. Schedule D then taxes the discount again as capital gain. Same dollars, two tax categories.

For the broader equity-compensation picture, see cost basis for equity compensation and the ESPP taxation guide. RSU readers should use the separate RSU Form 8949 guide—this article is ESPP-only.


ESPP adjusted cost basis: the formula

Adjusted basis per share = Purchase price per share + Ordinary income per share (W-2 / Form 3922)
Capital gain per share   = Sale price per share − Adjusted basis per share

Disqualifying disposition (sold before 2 years from offering date or 1 year from purchase): ordinary income per share is typically FMV at purchase − purchase price.

Qualifying disposition (both holding periods met): ordinary income per share is the lesser of (a) the discount based on offering-date FMV or (b) actual gain on sale—per annual Form 3922 instructions.1 Where I'm less sure—some employers delay W-2 ESPP income until the calendar year of sale, so a November purchase sold in March may not show the wage line on last year's W-2. Your mileage will vary depending on plan administrator timing; match the sale year's W-2 supplement to Form 3922.

Quick Answer

What number goes in Form 8949 column (e) for ESPP shares?

Purchase price per share plus the ordinary income per share your employer reported on Form W-2 for that ESPP lot—typically derived from Form 3922. That sum is your ESPP adjusted cost basis. Do not use the broker's purchase-price-only figure from Form 1099-B.

Source: IRS Instructions for Form 3922; Instructions for Form 8949

Form 3922 → W-2 → Form 8949: field mapping

Methodology (16 June 2026): We mapped Form 3922 box labels from the 2025 IRS instructions to the per-share inputs the ESPP Basis Adjustment calculator accepts, then cross-checked against W-2 supplemental layouts published by Intuit, Adobe, and Micron plan-administration guides.

Form 3922 boxFieldUse in basis calculation
Box 1Date of grant (offering date)Qualifying vs disqualifying holding-period test
Box 2Date of exercise (purchase date)Acquisition date; 1-year holding clock
Box 3FMV on grant dateQualifying-disposition discount cap
Box 4FMV on purchase dateDisqualifying ordinary income = Box 4 − purchase price
Box 5Purchase price per shareCalculator "purchase price" input; 1099-B basis (incomplete)
Box 6Shares transferredLot size for column (e) total
Box 8Exercise price per shareCross-check against Box 5
W-2 supplementESPP ordinary income totalDivide by shares sold for per-share wage layer

Anecdotally, employees who pull Box 5 from 1099-B and skip the W-2 supplement are the largest source of ESPP overpayment we see in support threads—software imports make the error silent.


Step-by-step: enter ESPP basis on Form 8949

Step 1 — Gather documents before importing 1099-B

DocumentWhat to extract
Form 3922 (one per purchase)FMVs, purchase price, shares, dates
Form W-2 + ESPP supplementOrdinary income per lot (may lag purchase year)
Form 1099-BProceeds, broker basis, checkbox codes
Sale confirmationShares sold, sale price, lot ID

Step 2 — Match each sale row to one ESPP purchase

FIFO is common but not universal. Specific identification beats averaging when your broker supports lot-level sells. If you sold 120 shares from two ESPP purchases in one trade, split into two Form 8949 rows—one per purchase—with separate basis calculations.

Step 3 — Calculate adjusted basis per row

Column (e) = (Purchase price + W-2 ordinary income per share) × Shares sold from that lot

Run the math in the ESPP Basis Adjustment calculator—enter per-share purchase price, per-share W-2 ordinary income, sale price, and share count to see phantom-gain exposure before filing.

Step 4 — Select checkbox and adjustment code B

When basis was not reported to the IRS, or was incorrect, use Part I Box B (short-term) or Part II Box E (long-term). Enter adjustment code B in column (f)—"basis reported to IRS was incorrect"—when broker basis excludes W-2 ordinary income.2

Steel-man: "TurboTax imported my 1099-B—shouldn't that be enough?"
Best case for import-only filing: Open-market stock with correct broker basis and no ESPP history.
Rebuttal: ESPP lots fail that test routinely. Import proceeds into column (d); override column (e) yourself. Tax software rarely reconstructs W-2 wage layers without manual input.

Step 5 — Reconcile Schedule D

Net capital gain = Sum of (proceeds − adjusted basis) across all ESPP Form 8949 rows

Gain should reflect only price movement after compensation was taxed—not discount dollars again.


Worked example: Marcus, firmware engineer at Micron (disqualifying sale)

Marcus bought 60 shares through Micron's Section 423 ESPP on 20 August 2025 at $98.50/share (15% discount). Form 3922 shows purchase-date FMV of $115.88. He sells all 60 shares on 10 April 2026 at $122.00—a disqualifying disposition (held < 1 year from purchase).

Line itemPer shareTotal (60 shares)
Purchase price (Box 5)$98.50$5,910.00
W-2 ordinary income (FMV − purchase)$17.38$1,042.80
Adjusted basis$115.88$6,952.80
Sale proceeds$122.00$7,320.00
Correct capital gain$6.12$367.20
Broker 1099-B basis (purchase only)$98.50$5,910.00
Phantom gain if unadjusted$23.50$1,410.00

At a 32% federal marginal rate, accepting purchase-only basis costs roughly $337 in phantom federal tax on top of the $1,042.80 already taxed as wages.

Marcus enters $6,952.80 in Form 8949 column (e), keeps proceeds $7,320.00 in column (d), checks Part I Box B, and uses code B in column (f).


Worked example: Priya, data scientist at NVIDIA (qualifying sale)

Priya bought 40 shares on 1 February 2024 at $61.20/share. Form 3922 shows offering-date FMV $72.00 and purchase-date FMV $68.00. She sells on 15 March 2026 at $95.00—a qualifying disposition (2+ years from offering, 1+ year from purchase).

Qualifying ordinary income per share = lesser of (a) 15% × $72.00 offering FMV = $10.80 discount cap, or (b) $95.00 − $61.20 = $33.80 actual gain → $10.80/share.

Line itemPer shareTotal (40 shares)
Purchase price$61.20$2,448.00
W-2 ordinary income (qualifying cap)$10.80$432.00
Adjusted basis$72.00$2,880.00
Sale proceeds$95.00$3,800.00
Long-term capital gain$23.00$920.00
Broker 1099-B basis$61.20$2,448.00
Phantom gain if unadjusted$33.80$1,352.00

Priya uses Part II Box E (long-term), column (e) = $2,880.00, code B in column (f). Qualifying treatment reduces ordinary income—it does not eliminate the basis adjustment.


Original research: ESPP broker basis reporting vs calculator inputs

On 16 June 2026, we audited how five major brokerage/plan-administration flows populate Form 1099-B cost basis for Section 423 ESPP sales against the three inputs the ESPP Basis Adjustment calculator requires: purchase price, W-2 ordinary income per share, and sale price.

Broker / administrator1099-B basis fieldIncludes W-2 ordinary income?Calculator override needed?Typical double-tax risk
Fidelity Stock Plan ServicesPurchase price onlyNoYes — add W-2 layerHigh
Charles Schwab Equity AwardsPurchase price onlyNoYesHigh
E*TRADE from Morgan StanleyPurchase price onlyNoYesHigh
Shareworks (Morgan Stanley)Purchase price onlyNoYesHigh
ComputersharePurchase price onlyNoYesHigh
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "ESPP broker Form 1099-B basis vs adjusted cost basis calculator inputs — June 2026 audit",
  "description": "Five-row audit mapping major ESPP plan administrators' Form 1099-B cost basis reporting against ESPP Basis Adjustment calculator inputs and double-taxation risk, verified against 2025 Form 1099-B and Form 3922 instructions.",
  "creator": { "@type": "Organization", "name": "VestingStrategy.com Research" },
  "datePublished": "2026-06-16",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "isAccessibleForFree": true,
  "url": "https://www.vestingstrategy.com/guides/how-to-avoid-double-taxation-on-espp-sales/#dataset-espp-broker-basis-calculator-audit",
  "distribution": [
    {
      "@type": "DataDownload",
      "encodingFormat": "text/html",
      "contentUrl": "https://www.vestingstrategy.com/guides/how-to-avoid-double-taxation-on-espp-sales/#dataset-espp-broker-basis-calculator-audit"
    }
  ]
}

I haven't tested every custodian transfer scenario after a broker migration—anecdotally, acquired lots sometimes import with stale basis flags. Treat the table as a default expectation, not a guarantee for legacy tranches.


Pros and cons: filing approaches for ESPP sales

ApproachAdvantagesDisadvantages
ESPP Basis Adjustment calculator + manual Form 8949Instant phantom-gain visibility; clear audit trail from Form 3922You still type rows into tax software
1099-B import + column (e) overrideFaster proceeds entry; software totals Schedule DSilent double tax if you skip override
CPA-prepared returnExpert lot matching; multi-state sourcingCost; you still supply 3922 and supplements
Wait for broker "fix"Zero effortAs of June 2026, no major administrator adds W-2 wage basis to 1099-B

Taken position: For employees with fewer than eight ESPP sale lots per year, run the ESPP Basis Adjustment calculator once per lot, then enter Form 8949 rows manually—one evening prevents thousands in phantom tax. Above that volume, pay for lot-level reconciliation or maintain a spreadsheet tied to Form 3922 grant/purchase IDs at sale time.


Working checklist


Verdict: payroll wages are part of your ESPP basis

The espp adjusted cost basis calculator exists because brokers will not compute wage-backed basis for you. Form W-2 already taxed the discount layer; Form 1099-B reports what you paid. Form 8949 is the bridge.

Taken position: Treat every ESPP sale as a two-document reconciliation—Form 3922 plus 1099-B—before touching tax software. Run the ESPP Basis Adjustment calculator first; enter column (e) yourself. That habit prevents the most expensive ESPP filing mistake on Schedule D.

Form 8949 reconciles amounts reported on Form 1099-B with amounts you report on your return—the administrative step that turns W-2 ESPP compensation into correct cost basis.

— Paraphrase of Instructions for Form 8949, checked 16 June 2026


Frequently Asked Questions

What is ESPP adjusted cost basis?

Answer: Purchase price plus the ordinary income per share your employer reported on Form W-2 for that ESPP lot—typically documented on Form 3922. That sum is the basis you enter on Form 8949 column (e).

Source: IRS Instructions for Form 3922

Why does my 1099-B show only the ESPP purchase price as basis?

Answer: Brokers record what you paid, not the compensation spread already taxed through payroll. You must add the W-2 ordinary income layer on Form 8949.

Source: IRS Instructions for Form 1099-B

How does the ESPP Basis Adjustment calculator help?

Answer: It computes adjusted basis, correct capital gain, and phantom gain if you accept broker basis—giving you the column (e) number before opening tax software. Educational only; confirm with Form 3922 and your W-2 supplement.

Source: ESPP Basis Adjustment calculator

Which Form 8949 adjustment code fixes ESPP double taxation?

Answer: Code B—"basis reported to IRS was incorrect"—when broker-reported basis excludes W-2 ordinary income from the ESPP discount.

Source: Instructions for Form 8949

Do qualifying ESPP dispositions still need a basis adjustment?

Answer: Yes. Even when ordinary income is limited to the lesser of discount or gain, that income is on your W-2 and must be added to purchase price as adjusted basis—the broker still will not do it.

Source: IRC Section 423; IRS Instructions for Form 3922

Can I fix ESPP double taxation after filing?

Answer: Consider Form 1040-X with corrected Form 8949, Form 3922, and W-2 supplements within the refund statute window.

Source: IRS About Form 1040-X

Where does ESPP ordinary income appear on my W-2?

Answer: Typically in Box 1 wages with detail in the employer's equity tax supplement—not a separate box. Cross-check the supplement total against Form 3922 per lot.

Source: IRS Publication 525


Footnotes


Primary Sources

SourceTypeURL
Instructions for Form 8949 (2025)IRSirs.gov
Instructions for Form 3922IRSirs.gov
Publication 525 (2025)IRSirs.gov
Instructions for Form 1099-B (2025)IRSirs.gov
IRC Section 423Statutelaw.cornell.edu

Infographic showing ESPP double taxation trap where Form W-2 reports ordinary income on the ESPP discount while Form 1099-B shows purchase-price-only cost basis, requiring Form 8949 column e adjusted basis of purchase price plus W-2 income to prevent paying tax twice on the same ESPP compensation dollars before Schedule D totals.

Figure 1: ESPP adjusted cost basis must include W-2 ordinary income—the broker's purchase price alone triggers double taxation on Schedule D.

Disclaimer: This guide discusses general U.S. federal tax principles only and is not personalized tax, legal, or investment advice. Employer plans, state taxes, and cross-border assignments can change results. Confirm facts with the sources cited and a qualified tax professional.

Research note: Editorial publish 16 June 2026 for espp adjusted cost basis calculator and Form 8949 ESPP filing queries—step-by-step basis adjustment to prevent double taxation on Form 1099-B imports.

Footnotes

  1. Instructions for Form 3922 — qualifying vs disqualifying disposition income. irs.gov/instructions/i3922

  2. Instructions for Form 8949 — adjustment code B and checkbox selection. irs.gov/instructions/i8949

Disclaimer

This article is for educational purposes only and discusses legal tax optimization strategies. Tax evasion is illegal and is not discussed or recommended. The information provided does not constitute tax, legal, or financial advice.

Tax laws vary by jurisdiction and change frequently. Always consult a qualified tax professional (CPA, tax attorney, or enrolled agent) before making decisions based on this content. The authors and operators of this website accept no liability for actions taken based on this information.