Published verdictRanking snapshot 3 November 2026
Blockpit leads by 2 points
Blockpit scores 2 points above Divly, led by cost-basis method and complex transactions.
BLBlockpit #2 of 1180
Why, term by termBlockpit leads on 2 of 4 published criteria; Divly on 0. The terms sum to the gap.
TermBlockpitDivlyWeightPoints
Cost-basis method8/107/106.2+1.6for Blockpit+0.8 of 32
Complex transactions8/107/105.3+1.4for Blockpit+0.7 of 32
Net of the terms+3.0
Criteria roundingThe criteria block is rounded to whole points before it is spread−0.1
Reproduced gap+2.9
Published gapAfter score rounding and bounds — see the note below8078+2.0
Weight is in points of the 86-point weighted total. Points are score points of the gap between the two.
BlockpitScore 80An Austrian crypto-tax engine that actually names the form: prefilled E1/E1kv completion aids carrying KZ 172/174/176, Anlage SO for the open 2025 German year, and a prefilled Form 8949 with a 1099-DA reconciliation page — all delivered as PDF, with per-lot basis that stays inside the PDF and never reaches the CSV.Strength: Named form output — 9/10Watch-out: You buy the tax-year licence and then find part of the interface still locked. Per-transaction cost basis ON SCREEN is NOT in the €49–€549 licence: "To view the Tax Details, you need an active Blockpit Plus subscription!" (https://intercom.help/blockpit/en/articles/12137146-advanced-transaction-details-ledger-tax, "January 30, 2026"), a separate subscription that the pricing page, fetched 2026-09-29, prices at "Only €3.99/month" "Incl. tax • Billed as annual subscription". The number itself is not withheld: the purchased PDF prints 'Kosten (€)', 'Erlös (€)' and 'Gewinn (€)' per transaction (verified on the sample report, pages 16-18). Blockpit Plus buys the on-screen view, not the data. The redesigned pricing page, fetched 2026-09-29, now names what Plus buys: its Blockpit PLUS card lists "Cost basis, gains, losses per transaction". The second sting is the cap, and it bites the buyer who did the right thing. The limit counts a self-transfer TWICE — "Transfers are counted twice because the incoming and outgoing components are separate transactions." (https://intercom.help/blockpit/en/articles/12137278-how-to-understand-the-transaction-limits-of-my-tax-year, "July 20, 2026") — so connecting one more hardware wallet after payment can push you past the package you already bought, and then, on a DIFFERENT help page (https://intercom.help/blockpit/en/articles/12137280-what-happens-if-i-exceed-the-transaction-limit-for-my-purchased-tax-year, "October 1, 2025"): "Once you exceed the transaction limit, you will no longer be able to download the tax report. Upgrade to a higher transaction package to regain access." The step from 50 transactions at 49€ to 1,000 at 99€ is a doubling with nothing in between. Blockpit does only charge the delta, same page: "We will, of course, only charge you the difference between your current package and the higher transaction package." Third, if you ever leave, your lot matching does not come with you: "Transfers are only exported in form of their basic transaction types: Deposit & Withdrawal. The exact reconciliation/reconstruction of previously linked transactions (Transfers) is therefore currently not possible via our export feature." (https://intercom.help/blockpit/en/articles/12137149-how-to-export-my-blockpit-transactions-as-a-csv-file). The CSV that leaves Blockpit has thirteen columns and not one of them is a cost basis. Fourth, portfolio tracking is free: the pricing page, fetched 2026-09-29, lists "Portfolio Tracking" at "Free", and the help centre confirms "You can always import unlimited transactions in terms of Portfolio & Performance Tracking, but for generating a tax report the displayed transaction limits apply." 50 transactions is the cheapest paid tax tier, not a free cap. Fifth, Blockpit names no audit partner: across the 33 Blockpit pages read for this review there is no mention of PwC, and the only claim is unnamed: "Blockpit features country specific and compliant tax frameworks in cooperation with Big4 companies." Its terms are issued by "Blockpit AG".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.