Published verdictRanking snapshot 3 November 2026
Divly leads by 5 points
Divly scores 5 points above ZenLedger, led by your tax form and cost-basis method.
Why, term by termDivly leads on 2 of 4 published criteria; ZenLedger on 1. The terms sum to the gap.
TermDivlyZenLedgerWeightPoints
Your tax form9/107/107.7+4.0for Divly+2.0 of 32
Cost-basis method7/106/106.2+1.6for Divly+0.8 of 32
Record portability6/107/104.8−1.2for ZenLedger−0.6 of 32
Net of the terms+4.4
Criteria roundingThe criteria block is rounded to whole points before it is spread+0.1
Reproduced gap+4.4
Published gapAfter score rounding and bounds — see the note below7873+5.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.ZenLedgerScore 73An unusually complete US form set — 8949, Schedule D, Schedule 1, Schedule C, FinCEN 114 and Form 8938 all named on served pages — plus a genuine second jurisdiction the prior pass missed entirely: a downloadable CRA Schedule 3 for Canada. What it is not is a filing kit, and ZenLedger says so itself: "We are not a full tax reporting software like TurboTax or TaxAct, so, you will need to combine what ZenLedger offers with a service like TurboTax or TaxAct to complete your tax return". Bolted onto a lot-matching layer that still defaults new accounts to HIFO; help articles dated 2026-08-29 and 2026-09-23 now document a shipped Rev. Proc. 2024-28 engine: By-Wallet tracking as the US default, allocation as of 1 January 2025 with two strategies, and a downloadable allocation report.Strength: Named form output — 7/10Watch-out: Four things a buyer only finds out after paying. (1) THERE IS NO FREE REPORT. The homepage (loaded 2026-08-19) says "Calculate your DeFi, NFT, & crypto taxes and generate free crypto tax reports.", "Industry-leading pricing with a free crypto tax software plan.", "Choose from our free crypto tax software or full-service plans to meet your needs." and buttons reading "Get Started for Free"; the pricing page's meta description still reads "ZenLedger pricing and cost breakdown. We have many competitively priced crypto tax software plans, including a free plan." — but the rendered pricing table has NO free tier and the word 'free' does not appear in its rendered body at all (Silver $49 is the floor). ZenLedger's own help centre states the real rule: "Creating an account is FREE. Use ZenLedger to import and aggregate your crypto transactions without paying a dime." followed immediately by "You only pay to view, download, and access tax reports each year." The free thing is data entry; every fileable artefact costs money. (2) THE 'ONE-TIME' PLAN AUTO-RENEWS. It is sold as a per-tax-year purchase ("Think of it as similar to TurboTax's business model") but: "When you sign up for ZenLedger and pay for your plan, we will automatically subscribe you to yearly auto-renewal of your subscription. This will automatically charge the card you paid with your first plan with towards the end of the calendar tax year for that next tax year. You will be notified via email 7 days prior to the renewal charge." (3) THE PRICING PAGE CARRIES THREE DIFFERENT REFUND WINDOWS. On one served page: "All plans offer a generous 1 year refund policy." (DIY header) and "All ZenLedger plans have a 14 day refund policy." (table footer) and "Tax Professional Prepared Plans have a 14-day refund policy." and "30 day money back guarantee" (the april filing product). Terms of Use §14 governs the software and says 14 days, adding: "If you request a refund after You downloaded any of the tax forms or CSV files, ZenLedger reserves the right to refuse your refund request or issue a partial refund." You cannot check whether the forms are right for you without forfeiting the refund right. The '1 year' line is not confined to the pricing page — it rides the global nav and is served on the Terms of Use page itself, directly above the clause that contradicts it. (4) IT IS NOT A FILING TOOL AND SAYS SO. The page that names the forms also says: "We are not a full tax reporting software like TurboTax or TaxAct, so, you will need to combine what ZenLedger offers with a service like TurboTax or TaxAct to complete your tax return (if you are filing without the services of a CPA). For more information on how to import your reports from ZenLedger into TurboTax (which we have direct integration with!) please review this article." — and the TurboTax walkthrough that sentence links to is HTTP 404.