Two calculators, one question: which one gets you closer to a number you can defend when a broker form and your own history disagree. That is the whole comparison here.

Neither product is graded on accuracy, because nobody in these inputs ran the same file through both and published the result.

The choice in one minute

Koinly's documented route is per-wallet.

You upload a received Form 1099-DA inside Tax Reports and reconcile it by wallet or exchange against the transactions and basis Koinly calculated, and Koinly's own support material names fee-related causes for the differences you will see.

That is a good reason to go look at a mismatch. It is not proof the total is right.

CoinLedger's documented route is thinner on that specific job: basic import and reconciliation of the form, plus missing-basis alerts, with the optional paid human services sitting on top of already imported data.

How deep its mismatch view goes at the transaction level is not established by the evidence available for this page.

Stop condition for Koinly: you have accounts with no usable history and the per-wallet comparison has nothing to compare against. Stop condition for CoinLedger: you are buying it for a mismatch drill-down that has not been shown to exist at the depth you need.

Full detail sits in the CoinLedger review and the Koinly review, and you can compare the software options across the category from the hub.

This page is a purchase decision for multi-exchange filers, nothing wider.

How we compared them

We compared four things and nothing else: what the free preview lets you see, what documentation each vendor publishes about receiving and comparing Form 1099-DA, what the entry paid report costs at a stated transaction allowance, and which US forms or destinations the output supports.

Three evidence classes are kept apart in the table below. Official vendor pages, dated where we read them. Model knowledge of how the products work as of 2026, marked by date in the prose.

And performance we have not watched, which stays blank rather than getting filled by inference. There is no documented common-data test behind this page: no shared transaction file was run through both products and published, so no cell claims one product produced a better number.

A reported December 23, 2025 analysis of five tax systems found substantially varying outputs from identical transactions, traced to algorithm design, fee handling and wallet-transfer treatment, and that is a reason to check your own figures rather than evidence about this pair, which was not part of it.

Both programs are measured against the same published criteria: how we compare these programs.

1099-DA and missing-basis workflow

Start with the broker's number, not the software's. Whatever your calculator reports, the reconciliation that matters is broker proceeds against your complete account history, including the accounts that never issued a form. A broker reports what passed through that broker.

Your gain depends on what happened everywhere (current figure at IRS).

Koinly, as of 2026, takes the received form as an upload in Tax Reports and reconciles it by wallet or exchange against its own calculated transactions and basis, and its support material names fee-related causes for the differences readers hit.

Fee handling, fee refunds, the way a transfer between your own accounts is treated: those are the usual suspects, and having them named saves an hour of guessing. It still only tells you where to look.

CoinLedger, as of 2026, offers basic import and reconciliation of the form plus documented missing-basis alerts. The alert is useful; it flags the lot with nothing behind it. Whether you can then open the specific transaction driving a dollar difference against the broker figure is an open question on this evidence, and we are not going to grade it either way.

Criterion CoinLedger evidence / date Koinly evidence / date Your check or the unknown
Form 1099-DA upload Basic import and reconciliation, as of 2026 Upload in Tax Reports, reconcile by wallet or exchange against calculated transactions and basis, as of 2026 Confirm the upload exists for your tax year before you pay
Mismatch explanation and detail limit Missing-basis alerts documented; transaction-level granularity not established Support material names fee-related causes of discrepancy Not tested: no common file was run through both
Paid report boundary $49 per tax report, 100 transactions included (2026-09-26) $49 per tax year, 100 transactions per tax year (2026-09-26) Count your transactions and years, then read the checkout tier
Filing output Form 8949 and Schedule D (2026-09-26) Form 8949, Schedule D, Schedule 1, TurboTax report, TaxAct report (2026-09-26) Check the export your preparer or filing software accepts
Human help boundary Optional paid services on already imported data: Expert Review and Done For You Self-serve; no equivalent paid human data service in scope here Data check is not return preparation

Lot selection is the other place your total moves.

Crypto tax software as of 2026 works from FIFO, LIFO, HIFO or specific identification, and the method setting is yours, not the broker's, so a total that differs from the form may be a setting rather than a missing trade.

The rules behind that choice belong elsewhere: compare lot methods and check what the 1099-DA covers before you argue with a number. If the basis boxes came through empty, check blank basis first.

Will CoinLedger show the transaction behind a 1099-DA difference? Its missing-basis alerts are documented; the transaction-level depth of its mismatch view is not established here. Test it against one known difference in the free preview before you buy.

Why is my Koinly total slightly different from my form? Koinly's support material names fee-related causes, and fees plus fee refunds are the common ones. Your lot method and how a self-transfer was classified are the next two places to look.

Six steps for a 1099-DA discrepancy

  1. Inventory. List every exchange, wallet and chain you used in the tax year, then list which of them sent you a form. The gap between those two lists is usually where the difference lives.
  2. Compare proceeds. Put the broker's reported proceeds next to the software's entries for that same account and that same period. Not your grand total - that account only.
  3. Check upload status per wallet. Confirm each account actually imported, with a date range that covers the whole year. A half-imported account looks like a calculation problem and is not one.
  4. Inspect fees and missing basis. Trading fees, fee refunds and any lot the software flagged with no acquisition record. This is where most small differences resolve.
  5. Inspect duplicate date ranges and bridges. Overlapping CSV uploads create duplicates; a cross-chain bridge may be classified as a non-taxable transfer by one tool and as a disposal plus reacquisition by another, as of 2026.
  6. Keep the leftover open. Whatever still does not tie, retain it as an unresolved item for manual work or licensed help. Do not overwrite it with the software's number because the software is the thing you are checking.

None of those steps promises a particular tax result. They tell you whether you are looking at a record gap or a settings difference.

What each costs in your case

The free tier on both is a preview. You can import, you can watch the totals form, you can see whether your exchanges connect. What you cannot do is download the report you file from.

That download is the purchase, and it is the only thing worth comparing on price.

At the entry level, as checked on 2026-09-26, the numbers read almost identically and mean slightly different things. CoinLedger's US filing plan is $49 per tax report and includes 100 transactions. Koinly's is $49 per tax year and includes 100 transactions per tax year.

The unit is the thing to notice before you assume they are the same purchase.

What will I pay for my number of transactions? More than the entry price, if you are like most multi-exchange filers.

Picture three tax years and roughly 900 trades once the old DeFi year is imported: you are outside the 100-transaction allowance in every one of those years, and you are buying three of something on either product.

We are not going to quote you a figure for that, because the higher tiers do not resolve cleanly in what we can cite. Koinly's paid lineup is described in some places as three tiers and in others as four. CoinLedger's tier grids conflict between sources too.

So the cost step is a checkout step, not a reading step. Count transactions per tax year, count the years, then open both paid-report pages and read the tier that actually covers your count on the day you buy. If the counts sit near a tier boundary, import first and let the software tell you the number - your own estimate of "about 400" has a way of being 640 once a staking account lands.

From software output to the return

Exports are where the two differ on paper. CoinLedger's documented output is Form 8949 and Schedule D, as checked on 2026-09-26. Koinly's documented output is Form 8949, Schedule D, Schedule 1, plus a TurboTax report and a TaxAct report, checked the same day.

A report formatted for a consumer tax program is not the same thing as a confirmed filing partnership, and neither of those is the software filing your return. A vendor-described export means a file that a filing product is expected to accept. Read that distinction carefully if your plan is "export, upload, done."

The mechanics of getting the reconciled figures onto the return are covered in take reconciled figures to Form 8949; short version, the disposals go on Form 8949 and carry to Schedule D.

Before you export anything, four checks:

  • Passively received crypto. Staking rewards, airdrops and similar arrive as ordinary income at the fair value on receipt, which also becomes basis for the later disposal, as of 2026. Lower tiers and upload-only tools handle this incompletely, so confirm both halves appear: the income entry and the basis carried into the sale.
  • Duplicate date ranges. A manual upload overlapping an earlier one produces duplicate or missing records. I have re-imported one month of a CSV, gained a phantom set of trades, and spent a Saturday deleting them one by one. Check the date range before you upload, not after.
  • On-chain categorization. Liquidity-pool deposits and withdrawals, wraps and unwraps, bridges, liquid-staking derivatives, airdrops and yield-farming rewards are where automated classification goes wrong as of 2026. Bridges especially: a transfer to one tool is a disposal and reacquisition to another.
  • Transfer legs. Any movement between your own accounts should net out. If it looks like a sale on one side and nothing on the other, trace wallet transfers before the numbers reach a form.

For basis that simply is not in any record you hold, rebuild missing cost-basis records is the job to do before you buy a report.

Who should consider each, and when to stop

Consider Koinly if your work is self-serve per-wallet form checking: you have a received 1099-DA, you want to line it up against one exchange at a time, and you want the named fee explanations while you do it.

Consider CoinLedger if what you actually want is a paid human looking at data you have already imported. And stop, in either case, when history is missing or a number stays unexplained - buying a report does not close that gap, it prints it.

Separate the two human services before you assume what you are getting. Expert Review is a check of your imported data. Done For You is hands-on work on that data.

The fees quoted for both in our dossier sources are dated and flagged for verification; treat them as background, not as a checkout price, and read the current figure at purchase. Offering software does not make a product an authorized tax-return preparer, as of 2026; a professional-assistance add-on brings a human preparer to a return.

Assuming a paid data check equals full return preparation is a mistake I have watched readers make in their own words, and it costs a filing deadline.

Does CoinLedger's Expert Review file my return? No. It is a review of imported data, not return preparation, and the two services differ from each other as well.

Two purchase scenarios

Card A: form received, wallets disagree, no human service wanted. Count and years: about 240 transactions, one tax year. Required export: Form 8949 and Schedule D.

Evidence to inspect: broker proceeds for the reporting exchange against that exchange's imported entries, fee handling on the trades near the difference, and whether the non-reporting wallets imported in full.

Stop condition: the reporting exchange ties, but a wallet with no history still carries unpriced disposals. Fix the record before you download a report.

Card B: everything imported, reconciliation still fails, a paid check is wanted. Count and years: roughly 900 transactions across three tax years, one DeFi-heavy. Required export: Form 8949 and Schedule D for each year. Evidence to inspect: the bridge legs and liquidity-pool entries, the missing-basis alerts, and every upload whose date range touches another.

Stop condition: the unexplained difference survives all of that, at which point the question is who reviews it, and what exactly that service covers.

Both cards are illustrative. They are not test results, and the counts are not prices.

Questions and next checks

Which one for a three-exchange year with one form

Either, and the tiebreaker is usually the export list.

If a preparer or a consumer program wants a specific file, Koinly's documented set is wider: Form 8949, Schedule D, Schedule 1 and the TurboTax and TaxAct reports as of 2026-09-26, against CoinLedger's Form 8949 and Schedule D.

If nobody downstream cares about file format, decide on the wallet-level comparison you will actually use.

Can I test before paying

Yes, and you should. Import your real accounts in the free preview on both, then take one discrepancy you already know about and see which product lets you get to the transaction behind it. That single test tells you more than any tier grid, and it costs nothing but an evening.

What about the rest of the category

If neither fits, the route away from this pair is other software workflows. Full product detail stays in the CoinLedger review and the Koinly review.

Choose conditionally: Koinly if the job is per-wallet self-serve checking of a received form, CoinLedger if a paid human look at imported data is on the table - and neither until your records are complete.

Before you buy: count your actual transactions per tax year and your number of years, open both paid-report checkouts and read the tier that covers that count today, then test one real discrepancy against your own records.

If the record gap is still open, stop before the purchase.

Sources