Published verdictRanking snapshot 3 November 2026
Divly leads by 6 points
Divly scores 6 points above CoinTracking.info, led by your tax form and record portability.
Why, term by termDivly leads on 2 of 4 published criteria; CoinTracking.info on 0. The terms sum to the gap.
TermDivlyCoinTracking.infoWeightPoints
Your tax form9/107/107.7+4.0for Divly+2.0 of 32
Record portability6/105/104.8+1.2for Divly+0.6 of 32
Net of the terms+5.2
Criteria roundingThe criteria block is rounded to whole points before it is spread+0.2
Reproduced gap+5.5
Published gapAfter score rounding and bounds — see the note below7872+6.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.CoinTracking.infoScore 72Munich-built veteran whose US filing path is unusually deep -- Form 8949 section-letter assignment against a broker's 1099-DA, TurboTax TXF, and a lot-level audit ledger -- but whose "100+ jurisdictions" claim is backed by named forms in only two and by country guides that are a single template with the country name swapped, whose UK page mis-states HMRC's matching rule as FIFO, and whose terms let a dormant account be terminated and the data deleted.Strength: Named form output — 7/10Watch-out: UNCHANGED IN SUBSTANCE -- both halves re-verified 2026-08-19. First, the transaction cap is LIFETIME, not annual: "Each CoinTracking plan has a different transaction limit based on the total number of transactions imported across all years. This means that all historical transactions count toward the limit, ensuring that your complete trading history is accurately analyzed for comprehensive tax calculations." (https://cointracking.info/pricing/) -- a ten-year history burns Starter's 200-transaction allowance on day one, so the $49/EUR39 entry price is a fiction for anyone with real history. Second, and worse for a legal record: stop renewing and you can no longer produce the report you already paid to produce. The free state is portfolio-view-only -- on 2026-09-29 the pricing page reads "Tax reports require a paid plan." and "new transaction imports also require a paid plan" -- so the 2025 Form 8949 you generated in 2026 cannot be regenerated in 2029 when an examiner asks, unless you are paying again. And section 6 of the Terms lists "User account inactivity exceeding 12 months" as cause to terminate, after which "CoinTracking will delete the data stored by the User 30 days after the termination of the User Agreement." Export the Roll Forward / Audit Report to CSV while the plan is live, or the derived record sits on a clock you do not control.