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
Why ESPP sales trigger double taxation
ESPP shares sit at the intersection of two ledgers that do not reconcile automatically:
| Ledger | What it records | ESPP blind spot |
|---|---|---|
| Payroll / Form W-2 | Ordinary income on the ESPP discount or spread at sale | You stop thinking about it after February |
| Brokerage / Form 1099-B | Sale proceeds + what you paid for shares | Purchase price only—no W-2 wage layer |
| Your Form 8949 | Taxpayer-reported basis reconciled to 1099-B | Must 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.
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.
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 box | Field | Use in basis calculation |
|---|---|---|
| Box 1 | Date of grant (offering date) | Qualifying vs disqualifying holding-period test |
| Box 2 | Date of exercise (purchase date) | Acquisition date; 1-year holding clock |
| Box 3 | FMV on grant date | Qualifying-disposition discount cap |
| Box 4 | FMV on purchase date | Disqualifying ordinary income = Box 4 − purchase price |
| Box 5 | Purchase price per share | Calculator "purchase price" input; 1099-B basis (incomplete) |
| Box 6 | Shares transferred | Lot size for column (e) total |
| Box 8 | Exercise price per share | Cross-check against Box 5 |
| W-2 supplement | ESPP ordinary income total | Divide 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
| Document | What to extract |
|---|---|
| Form 3922 (one per purchase) | FMVs, purchase price, shares, dates |
| Form W-2 + ESPP supplement | Ordinary income per lot (may lag purchase year) |
| Form 1099-B | Proceeds, broker basis, checkbox codes |
| Sale confirmation | Shares 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 item | Per share | Total (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 item | Per share | Total (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 / administrator | 1099-B basis field | Includes W-2 ordinary income? | Calculator override needed? | Typical double-tax risk |
|---|---|---|---|---|
| Fidelity Stock Plan Services | Purchase price only | No | Yes — add W-2 layer | High |
| Charles Schwab Equity Awards | Purchase price only | No | Yes | High |
| E*TRADE from Morgan Stanley | Purchase price only | No | Yes | High |
| Shareworks (Morgan Stanley) | Purchase price only | No | Yes | High |
| Computershare | Purchase price only | No | Yes | High |
{
"@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
| Approach | Advantages | Disadvantages |
|---|---|---|
| ESPP Basis Adjustment calculator + manual Form 8949 | Instant phantom-gain visibility; clear audit trail from Form 3922 | You still type rows into tax software |
| 1099-B import + column (e) override | Faster proceeds entry; software totals Schedule D | Silent double tax if you skip override |
| CPA-prepared return | Expert lot matching; multi-state sourcing | Cost; you still supply 3922 and supplements |
| Wait for broker "fix" | Zero effort | As 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.
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
| Source | Type | URL |
|---|---|---|
| Instructions for Form 8949 (2025) | IRS | irs.gov |
| Instructions for Form 3922 | IRS | irs.gov |
| Publication 525 (2025) | IRS | irs.gov |
| Instructions for Form 1099-B (2025) | IRS | irs.gov |
| IRC Section 423 | Statute | law.cornell.edu |

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
-
Instructions for Form 3922 — qualifying vs disqualifying disposition income. irs.gov/instructions/i3922 ↩
-
Instructions for Form 8949 — adjustment code B and checkbox selection. irs.gov/instructions/i8949 ↩