Published verdictRanking snapshot 3 November 2026
Same published score — 78 each
CoinLedger and Divly tie on score at 78; the published tie-break orders them. CoinLedger is ahead on complex transactions and record portability.
Why, term by termCoinLedger leads on 2 of 4 published criteria; Divly on 1. The terms sum to the gap.
TermCoinLedgerDivlyWeightPoints
Your tax form8/109/107.7−2.0for Divly−1.0 of 32
Complex transactions8/107/105.3+1.4for CoinLedger+0.7 of 32
Record portability7/106/104.8+1.2for CoinLedger+0.6 of 32
Net of the terms+0.6
Criteria roundingThe criteria block is rounded to whole points before it is spread−0.1
Reproduced gap+0.5
Published gapAfter score rounding and bounds — see the note below78780.0
Weight is in points of the 86-point weighted total. Points are score points of the gap between the two.
DivlyScore 78The European filing specialist: one served table naming K4/SRU, Anlage SO, SA108, 2086, PIT-38 and Modelo D-100 across fourteen jurisdictions, a Skatteverket-native SRU upload, a per-disposal 'applied_rule_for_disposal' column proving s.104 same-day/30-day matching ran, and an in-app tax-year selector that defaults to 2025 as the CURRENT year - undercut by a EUR 39 headline that buys only 100 transactions, a delivered ledger that never states the acquisition date of the lot it matched, no closing-position output in any jurisdiction, and a 2021 Terms document that never mentions the 'lifetime access ... forever' its help centre promises.Strength: Named form output — 9/10Watch-out: Four one-way doors, none of them on the page you buy from, and two of them invisible without reading Divly's own shipped code. (1) THE PRICE YOU SEE IS THE 100-TRANSACTION PRICE - CONFIRMED AT THE SOURCE. https://divly.com/en/pricing advertises Essential at '39' 'EUR', but that is the first cell of a four-column ladder wired into the page's own inline script. From the served source on 2026-08-19: 'const pricingMatrix = { 0: [0, 39, 99, 599], 1: [0, 99, 199, 699], 2: [0, 199, 399, 799], 3: [0, 399, 699, 999] };'. The mapping is not inferred - the bracket buttons carry it: '<button class="transaction-btn active" data-index="0" onclick="updatePricing(0)">Up to 100</button>', then data-index 1 'Up to 1,000', 2 'Up to 10,000', 3 'Up to 100,000'; the script ends with 'updatePricing(0);' and the server-rendered spans read '<span id="price-essential">39</span>'. EUR 39 buys 'Up to 100' transactions for the year. At 'Up to 1,000' Essential is EUR 99; at 'Up to 10,000' EUR 199; at 'Up to 100,000' EUR 399 - and Full Service starts at EUR 599, not the EUR 499 this repo's catalog row records. Anyone with a routine DCA habit is in the 1,000+ bracket and pays 2.5x the headline. (2) ONCE YOU DOWNLOAD, YOU CANNOT UNBUY, AND THE TERMS AND THE HELP CENTRE DISAGREE. Terms: 'It is not possible to get a refund if you have downloaded a file from the tax report section in the platform.' - flat, unqualified. https://help.divly.com/en/articles/8233489-can-i-request-a-refund ('February 3, 2026') sets three requirements - 'You make the request within 14 days of purchasing the service.' / 'The reason for refund is related to a bug or issue that Divly is unable to resolve within a reasonable time frame.' / 'You have not downloaded any tax reports.' - and then adds a fourth: 'This does not apply if the issue is related to the tax report.' So the help centre carves out the commonest case while the binding contract does not; the Terms govern, and the disagreement is the finding. Either way, dissatisfaction that is not a Divly bug is not a refund reason. Worse, the Terms purport to cancel the EU statutory withdrawal right within the same clause that grants it, under the heading 'Your right to terminate the Agreement pre-maturely': 'If you are a consumer, you have the right to withdraw from this Agreement without giving any reason within 14 days.' ... and, four sentences later, 'Since this is a Service we will not, if you withdraw from this Agreement, refund any payments we received from you.' (3) THE PRICING PAGE IS NOT THE WHOLE PRICE LIST - three charges exist that it never shows, all read from Divly's own app bundle (plugin_v23.js, downloaded 2026-08-19). A per-hour overage on the top tier, stated in the help centre: Full Service 'includes 4 hours of work by the Divly Expert. In most cases this is enough, however if extra hours are required they will be charged at 150 EUR per hour.' A priority-service add-on with a four-figure fallback: 'get_priority_service_price:function(){return this.pricing_info&&this.pricing_info.priority_service_price?this.pricing_info.priority_service_price:1e3}'. And an early-bird tier system fetched at checkout: 'fetch_early_bird_tiers:async function(){try{const e=await(await fetch(Fe+"/client/get_early_bird_tiers")).json();'. (4) A TIER THE PRICING PAGE SELLS IS HARDCODED AS UNBUYABLE. The same bundle contains 'is_sold_out_tier_value:function(t){return typeof t!="string"?!1:t.replace("-EARLY","").toUpperCase().startsWith("SECOND_100000")}' and, in the checkout handler, 'if(t.some(e=>this.is_sold_out_tier_value(e.tier))){alert("Sold out tier cannot be purchased.");return}'. In the same file 'THIRD_' resolves to 'Full Service', so 'SECOND_' is the second paid tier, Peace of Mind - the one https://divly.com/en/pricing still advertises at EUR 699 for the 'Up to 100,000' bracket. Whether the server also refuses the sale is unestablished; what is established is that Divly's own client blocks it. (5) THE 'lifetime access ... forever' PROMISE YOU ARE RELYING ON lives in a help article, not the contract; the contract is stamped 'Updated by Synch: 22 September 2021', never mentions it, and reserves account deletion. (6) IF YOU ARE GERMAN, THE STALE PAGE IS THE MARKETING ONE, NOT THE PRODUCT. https://divly.com/en/guides/crypto-taxes-in-germany ('Jan. 15, 2026') still says 'You have a €600 exemption limit on crypto profits.' while the help article ('July 7, 2026') says 'If you exceed the €1000 exemption limit (€600 for tax years 2023 and earlier), the full amount of gains is taxable.' The app itself renders the correct figure - the German tax widget in plugin_v23.js computes the exemption as 'C(a.year>=2024?1e3:600)'. So the number you FILE is right; the number you'd PLAN with off the guide is two years stale.CoinLedgerScore 78Deepest US filing stack in the pool — per-wallet Form 8949 for TY2025, Schedule D, Schedule 1, a 1099-DA reconciliation dashboard and a named Rev. Proc. 2024-28 migration — but the non-US half is thinner than the marketing implies, and the Terms describe a monthly subscription that reserves deletion, contradicting the pricing page's "one-time purchase".Strength: Named form output — 8/10Watch-out: Three things, and the second is the one that costs money. (1) You buy on "Each tax report is a one-time purchase." (https://coinledger.io/pricing) and you contract on "Unless otherwise set forth on an applicable ordering document incorporating these Terms, the Services are billed in advance on a monthly basis and are non-refundable." plus "You shall retain access to such Paid Services from the time you cancel until the start of the next billing period, but you will not receive a refund or credit for any days remaining in your current billing period." and "Upon termination, CoinLedger reserves the right to delete all of your Content, data, and other information stored on CoinLedger’s servers." (https://coinledger.io/terms-conditions). Nothing in the Terms says a tax year you already paid for stays downloadable; section 3.3 goes further — "CoinLedger may also remove or delete your Content from the Services at any time in its sole discretion.". Export the Audit Trail and EOY Positions CSVs the day you file, because the audit trail "The Audit Trail is meant as a supplemental document for you or your tax professional's records. Once exported, it can't be uploaded or re-imported back into CoinLedger." (2) If you are a US user with a CoinLedger account opened before November 2025, your basis may not have migrated when you were told it had. https://help.coinledger.io/en/articles/10339065-how-can-i-download-a-snapshot-of-my-2025-cost-basis-reallocation-rev-proc-2024-28 (December 31, 2024) says "This reallocation process will happen automatically on Jan 1, 2025, and no further action is required by you to facilitate this process." while https://help.coinledger.io/en/articles/10309974-how-will-coinledger-support-new-per-wallet-cost-basis-tracking-rules-irs-rev-proc-2024-28 (December 18, 2025) says "If you are an existing user that used CoinLedger before 2026, you will need to opt-in to per wallet cost basis tracking to ensure that you are in compliance with the new IRS rules." Both are live on 2026-08-19. A user who read the first and did nothing spent all of tax year 2025 on universal basis, which by CoinLedger's own words "is no longer allowed to be used in the United States after Jan 1, 2025". (3) Non-US buyers should check the method before the form. Canada's own help page tells you to set the method by hand — "Be sure to also select Adjusted Cost Base (ACB) as your Report Calculation Method." — even though the methods page says the country selection governs; Germany is absent from the country-specific list entirely, so a German filer lands on the FIFO default, and https://coinledger.io/de sells "Built For Germany Tax Rules" while producing no German statutory form and using Australian phrasing ("We know that lodging your taxes can be stressful."). Anlage SO appears only in a blog guide as something you file yourself via Elster.