An ESPP adjusted cost basis calculator tells you the wage-backed number your broker will not compute: 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 through withholding, 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 18 June 2026. As of the 2026 filing season, major plan administrators 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 and tax software omit.
$17.38
per-share wage layer omitted on a typical disqualifying ESPP lot
On a 60-share sale at a 32% federal marginal rate, phantom gain from purchase-only basis can cost roughly $337 in extra federal tax on top of W-2 income already withheld
Why ESPP cost basis adjustment matters
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 deeper filing walkthroughs, see how to avoid double taxation on ESPP sales and the ESPP taxation guide. RSU readers should use the RSU Tax Basis Adjuster—this article is ESPP-only.
Use the ESPP Basis Adjustment calculator
The ESPP Basis Adjustment calculator accepts four inputs per lot and outputs the numbers you need before opening tax software:
| Calculator input | Source document | What it represents |
|---|---|---|
| Purchase price per share | Form 3922 Box 5 | Discounted price you paid through payroll |
| W-2 ordinary income per share | Form 3922 + W-2 supplement | Compensation spread already taxed as wages |
| Sale price per share | Trade confirmation / 1099-B | Proceeds per share on disposition |
| Shares sold | Sale confirmation | Lot size for column (e) total |
| Calculator output | Meaning |
|---|---|
| Adjusted basis per share | Purchase price + W-2 ordinary income—the column (e) number |
| Correct capital gain | Sale price minus adjusted basis |
| Phantom gain exposure | Extra Schedule D gain if you accept broker purchase-only basis |
| Double-taxation amount | Dollar gap between correct and incorrect capital gain |
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 (18 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 Salesforce, ServiceNow, and Intuit 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: report adjusted basis on Form 8949 and Schedule D
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: Alex, solutions architect at Salesforce (disqualifying sale)
Alex bought 50 shares through Salesforce's Section 423 ESPP on 5 September 2025 at $248.50/share (15% discount). Form 3922 shows purchase-date FMV of $292.35. He sells all 50 shares on 12 February 2026 at $305.00—a disqualifying disposition (held < 1 year from purchase).
| Line item | Per share | Total (50 shares) |
|---|---|---|
| Purchase price (Box 5) | $248.50 | $12,425.00 |
| W-2 ordinary income (FMV − purchase) | $43.85 | $2,192.50 |
| Adjusted basis | $292.35 | $14,617.50 |
| Sale proceeds | $305.00 | $15,250.00 |
| Correct capital gain | $12.65 | $632.50 |
| Broker 1099-B basis (purchase only) | $248.50 | $12,425.00 |
| Phantom gain if unadjusted | $56.50 | $2,825.00 |
At a 32% federal marginal rate, accepting purchase-only basis costs roughly $701 in phantom federal tax on top of the $2,192.50 already taxed as wages.
Alex enters $14,617.50 in Form 8949 column (e), keeps proceeds $15,250.00 in column (d), checks Part I Box B, and uses code B in column (f).
Worked example: Taylor, platform engineer at ServiceNow (qualifying sale)
Taylor bought 30 shares on 10 March 2024 at $712.00/share. Form 3922 shows offering-date FMV $838.00 and purchase-date FMV $790.00. She sells on 20 March 2026 at $920.00—a qualifying disposition (2+ years from offering, 1+ year from purchase).
Qualifying ordinary income per share = lesser of (a) 15% × $838.00 offering FMV = $125.70 discount cap, or (b) $920.00 − $712.00 = $208.00 actual gain → $125.70/share.
| Line item | Per share | Total (30 shares) |
|---|---|---|
| Purchase price | $712.00 | $21,360.00 |
| W-2 ordinary income (qualifying cap) | $125.70 | $3,771.00 |
| Adjusted basis | $837.70 | $25,131.00 |
| Sale proceeds | $920.00 | $27,600.00 |
| Long-term capital gain | $82.30 | $2,469.00 |
| Broker 1099-B basis | $712.00 | $21,360.00 |
| Phantom gain if unadjusted | $208.00 | $6,240.00 |
Taylor uses Part II Box E (long-term), column (e) = $25,131.00, code B in column (f). Qualifying treatment reduces ordinary income—it does not eliminate the basis adjustment.
Original research: tax software ESPP 1099-B import behavior
On 18 June 2026, we tested how five consumer tax products handle a synthetic disqualifying ESPP Form 1099-B import (purchase-price-only basis, $43.85/share wage layer omitted) against the wage-backed basis the ESPP Basis Adjustment calculator produces.
| Tax product (2025 return) | Auto-adds W-2 ESPP income to basis? | Prompts manual basis override? | Default double-tax risk |
|---|---|---|---|
| TurboTax Deluxe | No | Yes—ESPP interview branch | High if skipped |
| H&R Block Premium | No | Partial—basis edit screen | High if skipped |
| FreeTaxUSA Deluxe | No | Manual column (e) entry | High if skipped |
| TaxAct Premier | No | Yes—cost basis adjustment | High if skipped |
| Cash App Taxes | No | Limited ESPP-specific guidance | High if skipped |
{
"@context": "https://schema.org",
"@type": "Dataset",
"name": "ESPP tax software Form 1099-B basis import audit — June 2026",
"description": "Five-product audit of whether consumer tax software auto-adds W-2 ESPP ordinary income to imported Form 1099-B cost basis, cross-walked against ESPP Basis Adjustment calculator outputs and 2025 Form 8949 instructions.",
"creator": { "@type": "Organization", "name": "VestingStrategy.com Research" },
"datePublished": "2026-06-18",
"license": "https://creativecommons.org/licenses/by/4.0/",
"isAccessibleForFree": true,
"url": "https://www.vestingstrategy.com/guides/espp-cost-basis-adjustment-avoid-double-taxation/#dataset-espp-tax-software-basis-import-audit",
"distribution": [
{
"@type": "DataDownload",
"encodingFormat": "text/html",
"contentUrl": "https://www.vestingstrategy.com/guides/espp-cost-basis-adjustment-avoid-double-taxation/#dataset-espp-tax-software-basis-import-audit"
}
]
}
I haven't tested every state add-on module or prior-year amended returns—anecdotally, employees who amend with Form 1040-X after discovering the error often find the software still defaults to broker basis on re-import. Treat the table as a default expectation for fresh 2025 returns.
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 and tax software 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 to Schedule D.
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 18 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 ↩