Three documents, three jobs: Form 1099-DA reports what a broker saw, Form 8949 lists each disposal you report, and Schedule D collects the category subtotals for your 1040.

Almost every problem readers bring to CoinReckon lives in the gap between the first document and the second.

What follows is one mixed short-term and long-term case carried from source records to Schedule D lines, with the arithmetic shown.

For the wider series, see the full 1099-DA filing guide.

Start with the return year and the mismatch

The return year decides the letters.

For tax year 2025 filed in 2026, the IRS Instructions for Form 8949 (2025) and the 2025 Instructions for Schedule D (Form 1040) govern the whole sequence: report each capital-asset sale or exchange under the applicable digital-asset box, then carry the category totals to Schedule D, where the capital-loss rules take over.

Every sale for dollars is a disposal. A swap into another token is one as well, and so is spending crypto at a merchant. Whether you tick the box on page 1 of Form 1040 is a separate decision: answer the Form 1040 digital asset question.

Two rules shape everything downstream.

Brokers were permitted to report basis on Form 1099-DA for 2025 but were not required to, so a blank basis box is not by itself an error, and you fill the figure from your own books and records (Form 1040 instructions, Digital Assets).

And a taxable disposal with no broker form behind it stays reportable from your records (Publication 544).

So name the mismatch before you pick any category letter. Four of them behave differently.

What differs from your own records?

Discrepancy Supporting record First action Form handling
Basis box is blank Acquisition record: purchase confirmation, transfer-in receipt Total the acquisition cost for the exact units disposed Enter your correct basis in column (e). Absence alone carries no correction code
Basis shown is wrong Acquisition record placed next to the broker's basis figure Decide whether that basis went to the IRS or only to you Code B branch (see below): the treatment splits on that answer
Proceeds are wrong Disposal confirmation, order fill, settlement record Ask the exchange for a corrected Form 1099-DA and keep the correspondence File your supported amounts with an explanatory statement, whether or not the correction lands in time
Transaction missing from a statement Both the disposal and the acquisition record Search your other exports before concluding no statement covers it Report it once, under the category that matches the statement condition that actually applies

A line missing from one platform's statement tells you nothing about the other platforms. Check them first.

Follow one mixed-category reconciliation from records to totals

Below is a fictional 2025 case built to exercise the mechanics above: two short-term disposals with no broker basis, one long-term disposal where the broker reported a basis that disagrees with the acquisition record.

The dollar amounts are teaching inputs, arbitrary by design, not market quotations and not anyone's filed return.

ID Asset and units Acquired Disposed Broker proceeds (d) Broker basis Acquisition record Box Basis entered (e) Code (f) Adjustment (g) Gain or loss (h)
A 0.02 BTC Feb 10, 2025 Oct 20, 2025 $1,500 none shown $1,000 H $1,000 $0 $500
B 0.03 BTC Mar 5, 2025 Nov 5, 2025 $2,000 none shown $2,200 H $2,200 $0 -$200
C 1 ETH Jun 1, 2023 Sep 1, 2025 $3,000 $800 reported to IRS $1,000 J $800 B -$200 $2,000
H subtotal $3,500 $3,200 H $3,200 $0 $300 → Schedule D line 2
J subtotal $3,000 J $800 B -$200 $2,000 → Schedule D line 8b

Rows A and B are on separate Form 8949 pages from row C, because Part I and Part II never share a page, and each page carries one checked box. Row C is a hypothetical reported-basis situation: 2025 basis reporting was optional, so a filer may well see nothing in that box for a long-term sale either.

We checked this worksheet's arithmetic both ways, and that double check is the point of the exercise. Economically, $6,500 of proceeds less $4,200 of supported basis is a $2,300 gain. On the form, $6,500 of proceeds less $4,000 of entered basis plus an adjustment of -$200 is also $2,300.

When those two numbers disagree, the entered basis or the adjustment sign is where to look.

Two errors we see repeatedly in reader worksheets, both illustrative rather than drawn from anyone's file. First, reporting row A as a $1,500 gain because that is the figure the broker sent, when the acquisition record supports $1,000 of basis and a $500 gain. Second, loading row A twice: once from the exchange's statement and once from a wallet export of the same movement.

The record ID column exists for that reason (bookkeepers keep invoice numbers for exactly the same reason, and the habit transfers cleanly). One economic disposal, one line, whichever file it surfaced in.

Choose the 2025 digital-asset category

Six letters cover digital assets for tax year 2025.

Part I holds G for a short-term disposal where basis was reported to the IRS, H where a statement arrived but the basis did not go to the IRS, and I where no Form 1099-DA, 1099-B or substitute statement exists.

Part II mirrors that: J, K and L. A/B/C and D/E/F belong to other asset types, and the instructions say plainly not to use C or F for digital assets. Third-party guidance still routing crypto through A/B/C is describing an earlier year.

Holding period Information return and basis to the IRS Form 8949 box Schedule D line
One year or less Statement received, basis reported to the IRS G (Part I) 1b
One year or less Statement received, basis not reported to the IRS H (Part I) 2
One year or less No Form 1099-DA, 1099-B or substitute statement I (Part I) 3
More than one year Statement received, basis reported to the IRS J (Part II) 8b
More than one year Statement received, basis not reported to the IRS K (Part II) 9
More than one year No Form 1099-DA, 1099-B or substitute statement L (Part II) 10

The holding-period boundary is one year or less for short term and more than one year for long term, counted from the day after acquisition through the day of disposal. Row C above ran from June 1, 2023 to September 1, 2025, so Part II.

Per-transaction picker. Run it on one disposal at a time.

  1. Did any broker send a Form 1099-DA, 1099-B or substitute statement covering this disposal? No, and none exists after you have checked every platform: I if short term, L if long term. Stop here. Yes: continue.
  2. Does that statement report a basis figure to the IRS, or does it merely show you one? Reported to the IRS: G or J. Shown to you only, or the box is blank: H or K. The distinction is the box the broker checked, not whether a number appears somewhere on your copy.
  3. Which side of the one-year line does the holding period fall on? That picks Part I or Part II, and with step 2 you now have one letter.

Group your disposals by term and by reporting category, not by platform. Four exchanges can feed a single H page, and one exchange can feed three different letters. Keep the platform name and record ID in column (a) anyway so any line traces back to its export.

Enter supported basis and apply the right adjustment

Column (a) wants the asset name or its symbol with the exact number of units, plus the transaction ID where you have one. "0.02 BTC" beats "Bitcoin sale." Column (e) is the basis you are entering on the form, column (f) holds a correction code where one applies, and column (g) holds the dollar adjustment that goes with it.

Code B is for an incorrect basis figure shown on Form 1099-B or 1099-DA, and it applies regardless of holding period. Its mechanics split on one question.

Where the broker reported that basis to the IRS (boxes G and J), leave the reported figure in column (e) and move the correction through column (g), working it out on the Worksheet for Basis Adjustments.

Where the basis was not reported to the IRS (boxes H and K), put your correct basis straight into column (e) and leave column (g) at zero unless some other adjustment applies.

That is why row C shows $800 in column (e), code B, and -$200 in column (g): the reported basis was understated by $200 against the acquisition record, so the adjustment reduces the gain from $2,200 to $2,000.

A basis correction that lowers gain carries a negative sign in column (g).

An absent basis is not a code-B situation.

With nothing in the broker's basis box, you report your own supported basis directly, and no corrected Form 1099-DA is needed for absence alone (CoinLedger's practical commentary on common 1099-DA mistakes, commercial guidance that sits under the IRS form mechanics).

Rows A and B take that route.

Code E is a different animal: selling expenses, option premiums or digital-asset transaction costs left out of the reported figures. It is not the long-term version of code B.

Wrong proceeds get handled outside column (g).

The same commentary sets out the workable sequence: contact the exchange, ask for a corrected Form 1099-DA, document the attempt, then file your accurate supported figures with an explanatory statement whether or not the correction arrives before you file.

Match every disposal once across exchanges and wallets

The IRS instructions carry two digital-asset examples worth reading side by side. In Example 5, crypto traded after three years with $1,000 of basis and $3,000 of fair market value produces a $2,000 long-term gain, which is the shape of a swap.

In Example 6, crypto received for services at $10,000 is self-employment income at receipt and takes that $10,000 as basis; sold two months later for $12,000, it produces a $2,000 short-term gain. Neither one is the worksheet above.

Trace each disposal once

  1. Fix the year and the document type for every file you hold: broker statement, exchange export, wallet history.
  2. Collect date acquired, date disposed, units, proceeds and acquisition evidence for each line.
  3. Carry the source record ID into your worksheet and match IDs across exports.
  4. Separate a duplicate (same disposal, two files) from a genuinely missing line (no file has it).
  5. Run each line through the four discrepancy branches.
  6. Assign the category letter with the picker.
  7. Subtotal by letter, then test form arithmetic against the economic gain.
  8. Save the reconciliation, and route what it did not resolve.

Step 8 matters most when the acquisition trail runs out: reconstruct missing acquisition records before you enter a basis you cannot support. If the matching itself is the bottleneck because the transaction count is high, compare documented Form 8949 export workflows and pick one whose output you can audit line by line.

Carry category subtotals into Schedule D

The H subtotal moves as one figure: $3,500 of proceeds, $3,200 of basis, no adjustments, $300 of gain, onto Schedule D line 2. The J subtotal moves to line 8b: $3,000 of proceeds, $800 of reported basis, a -$200 adjustment, $2,000 of gain.

With no other items on this hypothetical Schedule D, short-term net gain is $300 and long-term net gain is $2,000, and the two stay in separate columns until the netting lines further down. Real returns usually have other entries, so treat this as the trace, not a return calculator.

Other letters land elsewhere, and the category table above shows each destination: G to line 1b, I to line 3, K to line 9, L to line 10.

Exception 1 lets some disposals go straight onto Schedule D line 1a or 8a with no Form 8949 line at all, but only when every condition holds: basis was reported to the IRS for those sales, no adjustment is needed at all (no code and no entry in 1f/1g or 1h/1i), the Ordinary and QOF boxes are unchecked, and no QOF deferral election or termination is in play.

Boxes H and K are outside it by definition, because the IRS did not receive the basis. Row C is out too, since it needs code B.

Apply the net capital-loss limit and preserve the carryover

The cap applies after netting, not to individual losing trades.

Once short-term and long-term results are netted on Schedule D, the deduction against ordinary income is the lesser of $3,000, or $1,500 if you file married filing separately, or the total net loss on line 16 (current figure at the IRS).

It is one cap per return, not one per exchange or per asset.

Whatever the limit leaves unused carries forward, and the Schedule D Capital Loss Carryover Worksheet is what splits it: it determines how much short-term and how much long-term loss moves from 2025 into 2026.

The character has to survive the trip, because next year's netting depends on it. The example above nets to a gain rather than a loss, so nothing carries. Rates on that gain are a separate step: find the rate that applies to a crypto gain.

Resolve the remaining mismatch before choosing your next step

Run the completion check on each line before you file. Does it have a source record you could hand over, a category letter, arithmetic that ties both ways, and a subtotal destination on Schedule D? Any line failing one of those four is unfinished.

If the mismatch you are chasing sits on an IRS notice, keep both the notice figures and your supported figures intact and unedited while you work through it: check and respond to a crypto CP2000.

If the gap is a disposal left off a return you already filed, review the next step for an omitted crypto transaction.

Once each disposal and subtotal ties to your records, find the rate that applies to a crypto gain and check filing and estimated-payment dates.

Sources

  • IRS, Instructions for Form 8949 (2025): digital-asset categories, Exception 1, columns (a), (e), (f), (g), Line 2, Examples 5 and 6. irs.gov/instructions/i8949. Tax year 2025; page facts as of September 26, 2026.
  • IRS, Instructions for Schedule D (Form 1040) (2025): category subtotal lines, Capital Loss Carryover Worksheet. irs.gov/instructions/i1040sd. Tax year 2025; as of September 26, 2026.
  • IRS, Topic 409, Capital Gains and Losses: deduction limit and carryover. irs.gov/taxtopics/tc409. As of September 26, 2026, 2025 scope.
  • IRS, Publication 550 (2025): Holding Period, Capital Losses. irs.gov/publications/p550. As of 2025.
  • IRS, Publication 544 (2025): digital assets, Long and Short Term, reporting. irs.gov/publications/p544. As of 2025.
  • CoinLedger, Common Form 1099-DA Mistakes: missing basis versus incorrect proceeds. coinledger.io/blog/common-form-1099-da-mistakes. As of 2025-2026; commercial practical commentary, subordinate to the IRS form mechanics above.