Language: English

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

ESPP Cost Basis Adjustment: Avoid Double Taxation

How to calculate and report your adjusted cost basis for ESPP sales on Form 1099-B and Schedule D to avoid double taxation. Step-by-step Form 8949 guide paired with the ESPP Basis Adjustment calculator.

16 min read

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

Data point: per-share wage layer omitted on a typical disqualifying ESPP lot equals $17.38. Context: 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:

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 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 inputSource documentWhat it represents
Purchase price per shareForm 3922 Box 5Discounted price you paid through payroll
W-2 ordinary income per shareForm 3922 + W-2 supplementCompensation spread already taxed as wages
Sale price per shareTrade confirmation / 1099-BProceeds per share on disposition
Shares soldSale confirmationLot size for column (e) total
Calculator outputMeaning
Adjusted basis per sharePurchase price + W-2 ordinary income—the column (e) number
Correct capital gainSale price minus adjusted basis
Phantom gain exposureExtra Schedule D gain if you accept broker purchase-only basis
Double-taxation amountDollar 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.

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 (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 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: report adjusted basis on Form 8949 and Schedule D

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: 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 itemPer shareTotal (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 itemPer shareTotal (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 DeluxeNoYes—ESPP interview branchHigh if skipped
H&R Block PremiumNoPartial—basis edit screenHigh if skipped
FreeTaxUSA DeluxeNoManual column (e) entryHigh if skipped
TaxAct PremierNoYes—cost basis adjustmentHigh if skipped
Cash App TaxesNoLimited ESPP-specific guidanceHigh 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

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 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.

— Paraphrase of Instructions for Form 8949, checked 18 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 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

  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.