IRS Forms

Form 8949 – How to Report Capital Gains & Losses

Practitioner guide to Form 8949 for 2025 returns: short-term vs long-term parts, boxes A through L for 1099-B and 1099-DA, adjustment codes, and Schedule D rollups.

20 min read Published Nov 13, 2025 Updated Jun 1, 2026
Editorial Standards
How we research, review, and update this guide

Every Accountably guide is researched against primary IRS sources, reviewed by a U.S. CPA, and refreshed as guidance evolves. Read our Editorial Guidelines to see how we source, fact-check, and update our content.

Tell us who you are – we will jump to what matters most:

From my side of the desk, the cleanest Form 8949 starts in October, not April. The mess we see in March is almost always a brokerage 1099-B that flagged basis not reported on a covered transaction, an inherited holding that nobody walked through for step-up, or a string of crypto swaps the client forgot were taxable events. None of these are hard problems on their own, they just stack up at the wrong time of year.

This guide walks through what Form 8949 actually asks for, how the 12 boxes line up against Form 1099-B and the new Form 1099-DA, where Schedule D picks up the totals, and the small adjustments that quietly reshape a return. The goal is fewer surprises in review, and a return that holds up if a notice ever lands.

Key Takeaways

  • Form 8949 lists each reportable capital transaction with description, dates, proceeds, basis, and any adjustments, then carries subtotals to Schedule D for netting.
  • Use Part I for short term, one year or less, and Part II for long term, more than one year. Mark boxes A, B, C, G, H, or I (Part I) or D, E, F, J, K, or L (Part II) to match the broker’s basis reporting status, the statement type (1099‑B vs 1099‑DA), and whether adjustments apply.
  • If basis is reported and there are no adjustments, you may be able to summarize directly on Schedule D under the exception rules. Otherwise, keep detail on Form 8949 or attach a statement in 8949 format.
  • The annual net capital loss deduction limit remains 3,000 for most individuals, 1,500 if married filing separately, with unlimited carryforward of any excess.
  • Digital asset reporting is phasing in. Brokers report gross proceeds on new Form 1099‑DA for 2025 transactions, with basis reporting on some 2026 sales, and the IRS issued 2025 transition relief for brokers. You still must report your gains and losses on Form 8949.

What Is IRS Form 8949

Form 8949 is your per‑transaction ledger for capital assets, from stocks and ETFs to crypto, collectibles, and some real estate sales. It reconciles what appears on Forms 1099‑B or 1099‑S with what you put on your return, then feeds those category totals into Schedule D, where your overall capital gain or loss is computed. In short, 8949 is for detail, Schedule D is for the net.

You split every sale by holding period and by basis reporting status. Short‑term items live in Part I, long‑term items in Part II. Boxes A, B, C indicate short‑term status and whether basis was reported, while D, E, F mirror that for long‑term. For 2025, dedicated boxes G, H, I (short term) and J, K, L (long term) handle digital asset transactions reported on Form 1099‑DA, so crypto and NFT sales do not get lumped into A through F. Choose the box before you enter a line, it signals to the IRS how the sale was reported by the broker. Only one box may be checked per page; if your sales span multiple box categories, complete a separate Form 8949 page for each box.

Why Firms Especially Care

If you run a CPA or EA firm, the constraint is rarely demand, it is delivery. Form 8949 is where teams lose time when trades land in the wrong box, wash sales are missed across accounts, or attachments do not mirror 8949 columns. Review loops expand and deadlines wobble. The fix is not heroics, it is structure, consistent naming, and a simple checklist that everyone follows. If you build that discipline into your workflow, 8949 stops being the ceiling on growth and becomes another predictable step that protects reviewer time and client trust.

When You Must File Form 8949

You file Form 8949 when a sale or exchange of a capital asset needs per‑item detail. If basis was reported to the IRS and there are no adjustments, you can often skip line‑by‑line entry and place totals directly on Schedule D under the exception rules. If basis was not reported or you need to adjust basis or gain, keep those items on Form 8949 or on an attached statement that mirrors 8949 columns.

Decision Table

Situation Use 8949? Notes
Basis reported, no adjustments Often no per‑item, totals to Schedule D Follow the exception described in the 8949 instructions
Basis reported, with adjustments Yes Put codes and amounts in columns (f) and (g)
Basis not reported Yes Provide basis and support
No 1099‑B received Yes Report proceeds and basis with documentation
Wash sale or corrected basis Yes Use code W or T with the dollar amount
Summaries allowed Always carry to Schedule D Keep short term and long term separate

Attached statements must follow the same columns and format as Form 8949. A simplified list is not enough for e‑file or paper.

Short‑Term Vs Long‑Term, Plus Boxes A Through F

Start with the holding period, counted from the day after you acquired the asset. One year or less is short term, Part I. More than one year is long term, Part II. A sale on the one-year anniversary is still short term because long term requires at least one year and one day. Inside each part, choose the correct box to reflect whether basis was reported to the IRS and whether an adjustment applies. This split controls whether you can summarize on Schedule D or must include itemized detail.

Box Mapping At A Glance

Holding period Box Basis reported to IRS Typical action
Short‑term A Yes, no adjustments May summarize on Schedule D line 1a if you meet exception rules
Short‑term B No Detail on 8949 or 8949‑format statement, then total on Schedule D
Short‑term C No 1099‑B Non‑digital‑asset only; report on 8949 or 8949‑format statement (digital assets use Box I)
Long‑term D Yes, no adjustments May summarize on Schedule D line 8a if you meet exception rules
Long‑term E No Report on 8949 or 8949‑format statement
Long‑term F No 1099‑B Non‑digital‑asset only; report on 8949 or 8949‑format statement (digital assets use Box L)

Why This Mapping Matters

The box choices tell the IRS exactly how your broker handled basis, which is why wrong boxes trigger notices. If you attach statements instead of typing every line, they must look like 8949, with the same columns, codes, and totals by category, so Schedule D can pick them up without confusion.

How Form 8949 Connects To Schedule D

Form 8949 is where you capture transaction‑level detail and adjustments. Schedule D nets short‑term and long‑term categories, applies carryovers, and determines your taxable result. The IRS product page lays out this connection, and the Schedule D page links back to 8949 so you can confirm the flow in either direction.

  • On 8949, separate trades into Part I and Part II, then group by boxes A through C or D through F for 1099‑B items, and by boxes G through I or J through L for 1099‑DA digital assets.
  • Total proceeds, basis, and adjustments for each box category.
  • Transfer those subtotals to the matching lines on Schedule D.
  • Schedule D nets short‑term and long‑term results and applies prior‑year carryovers and the annual loss limit.

The Prep List That Prevents Rework

Gather these up front and you will save hours in review.

  • All Forms 1099‑B and any supplemental statements that show covered status, wash sale amounts, and fees.
  • Acquisition and sale dates for each lot, not just the position.
  • Cost basis per lot, including commissions and fees, plus notes for splits, mergers, return of capital, and DRIP reinvestments.
  • Required adjustment codes and amounts, for example W for wash sale, T for corrected basis, Z for qualified opportunity fund deferrals.
  • Proof for sales without a 1099‑B, such as private transactions or some digital asset disposals.

Step‑By‑Step, Part I Short‑Term

  • Confirm a one‑year‑or‑less holding period, then check box A, B, C, G, H, or I at the top of Part I (G, H, I are the 1099‑DA digital‑asset boxes).
  • For each sale, enter description, date acquired, date sold, proceeds in column (d), and cost or other basis in column (e).
  • If an adjustment applies, enter the code in column (f), for example W for wash sale or T for corrected basis, and enter the amount in column (g).
  • Compute column (h) as proceeds minus basis, plus or minus the adjustment.
  • Total columns (d), (e), (g), and (h) for the box category (subtract negative amounts), and carry the subtotal to the matching Schedule D line.

Step‑By‑Step, Part II Long‑Term

  • Confirm a more‑than‑one‑year holding period, then check box D, E, F, J, K, or L at the top of Part II (J, K, L are the 1099‑DA digital‑asset boxes).
  • Enter description, dates, proceeds, and basis in the same columns as Part I.
  • Apply codes in column (f) with dollar amounts in column (g) when needed.
  • Total proceeds, basis, and adjustments, compute the long‑term result in column (h), and move the subtotal to the correct Schedule D line. Keep proof of dates, basis, and adjustments with the file.

Adjustment Codes That Actually Matter In Reviews

The most common cases are wash sales and basis corrections. The IRS explains how to show a wash sale on Form 8949, including code W and entering the disallowed loss as a positive number in column (g). If a broker reported basis but it is wrong, leave the broker‑reported basis in column (e) as filed and use code T in column (f) with the net adjustment in column (g). Overwriting column (e) creates a mismatch against the 1099 the broker sent the IRS. If basis was not reported at all, place the sale in box B or E for 1099‑B items (or box H or K for 1099‑DA digital assets) and provide your support in column (e).

Wash Sale, What To Do And What To Watch

A wash sale happens when you sell at a loss and buy the same or substantially identical security within 30 days before or after the sale. On Form 8949 you enter code W in column (f) and the disallowed loss as a positive number in column (g). Increase the replacement shares’ basis separately so the loss is preserved for a later sale. Check all accounts, including IRAs, and consider option activity where relevant.

Team tip, pull the broker’s wash sale report, then verify across accounts. Brokers often track within one account and one CUSIP, you are responsible for the bigger picture.

Reporting Cryptocurrency And Digital Assets On Form 8949

Digital assets are property for tax purposes, so every sale, trade, or spend is a taxable disposition that belongs on Form 8949 and then on Schedule D. Beginning with transactions on or after January 1, 2025, brokers must report gross proceeds on Form 1099‑DA, and basis reporting is phased in for some 2026 transactions. The IRS also announced transition relief for 2025 that applies to brokers. None of this removes your duty to compute and report accurate gains and losses on your return.

What this means in practice this year.

  • If your platform issues a 1099‑DA, map each lot to the correct 8949 category by holding period and by whether basis was reported.
  • Many 2025 digital asset sales may appear with proceeds only. For digital assets the 2025 form uses the dedicated 1099‑DA boxes: H or K when a 1099‑DA was issued with basis not reported, and I or L when no 1099‑DA or 1099‑B was issued at all. Boxes B and E apply to non‑digital‑asset 1099‑B items, not crypto. Details still belong on 8949 or on an attached 8949‑format statement.
  • When you spend crypto on goods or services, treat the fair market value on the spend date as proceeds, then compute gain or loss versus basis for that lot.

Using Broker 1099‑B Data, The Right Way

Start by mapping every 1099‑B line to the right 8949 box and holding period. When basis was reported and there are no adjustments, short‑term lines usually go to Part I box A and long‑term lines to Part II box D. If basis was not reported, use B or E and provide basis in column (e). For wash sales or other changes, add the proper code in column (f) and the amount in column (g). If every item in A or D has no adjustments, you may summarize on Schedule D under the exception rules.

Importing, Attaching Summaries, And E‑Filing Tips

Most tax software lets you import 1099‑B data or upload a CSV that builds 8949 rows. If you qualify for the covered, no‑adjustment exception, place totals on Schedule D lines 1a or 8a. If you use attached statements instead of listing each sale on the electronic return, your statements must mirror the 8949 columns. If your software cannot attach the PDF, mail Form 8453 with the statements as the IRS instructs.

The IRS allows attached statements in 8949 format. The details must be included, not “available upon request.”

My Review Sequence

  • Import first, then scan for symbol issues, date gaps, proceeds, basis, and holding period tags.
  • Enter required adjustment codes and amounts.
  • Confirm fees are handled correctly, either in basis or as separate entries per your software.
  • Generate the full PDF, verify category totals against the broker summary, attach statements if needed, and transmit.
  • Save the package with a version label so future you, or a reviewer, can trace what changed and why.

Recordkeeping, Loss Carryovers, And The 3,000 Rule

Good records make clean returns and fast reviews. Keep confirmations, 1099‑B or 1099‑DA statements, basis worksheets, and any wash sale notes for at least three years after filing, longer if you might amend. On Form 8949, record adjustments with codes so Schedule D nets correctly. Track carryovers with a small worksheet that shows the year, the amount you used under the 3,000 limit, and the balance you will use next year. The Schedule D instructions confirm the 3,000 limit, 1,500 if married filing separately, with unlimited carryforward of the excess.

Simple Loss Carryover Tracker

Year Short‑term carry Long‑term carry Used this year Balance forward
2023 1,200 9,600 3,000 7,800
2024 0 7,800 3,000 4,800
2025 0 4,800 3,000 1,800

Drop a table like this into your workpapers. It saves time and prevents mistakes when you prep next year.

Examples You Can Reuse

  • Short‑term loss with wash sale. You sell 100 shares at a loss and repurchase substantially identical stock two days later. On 8949, enter code W and the disallowed loss as a positive amount in column (g), then increase the replacement shares’ basis.
  • Long‑term covered sale with no changes. Basis is reported and no adjustments apply. Choose box D. If all such sales fit, summarize on Schedule D line 8a under the exception rules.
  • Crypto sale in 2025 with proceeds only. Place in box H or K if a 1099‑DA was issued without basis, or box I or L if no 1099‑DA or 1099‑B was issued; boxes B and E are for non‑digital‑asset 1099‑B items. Compute basis including fees, and report the detail on 8949 or an attached 8949‑format statement. Watch for 1099‑DA as platforms roll out reporting.

Quality Control For Firms, Built Around 8949

Make Form 8949 a standard process, not a fire drill.

  • One SOP for all 8949 prep, with a checklist that includes box choice, dates, wash sales across accounts, and basis corrections.
  • Structured workpapers, consistent names, and version control.
  • Multi‑layer review where preparers own math, seniors own exceptions, and reviewers focus on totals and attachments.
  • Turnaround SLAs by category, with a simple escalation path for issues that might affect deadlines.

If you tap offshore help, treat it as operations. Have teams work inside your systems and templates, keep continuity plans, and log every 8949 adjustment in one place. Capacity without structure creates rework. Structured capacity shortens review time and protects quality. Accountably, as a U.S.‑led offshore partner, supports firms that want disciplined offshore delivery for U.S. 8949 and Schedule D work, without losing control of workflow or quality. Mentioned here only because teams often ask how to scale production while keeping reviewers out of cleanup.

Final Checklist For A Clean Form 8949

  • Sort by holding period first, then by basis status, boxes A to C or D to F.
  • Enter description, dates, proceeds, basis, and required codes with amounts.
  • Apply wash sale code W and show the disallowed loss as a positive number, then adjust replacement basis.
  • Correct wrong basis with code T and show the net change, keep support with the file.
  • Total each box category on 8949, then transfer those subtotals to the matching lines on Schedule D.
  • Track your capital loss carryover and the 3,000 limit so you do not miss future benefits.
  • For digital assets, watch for 1099‑DA, confirm whether basis is reported, and keep detailed records for 2025 transactions.

Compliance Note

This guide is general education, not tax advice. Rules evolve, and your facts matter. For the tax year you are filing, confirm the latest IRS instructions for Form 8949 and Schedule D, and keep documents that support proceeds, basis, holding periods, and adjustments. As of Monday, November 10, 2025, the IRS pages cited above are the most recent versions we reviewed.

Capacity helps, structure wins. Build the checklist once, reuse it every year, and keep your team focused on client strategy instead of 8949 cleanup.

Common Mistakes We See Every Season

The same handful of issues drive most of the cleanup we do on Form 8949 every season. None are exotic, they just compound when nobody owns the box-by-box review.

1. Treating a 365-day hold as long-term. Long-term on Part II requires holding for more than one year, which means one year and at least one day. An exactly-one-year sale belongs on Part I as short-term. We see this on covered-call exits and inherited-stock sales misclassified by software defaults. Fix: Calculate the holding period from the day after acquisition through the disposal date, per the 2025 Instructions for Form 8949. Document the calculation in the workpaper, not just the column entry.
2. Overwriting a wrong broker basis in column (e). If Box A, D, G, or J was checked (the basis-reported boxes) and the broker-reported basis is incorrect, retyping the correct number into column (e) creates an IRS matching mismatch against the 1099-B or 1099-DA. The IRS expects column (e) to show what the broker reported. Fix: Enter the broker-reported basis in column (e), then enter the correction in column (g) with the matching adjustment code (often code B) in column (f). The IRS reconciles to the broker's number and applies your adjustment cleanly.
3. Mixing different box types on one page. Each Form 8949 page can have exactly one box checked. Stocks with basis reported (Box A) cannot share a page with stocks where basis was not reported (Box B), and 1099-B transactions cannot share a page with 1099-DA digital-asset transactions, per the 2025 Instructions for Form 8949. Fix: File a separate page for each box code that applies. Multiple pages with the same box checked are fine when one category overflows.
4. Defaulting crypto into Box C or Box F. For 2025, unreported digital-asset transactions go in Box I (short-term) or Box L (long-term). Boxes C and F are reserved for non-digital-asset transactions not reported on Form 1099-B or 1099-DA. Routing wallet-to-wallet trade history to Box C is a common software default that creates a mismatch with the new digital-asset reporting regime. Fix: Route every unreported digital-asset disposition to Box I or Box L. If the client received a Form 1099-DA, use Box G/H (short-term) or Box J/K (long-term) instead, and never combine 1099-B and 1099-DA transactions under one box.
5. Entering a column (g) adjustment without a code in column (f). Every adjustment amount must be paired with the alphabetic code that identifies what the adjustment is (wash sale, basis correction, accrued market discount, and so on). A dollar amount with no code is a flag in IRS systematic review. Fix: Keep a small reference card of the adjustment codes from the 2025 Instructions for Form 8949 at the preparer's desk and require column (f) to be populated whenever column (g) is non-zero. Build the check into the preparer workpaper, not just the reviewer's eye.
6. Itemizing transactions on Form 8949 when Schedule D aggregation is allowed. Clean basis-reported transactions with no adjustments can be totaled directly on Schedule D line 1a or 8a, skipping Form 8949 entirely. Itemizing them adds preparer hours and review surface area with no compliance benefit. Fix: Sort the 1099-B file into two stacks: covered transactions with no adjustments (aggregate on Schedule D) and everything else (itemize on Form 8949). Document the aggregation source in the workpaper.

Reusable Checklists

Copy these into your firm SOP and let the preparer tick them off before the file moves to review. Each list is built around a specific Form 8949 workflow we run every season.

Pre-file Form 8949 packet

  • Pull every Form 1099-B and Form 1099-DA, including substitute statements from each broker portal.
  • Confirm basis-reported status (covered vs non-covered) for each transaction.
  • Sort transactions by box code (A through L) before any data entry.
  • Flag wash sale codes, accrued market discount, and basis corrections coming from the broker.
  • Reconcile total proceeds across all statements against the year-end account summary.
  • Confirm holding-period classification (one year or less vs more than one year) on edge-date sales.
  • Document the source for any transaction missing a 1099 (Box C, F, I, or L).

Basis and adjustment review

  • For every column (g) entry, confirm column (f) has the matching adjustment code.
  • For inherited or gifted holdings, attach the step-up or carryover basis workpaper.
  • For wash sales, confirm the disallowed loss is added to the basis of the replacement lot.
  • For covered transactions where the broker basis was wrong, verify column (e) shows the reported basis and column (g) carries the correction.
  • Cross-check column (h) gain or loss math (proceeds minus basis, combined with the adjustment).
  • Verify the Totals line subtracts negatives instead of summing absolute values.

Schedule D handoff

  • Confirm every Form 8949 page has exactly one box checked.
  • Map each page's totals to the correct Schedule D line (1b, 2, 3, 8b, 9, or 10).
  • Confirm clean basis-reported transactions with no adjustments are summarized on Schedule D line 1a or 8a, not duplicated on Form 8949.
  • Reconcile Schedule D net capital gain or loss against any prior-year carryover.
  • If a net capital loss exceeds the annual deduction limit, confirm the unused loss is carried to the following year.
  • If e-filing without line-by-line detail in the return, prepare the Form 8453 attachment with 8949-format statements.

Keep 8949 Season From Stalling

Form 8949 work compresses into two windows: a January-to-March crunch as Form 1099-B and Form 1099-DA statements land, and a September pre-extension review when carryovers and crypto cost-basis questions surface late. For 2025 the form expanded to 12 box codes (six per Part I and Part II, including the new G through L for digital-asset reporting on Form 1099-DA), per the 2025 Instructions for Form 8949. That extra box logic adds review minutes to every capital-asset return, and the volume hits teams that are already short on reviewer bandwidth.

The fix is not more preparer hours, it is removing the rework that turns 8949 from a 20-minute file into a 90-minute file. Most rework starts upstream of review, in basis classification, box selection, and adjustment-code discipline. Standardize those three and the file moves cleanly.

  • Pre-classify every broker statement by box code (A through L) before any data is keyed, so the Part I and Part II splits and the 1099-B versus 1099-DA splits are decided once.
  • Require column (f) and column (g) to be populated together; treat a naked column (g) entry as a blocking exception in the preparer workpaper.
  • Route clean basis-reported transactions with no adjustments straight to Schedule D line 1a or 8a, instead of itemizing on Form 8949 when aggregation is permitted.
  • Set a standing rule for digital assets: unreported dispositions go to Box I or Box L, 1099-DA dispositions go to G/H or J/K, and 1099-B and 1099-DA transactions never share a page.
  • Build a Totals-line check that confirms negative amounts were subtracted, not summed as absolute values, before the file leaves the preparer.

This is the kind of structural fix that compounds across hundreds of capital-asset returns: shorter reviews, fewer notices, and less senior time spent on transaction-level cleanup. Accountably's tax delivery teams run this discipline inside the same software the firm already uses, so the workflow tightens without rebuilding the tech stack.

FAQs

What is the purpose of Form 8949

It reconciles each capital transaction, applies basis and wash sale adjustments using codes and amounts, separates short term and long term, and then pushes subtotals to Schedule D for netting.

What should I include with Form 8949

List description, acquisition and sale dates, proceeds, cost or other basis, and any adjustments with codes and dollar amounts. If you attach statements instead of listing each sale, those statements must mirror 8949 columns, not a simplified list.

Should I use Schedule D or Form 8949

Both. Form 8949 holds transaction‑level detail and adjustments. Schedule D nets categories, applies carryovers, and determines your taxable result. When all covered transactions have no adjustments, you may summarize on Schedule D under the exception rules.

How are crypto sales handled

Digital assets are property. Report each sale, trade, or spend on Form 8949. Brokers begin phasing in Form 1099‑DA for transactions in 2025, with basis reporting phased for some 2026 transactions, and the IRS granted 2025 transition relief for brokers. You still compute and report gains and losses accurately.

When do I need to mail Form 8453

If you e‑file and do not include line‑by‑line details electronically, attach a PDF of your 8949 or your 8949‑format statements. If your software cannot attach the PDF, mail Form 8453 with the statements as the IRS instructs.

Every Form Represents Work Your Team Has to Deliver

Accountably embeds trained offshore teams into your workflow – so more returns get handled without more burnout.

30-Day Guarantee 70+ Clients Served SOC 2 Aligned