{
 "country": "GB",
 "country_name": "United Kingdom",
 "url_code": "uk",
 "currency": "GBP",
 "generated": "2026-11-01",
 "last_verified": "2026-11-01",
 "methodology": {
  "weights": {
   "platform_coverage": 25,
   "import_quality": 10,
   "local_tax_rules": 50,
   "ease_of_use": 5,
   "pricing": 10
  },
  "platform_formula": "10 pts for the integration count (200+ = 10, 100+ = 5, 50+ = 3) + 15 pts for the UK slots: Coinbase, Revolut, Kraken, 5 each, API or file (FCA-registered UK entities with heavy UK retail use; Binance has no FCA registration)",
  "local_slots": [
   "coinbase",
   "revolut",
   "kraken"
  ],
  "local_rubric": [
   {
    "id": "A1",
    "block": "A",
    "criterion": "One Section 104 pool per token, across all your wallets",
    "how": "One pooled average cost per token type that rises with each purchase and falls pro rata with each sale; moving tokens between your own wallets leaves the pool unchanged. Per-lot FIFO/HIFO or a pool per wallet or exchange = 0.",
    "type": "Binary",
    "points": 5
   },
   {
    "id": "A2",
    "block": "A",
    "criterion": "Pounds and the UK tax year",
    "how": "Sterling values at the time of each transaction with one consistent rate source; the report covers 6 April to 5 April, not the calendar year. Half credit if the period has to be set by hand.",
    "type": "Measurable",
    "points": 3
   },
   {
    "id": "A3",
    "block": "A",
    "criterion": "Swaps and spending count as disposals",
    "how": "Swapping one token for another, paying with tokens and giving them away (except to a spouse or civil partner) are disposals at sterling market value. Tax-free swaps = 0.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "B1",
    "block": "B",
    "criterion": "Same-day rule first",
    "how": "Buys and sells of the same token on the same day are matched with each other before anything else (HMRC example CRYPTO22256).",
    "type": "Measurable",
    "points": 3
   },
   {
    "id": "B2",
    "block": "B",
    "criterion": "30-day rule: buys in the 30 days after a sale",
    "how": "Tokens bought within 30 days after a sale are matched to it, earliest sale first, and only the excess goes into the pool; a buy in the 30 days before a sale is not matched (HMRC example CRYPTO22253).",
    "type": "Measurable",
    "points": 5
   },
   {
    "id": "B3",
    "block": "B",
    "criterion": "The three rules together",
    "how": "Same day, then 30 days, then the pool, in one portfolio: HMRC example CRYPTO22256 gives £15,000, £10,000, a £163,637 loss and a closing pool of 10,000 tokens / £31,363.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "B4",
    "block": "B",
    "criterion": "2024-25 split at 30 October 2024",
    "how": "Gains and losses before and on/after 30 October 2024 shown separately, so you can use HMRC’s adjustment calculator and box 51. One rate for the whole year = 0.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "B5",
    "block": "B",
    "criterion": "Trading fees in cost and proceeds",
    "how": "A buying fee adds to the pooled cost, a selling fee reduces the gain, a swap fee is split between both sides; fees for depositing or withdrawing pounds are not allowable.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "B6",
    "block": "B",
    "criterion": "Fees paid in tokens are disposals",
    "how": "A fee paid in a token is a disposal of that token at market value and a cost of the main sale. Leaving the fee tokens’ own disposal out but counting their cost = 1.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "B7",
    "block": "B",
    "criterion": "Income at receipt in pounds becomes the cost",
    "how": "Staking, mining and lending rewards are income at their sterling value when received, and that value enters the pool as cost, so the later sale is taxed only on the rise.",
    "type": "Measurable",
    "points": 3
   },
   {
    "id": "B8",
    "block": "B",
    "criterion": "Airdrops: income or not, your choice per airdrop",
    "how": "You can mark an airdrop as received for doing something (income) or for nothing (not income); either way the tokens join that token’s pool.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "B9",
    "block": "B",
    "criterion": "Lost keys and worthless tokens: a negligible value claim",
    "how": "A flow that records a negligible value claim for the whole pool of a token at a stated date and value, producing the capital loss; theft does not create a loss unless you make that claim.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "B10",
    "block": "B",
    "criterion": "Losses used in the right order",
    "how": "Losses of the year net against gains first; losses from earlier years are used only down to the £3,000 allowance and the rest carries forward; losses older than four years are flagged.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "C1",
    "block": "C",
    "criterion": "SA108 crypto boxes 13.1 to 13.5",
    "how": "Number of disposals, proceeds, allowable costs, gains before losses and losses, labelled with the boxes of the separate crypto section, in whole pounds. The old boxes 14–22 = half.",
    "type": "Binary",
    "points": 4
   },
   {
    "id": "C2",
    "block": "C",
    "criterion": "The computation HMRC asks you to enclose",
    "how": "One line per disposal: date, token, amount, proceeds, cost, the matching rule used (same day / 30 days / pool) and the gain or loss in pounds. Without the matching rule = half.",
    "type": "Binary",
    "points": 3
   },
   {
    "id": "C3",
    "block": "C",
    "criterion": "Whether you have to file",
    "how": "The report says whether SA108 is needed: proceeds over £50,000, gains before losses over £3,000, or a loss to claim. Only one of the two tests = 0.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "C4",
    "block": "C",
    "criterion": "Income kept apart from gains",
    "how": "Crypto income from staking, mining and lending as its own total for the return, not mixed into the gains.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "C5",
    "block": "C",
    "criterion": "Closing pool per token",
    "how": "Quantity and pooled cost per token at 5 April, carried into the next tax year.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "C6",
    "block": "C",
    "criterion": "Current UK filing guidance",
    "how": "Maintained guidance naming the crypto boxes 13.1–13.8, the £50,000 / £3,000 tests, the 31 January deadline and the Real Time CGT service. Still giving £6,000 or 10/20 % for the current year = 0.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "D1",
    "block": "D",
    "criterion": "DeFi lending and liquidity pools as HMRC reads them",
    "how": "Depositing into a lending platform or pool is a disposal when ownership passes; returns are income or capital by HMRC’s factors; you can choose per protocol. Documented handling, not a generic “DeFi supported”.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "D2",
    "block": "D",
    "criterion": "Gifts to a spouse or civil partner: no gain",
    "how": "A gift label for a spouse or civil partner that books no gain. A gift to anyone else is a disposal at market value.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "D3",
    "block": "D",
    "criterion": "Forks into their own pool",
    "how": "Tokens from a hard fork get their own pool with a just and reasonable share of the original pool’s cost.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "D4",
    "block": "D",
    "criterion": "Scottish taxpayers",
    "how": "You can say you are a Scottish taxpayer and the tax estimate uses Scottish income-tax bands for crypto income, UK bands for gains. Scored only where a tool shows an estimate.",
    "type": "Binary",
    "points": 1
   }
  ],
  "local_rubric_blocks": {
   "A": 10,
   "B": 24,
   "C": 11,
   "D": 5
  },
  "scoring_rule": "no test accounts (owner, 1 Nov 2026: inference allowed); every row scored from the vendor's own pages, help centre and report samples: documented = stated by the vendor (a documented no = 0), inferred = implied by the evidence with a one-line reason, unmeasured = nothing to go on (0); half credit on a 3-point row rounds down to 1 (whole points only); HMRC worked examples CRYPTO22253 / CRYPTO22256 define the correct figures; Divly scored the same way from divly.com and help.divly.com; Divly removed from the UK page for now (Youri, 2 Nov 2026)",
  "pricing_formula": "0.5×Casual + 0.4×Active + 0.1×Trader, rounded to integer; profile score = 10 × benchmark ÷ price (unrounded, max 10); benchmark = the cheapest ranked price, but never below half the median ranked price (floor added 1 Nov 2026); profiles averaged over tx grids 25/50/100, 250/500/1000, 2500/5000/10000, single tax year; free plans recorded as free_rule, never priced at 0",
  "pricing_currency": "GBP; USD × 0.79 and EUR × 0.86 where no GBP price is published (Recap, Summ and KoinX publish GBP)",
  "qualifying_rule": "ranked only if the UK tax rules score is at least 10/50 (the floor chosen by the owner) and the tool is a service you can buy; in practice a per-token Section 104 pool, swaps as disposals and the SA108 crypto figures; tools under the floor, and BittyTax (a self-run command-line program), are listed as reviewed but not ranked with their total without the price pillar",
  "evidence_note": "platform support = vendor-listed (public integration pages and help lists), not import-tested; competitor sheets in research/uk/competitors/ and divly-comparison-guides/_competitors/, checked 2026-11-01; nothing was tested",
  "evidence_date": "2026-11-01",
  "sources": "comparison-guides/crypto-tax-benchmark/rubrics/uk-rubric-draft.md (v1 final, §5), uk-scores.md (v1); research/uk/tax-rules.md (UK-F001–F042), market-context.md, competitor-candidates.md, competitors/*.md; divly-comparison-guides/_competitors/*.md; help.divly.com/en/articles/8247023 (demo UK report and CSV)",
  "pricing_cheapest_gbp": {
   "casual": 20,
   "active": 20,
   "trader": 39
  },
  "pricing_median_gbp": {
   "casual": 43,
   "active": 82,
   "trader": 174
  },
  "pricing_benchmark_gbp": {
   "casual": 22,
   "active": 41,
   "trader": 87
  }
 },
 "ranking": [
  {
   "id": "koinly",
   "name": "Koinly",
   "domain": "koinly.io",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "uk_tax_rules_50": 42,
    "ease_5": 3,
    "pricing_10": 5
   },
   "total_100": 85,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 20,
    "C": 9,
    "D": 3
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "inferred",
     "evidence": "Share Pooling with a Section 104 pool; one pool across wallets needs wallet-based tracking off, the UK default is not stated"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "GBP base currency; tax-year start setting (6 April); HMRC summary per full tax year"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Crypto-to-crypto trades are realised (shared sheet K27)"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "/gb/: Share Pooling \"including same-day and bed-and-breakfasting rules\""
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Bed and breakfasting: a buy within 30 days after the sale is matched to it"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "One-page HMRC summary splits 2024-25 at 30 Oct 2024 (feature request marked Complete, 5 Sep 2025)"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Fees added to cost (K30); fiat-fee exclusion and swap split not documented"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "A fee paid in crypto is a disposal (K30)"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Rewards are income at market value and that value becomes the cost (K32)"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Airdrop tag (income) or untagged deposit, per transaction"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Lost tag books no loss, or a loss on just those coins; no whole-pool negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Losses carried over from earlier years are \"not included\""
    },
    "C1": {
     "points": 4,
     "max": 4,
     "status": "inferred",
     "evidence": "UK guide (14 Oct 2026) maps the HMRC summary to boxes 13.1–13.8; the printed labels are not published"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "documented",
     "evidence": "Per-disposal CSV without the matching rule; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "£50,000 / £3,000 in the guide only, not in the report"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate income section and CSV"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "End of Year Holdings report; pooled cost per token not stated"
    },
    "C6": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Guide names boxes 13.1–13.8, £3,000, £50,000, 18/24 % and 31 Jan 2027; Real Time CGT only through box 13.7 (borderline)"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Liquidity moves as disposals or swaps by setting (K34), per protocol through tags"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Gift tag books no gain; the partner enters the giver's cost"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Forked coins are income at market value or get zero cost; nothing taken from the original pool"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD list prices ($49 / $99 / $199 / $299) converted at 0.79 GBP/USD; no GBP page (/gb/pricing/ not found); EUR shown to some visitors",
    "tiers_gbp": [
     [
      100,
      39
     ],
     [
      1000,
      78
     ],
     [
      3000,
      157
     ],
     [
      100000,
      236
     ]
    ],
    "free_rule": "free preview of the gains; the report is paid",
    "profile_prices_gbp": {
     "casual": 39,
     "active": 78,
     "trader": 210
    },
    "profile_scores": {
     "casual": 5.51,
     "active": 5.22,
     "trader": 4.14
    },
    "weighted_unrounded": 5.26
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 986,
    "complete": false,
    "source": "https://koinly.io/integrations/",
    "note": "900+ claimed on /gb/; Coinbase and Kraken API, Revolut auto-sync"
   },
   "source": "research/uk/competitors/koinly.md + divly-comparison-guides/_competitors/koinly.md"
  },
  {
   "id": "cointracker",
   "name": "CoinTracker",
   "domain": "cointracker.com",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "uk_tax_rules_50": 39,
    "ease_5": 5,
    "pricing_10": 4
   },
   "total_100": 83,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 18,
    "C": 8,
    "D": 3
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "UK method \"Pooling (hybrid ACB)\" with Universal tracking; HIFO is the general default"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "GBP base currency; tax year 6 April to 5 April"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Trades and sells taxable (UK treatment table)"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "UK pooling \"incorporates the same-day rule\""
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "UK pooling includes the 30-day rule; purchases \"in the following 30 days\""
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Split request only \"Acknowledged\""
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Trading fees documented; fiat deposit and withdrawal fees not addressed"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "\"Fees are treated as asset disposals\""
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Income at value on receipt; that value becomes the cost"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Income by default; reclassify as Receive when nothing was done for it"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Lost/Stolen non-taxable (right for theft) but no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Tool \"does not calculate your final UK tax due\""
    },
    "C1": {
     "points": 4,
     "max": 4,
     "status": "documented",
     "evidence": "Filing Summary \"maps core crypto figures to SA108 Cryptoassets boxes 13.1 to 13.5\""
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Per-disposal capital gains CSV; matching rule not documented; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Tests in the guide, not in the report"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate income figure for SA100 box 17"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Year-end balances at market value per wallet, not pooled cost"
    },
    "C6": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Guide (3 Sep 2026): boxes 13.1–13.8, £50,000 / £3,000, 31 Jan 2027, Real Time CGT, 18/24 %"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Pool deposits as disposals; a lending deposit as trade or send; the guide uses the beneficial-ownership test"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Spouse gifts reclassified or excluded per transaction; no label"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Fork gets \"zero cost basis\" with no apportionment"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "subscription",
    "currency_note": "USD list prices ($59 / $99 / $199 / $299 / $499 / $999) converted at 0.79 GBP/USD; checkout in local currency but no GBP amounts published; annual, renews",
    "tiers_gbp": [
     [
      100,
      47
     ],
     [
      250,
      78
     ],
     [
      1000,
      157
     ],
     [
      2500,
      236
     ],
     [
      10000,
      394
     ],
     [
      25000,
      789
     ]
    ],
    "free_rule": "free plan: no downloadable tax forms",
    "profile_prices_gbp": {
     "casual": 47,
     "active": 131,
     "trader": 341
    },
    "profile_scores": {
     "casual": 4.57,
     "active": 3.12,
     "trader": 2.54
    },
    "weighted_unrounded": 3.79
   },
   "flags": {
    "subscription": true,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 632,
    "complete": false,
    "source": "https://www.cointracker.com/integrations",
    "note": "counter 632, 500+ claimed; Revolut by CSV on a page marked Beta"
   },
   "source": "research/uk/competitors/cointracker.md"
  },
  {
   "id": "cointracking",
   "name": "CoinTracking",
   "domain": "cointracking.info",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "uk_tax_rules_50": 36,
    "ease_5": 1,
    "pricing_10": 5
   },
   "total_100": 77,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 9,
    "B": 18,
    "C": 6,
    "D": 3
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "HMRC average-cost pool; one pool per coin with depot separation off (it was on by default in our earlier exports)"
    },
    "A2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Report in GBP; the UK April year is not documented, a custom range can be set; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Trades and spends appear in the gains list"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same-day buys matched \"even if disposed of beforehand\""
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Buys \"within a 30-day period post-sale\""
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No 30 Oct 2024 split documented"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Fees in cost and proceeds; fiat withdrawal fees not documented"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "A fee in a third token is booked as a taxable Trade Fee"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Income valued at receipt"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "\"Airdrop\" and \"Airdrop (non taxable)\" types"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "inferred",
     "evidence": "Lost and stolen in a separate section; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "inferred",
     "evidence": "Its own UK forms guide sends crypto to the old boxes 14–22; half"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "documented",
     "evidence": "Per-disposal list in GBP without the matching rule; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No £50,000 / £3,000 test"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Miscellaneous income in its own section"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "A closing position report is listed; pooled cost not described"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Forms guide (4 Feb 2026): \"£6,000 for the 2024/25 tax year\"; rates guide 10/20 %"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Settings for pool deposits as disposals and pool rewards as income or capital"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Gifts kept out of gains; no spouse label"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No fork handling documented"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No Scottish setting"
    }
   },
   "pricing": {
    "model": "all_time_transaction_count",
    "currency_note": "EUR list prices converted at 0.86 GBP/EUR; lifetime transaction cap across all years; billed in USD; auto-renews",
    "tiers_gbp": [
     [
      200,
      34
     ],
     [
      3500,
      111
     ],
     [
      20000,
      188
     ],
     [
      50000,
      249
     ],
     [
      100000,
      335
     ],
     [
      999999999,
      661
     ]
    ],
    "free_rule": "200 lifetime transactions, no tax reports",
    "profile_prices_gbp": {
     "casual": 34,
     "active": 111,
     "trader": 162
    },
    "profile_scores": {
     "casual": 6.32,
     "active": 3.67,
     "trader": 5.35
    },
    "weighted_unrounded": 5.17
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 301,
    "complete": true,
    "source": "https://cointracking.info/imports",
    "note": "400+ claimed; Revolut by file"
   },
   "source": "research/uk/competitors/cointracking.md + _competitors/cointracking.md"
  },
  {
   "id": "waltio",
   "name": "Waltio",
   "domain": "waltio.com",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "uk_tax_rules_50": 34,
    "ease_5": 4,
    "pricing_10": 4
   },
   "total_100": 77,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 16,
    "C": 7,
    "D": 1
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "\"Pooling is done per asset, not per wallet\""
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "SA108 figures in £; guide uses 6 April to 5 April; no currency setting documented"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Swaps, payments and non-spouse gifts are disposals"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same-day rule first, worked example"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "A repurchase within 30 days after the sale is matched"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No 30 Oct 2024 split in any report"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Buy fee to cost, sell fee off proceeds, own-transfer gas not allowable"
    },
    "B6": {
     "points": 1,
     "max": 2,
     "status": "documented",
     "evidence": "Fee tokens added to cost, their own disposal not counted (the shortcut HMRC accepts)"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "\"GBP value declared as income … becomes your new acquisition\" cost"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "One airdrop label, always income"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "\"Hack and loss\" books a loss by default; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No entry for earlier losses or £3,000 floor"
    },
    "C1": {
     "points": 4,
     "max": 4,
     "status": "documented",
     "evidence": "Boxes 13.1–13.5 mapped to Waltio's figures (UK help, Sep 2026)"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "documented",
     "evidence": "Disposal-level computation PDF without the matching rule; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "£50,000 test in guidance only, not in the report"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "SA100 box 17 income total"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No closing pool described"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "UK guide current, but a help article (15 Sep 2026) states 10 % or 20 % as the current rates"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Pool withdrawal takes back the original cost; lending deposits never disposals"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Spouse gift is no gain / no loss"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Fork cost set to 0"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "subscription",
    "currency_note": "EUR on waltio.com/uk/pricing (€39 / €99 / €249 / €999) converted at 0.86 GBP/EUR; per year on the current year's transactions, earlier years extra",
    "tiers_gbp": [
     [
      50,
      34
     ],
     [
      1000,
      85
     ],
     [
      10000,
      214
     ],
     [
      999999999,
      859
     ]
    ],
    "free_rule": "free plan: no gains report",
    "profile_prices_gbp": {
     "casual": 51,
     "active": 85,
     "trader": 214
    },
    "profile_scores": {
     "casual": 4.22,
     "active": 4.79,
     "trader": 4.06
    },
    "weighted_unrounded": 4.43
   },
   "flags": {
    "subscription": true,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 3799,
    "complete": true,
    "source": "https://www.waltio.com/platforms/",
    "note": "700+ claimed; 731 non-protocol entries; Revolut by file"
   },
   "source": "research/uk/competitors/waltio.md"
  },
  {
   "id": "summ",
   "name": "Summ",
   "domain": "summ.com",
   "scores": {
    "platforms_25": 20,
    "import_10": 10,
    "uk_tax_rules_50": 37,
    "ease_5": 5,
    "pricing_10": 4
   },
   "total_100": 76,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": false,
     "kraken": true
    },
    "local_points": 10
   },
   "local_blocks": {
    "A": 10,
    "B": 18,
    "C": 6,
    "D": 3
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "HMRC method = pooled average cost with same-day and B&B rules; Universal tracking across wallets"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Currency fixed to the country (GBP); reports per financial year from 6 April"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Swaps and spending are disposals (UK guide)"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same-day rule in the HMRC method, worked example"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Bed-and-breakfast rule; the example matches a rebuy after the sale"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No 30 Oct 2024 split found"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Trading fees in cost and proceeds; deposit and withdrawal fees not deductible (UK guide)"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "\"fee is treated as the disposal\" (help)"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Value at receipt becomes the cost"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Airdrop (not income) or Income category, per transaction"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Lost and Stolen both book a capital loss; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Only \"carry forward unused capital losses\""
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "inferred",
     "evidence": "Report has the five totals; Summ's own filing post maps them to the old boxes 14–22; half"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "documented",
     "evidence": "Per-disposal rows without the matching rule; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No £50,000 / £3,000 test"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate Income Report"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Inventory Report: closing quantity and cost per asset"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Help guide still gives 10/20 %; no 13.x boxes, £50,000 or Real Time CGT"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Liquidity steps are disposals; collateral and staking-deposit switches; interest as income"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Global gifts-not-taxable switch plus the guide's spouse rule; no spouse label"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Fork rule described in the guide; no feature"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "subscription",
    "currency_note": "GBP (summ.com/uk/pricing/personal): £49 / £99 / £249 / £499 a year; auto-renews; the transaction cap counts every year together",
    "tiers_gbp": [
     [
      100,
      49
     ],
     [
      1000,
      99
     ],
     [
      10000,
      249
     ],
     [
      100000,
      499
     ]
    ],
    "free_rule": "free plan: no tax report",
    "profile_prices_gbp": {
     "casual": 49,
     "active": 99,
     "trader": 249
    },
    "profile_scores": {
     "casual": 4.39,
     "active": 4.12,
     "trader": 3.49
    },
    "weighted_unrounded": 4.19
   },
   "flags": {
    "subscription": true,
    "site_operator": false,
    "partly_vendor_claimed": true
   },
   "integrations_list": {
    "imported": true,
    "entries": 3512,
    "complete": true,
    "source": "https://summ.com/se/integrations",
    "note": "counter shows 3,527 on /uk/integrations; no Revolut integration (custom CSV only)"
   },
   "source": "research/uk/competitors/summ.md"
  },
  {
   "id": "recap",
   "name": "Recap",
   "domain": "recap.io",
   "scores": {
    "platforms_25": 18,
    "import_10": 10,
    "uk_tax_rules_50": 39,
    "ease_5": 5,
    "pricing_10": 3
   },
   "total_100": 75,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 3,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 20,
    "C": 7,
    "D": 2
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "One Section 104 pool per asset with pool balance and costs; own transfers are movements only"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "HMRC setting fixes GBP; one summary per UK tax year with its deadline"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Trades, purchases with crypto and gifts are disposals"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same-day matched first; \"same-day\" match type on each disposal"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Buys \"in the following 30 days\" matched; \"bed & breakfast\" match type"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order documented and a match type on every disposal; the combined figures need a test"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Dashboard \"shows realised gains split across the two periods\" (2025 return blog)"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Fees sit in each disposal's costs and in the pool cost; fiat-fee exclusion and swap split not documented"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "\"a crypto fee is a disposal of the fee amount\""
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Staking and mining rewards acquired at market value and added to the Income Report"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Airdrop type (not income) or retyped as Income, per transaction"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Lost, Stolen and Write-off book a loss on the amount; no whole-pool claim, and theft gives a loss"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No entry for losses from earlier years or loss order documented"
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "documented",
     "evidence": "Blog (2 Jan 2026): the report's last page gives boxes 14–19; no 13.x labels published; half"
    },
    "C2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Disposals Report: proceeds, costs, fees, match type, gain or loss"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "£50,000 / £3,000 tests in help, not in the report"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate Income Report"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Pool balance and cost per asset on the Assets screen; no closing-pool report named"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Help names £3,000, £50,000, 31 Jan and the Real Time service but no 13.x boxes; the Jan 2026 blog still uses 14–22"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "inferred",
     "evidence": "UK DeFi guide follows HMRC, but the product books pool positions one fixed way with no income-or-capital choice"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Send Gift (Spouse) is \"No gain/no loss\""
    },
    "D3": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Network Fork splits the pool cost by market values on the fork day"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Dashboard shows a CGT estimate; no Scottish setting found"
    }
   },
   "pricing": {
    "model": "subscription",
    "currency_note": "GBP incl. VAT (Basic £119 up to 5,000 transactions, Pro £219 unlimited; recap.io/pricing); annual, renews; whether the 5,000 cap is per year or lifetime is not stated",
    "tiers_gbp": [
     [
      5000,
      119
     ],
     [
      999999999,
      219
     ]
    ],
    "free_rule": "free plan imports and previews, no report download",
    "profile_prices_gbp": {
     "casual": 119,
     "active": 119,
     "trader": 152
    },
    "profile_scores": {
     "casual": 1.81,
     "active": 3.42,
     "trader": 5.7
    },
    "weighted_unrounded": 2.84
   },
   "flags": {
    "subscription": true,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 51,
    "complete": true,
    "source": "https://recap.io/integrations",
    "note": "51 integrations (Youri, 1 Nov 2026: \"recap really just has 51\"); the 350+ in its llms.txt is not used"
   },
   "source": "research/uk/competitors/recap.md"
  },
  {
   "id": "bittytax",
   "name": "BittyTax",
   "domain": "github.com/BittyTax/BittyTax",
   "scores": {
    "platforms_25": 18,
    "import_10": 5,
    "uk_tax_rules_50": 41,
    "ease_5": 0,
    "pricing_10": 10
   },
   "total_100": 74,
   "status": "documentation, 2 rows inferred (no tests); free open-source command-line program (Claude, delegated, 1 Nov 2026: ranked, priced as free)",
   "platform_detail": {
    "integration_count_10": 3,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 22,
    "C": 6,
    "D": 3
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "One pool per asset"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "GBP default, reports per UK tax year"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Swaps, spending and gifts are disposals"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same day first"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Bed and breakfast: buyback within 30 days after"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "v0.6.0 shows gains before and on/after 30/10/2024"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Fees split on swaps; transfer fees not allowable"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "A fee paid in a token is its own disposal"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Income at GBP value, which becomes the pool cost"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Airdrop not income unless received for a service"
    },
    "B9": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Lost type = negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "inferred",
     "evidence": "No brought-forward losses"
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "documented",
     "evidence": "Box 13.1–13.5 figures, labelled for \"Other property, assets and gains\"; half"
    },
    "C2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Each disposal shows its matching rule"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "£50,000 asterisk only, no £3,000 test"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate income report"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "inferred",
     "evidence": "Current holdings, not the pool at 5 April"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No filing guidance"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Lending and pool deposits are disposals when ownership passes"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Spouse gifts no gain / no loss"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Forks get zero cost"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "free",
    "currency_note": "Free, open source (GPL); no paid plan",
    "tiers_gbp": [
     [
      999999999,
      0
     ]
    ],
    "free_rule": "free for any volume",
    "profile_prices_gbp": {
     "casual": 0,
     "active": 0,
     "trader": 0
    },
    "profile_scores": {
     "casual": 10,
     "active": 10,
     "trader": 10
    },
    "weighted_unrounded": 10
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 93,
    "complete": true,
    "source": "https://github.com/BittyTax/BittyTax",
    "note": "93 file sources via its conversion tool"
   },
   "source": "research/uk/competitors/bittytax.md (checked 2026-11-01)"
  },
  {
   "id": "kryptos",
   "name": "Kryptos",
   "domain": "kryptos.io",
   "scores": {
    "platforms_25": 25,
    "import_10": 5,
    "uk_tax_rules_50": 32,
    "ease_5": 4,
    "pricing_10": 7
   },
   "total_100": 73,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 15,
    "C": 6,
    "D": 1
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "\"Section 104 pooling, automatic\" (kryptos.io/uk)"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Choosing the UK sets the currency; reports and prices per tax year ending 5 April"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Swaps, spending and non-spouse gifts listed as disposals"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same-day rule applied automatically, matched first"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Buys \"within the following 30 days\" matched before the pool"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order stated (\"before the pool is touched\"); the combined figures need a test"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No 30 Oct 2024 split"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Guide: cost includes fees; a Fee label exists"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Nothing on fees paid in tokens"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Staking income at £ value on receipt, kept apart from gains"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "One Airdrops label, no income / not-income choice"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Lost and Stolen labels; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Only \"£3,000 allowance already taken into account\""
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "inferred",
     "evidence": "\"SA108 ready\"; no box numbers or sample report; half"
    },
    "C2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Per-line audit trail with same-day and 30-day matches flagged"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No £50,000 / £3,000 test"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "\"keeps income separate from gains\""
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No closing pool per token"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Blog (updated 22 Feb 2026) gives £6,000 for 2025/26 and 10/20 %"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Generic pool wording; DeFi needs the paid Pro add-on"
    },
    "D2": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Outgoing Gift label only, no spouse label"
    },
    "D3": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Fork label; the guide gives forked tokens a share of the original cost"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No Scottish setting"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD per tax year ($39 / $89 / $139 / $259 / $459 / $689 / $989, kryptos.io/pricing) converted at 0.79 GBP/USD; not a subscription; DeFi and NFTs need the Pro add-on ($6.99 a month)",
    "tiers_gbp": [
     [
      300,
      31
     ],
     [
      1000,
      70
     ],
     [
      3000,
      110
     ],
     [
      10000,
      205
     ],
     [
      30000,
      363
     ],
     [
      50000,
      544
     ],
     [
      100000,
      781
     ]
    ],
    "free_rule": "free with a tax report up to 100 transactions per tax year (priced on its first paid tier in the formula)",
    "profile_prices_gbp": {
     "casual": 31,
     "active": 57,
     "trader": 173
    },
    "profile_scores": {
     "casual": 6.94,
     "active": 7.15,
     "trader": 5.01
    },
    "weighted_unrounded": 6.83
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 352,
    "complete": false,
    "source": "https://kryptos.io/integrations",
    "note": "352 live on the public page (\"curated selection\"); 5,500+ claimed; the 2026 workbook note counted 237 in the app with several lacking guidance; Revolut by CSV"
   },
   "source": "research/uk/competitors/kryptos.md"
  },
  {
   "id": "koinx",
   "name": "KoinX",
   "domain": "koinx.com",
   "scores": {
    "platforms_25": 25,
    "import_10": 5,
    "uk_tax_rules_50": 32,
    "ease_5": 3,
    "pricing_10": 8
   },
   "total_100": 73,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 16,
    "C": 6,
    "D": 0
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "inferred",
     "evidence": "UK report guide: same day, 30 days, then \"the Section 104 pool\"; a general help article matches within each wallet or exchange (conflict, UK page taken)"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Report in £ for the tax year \"2024-25\"; holdings at the end of the tax year"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Selling, trading and spending fall under CGT"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "\"same-day matching first\""
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Sale matched to a \"repurchase within 30 days\""
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No split; the guide gives 10/20 % for all of 2024-25"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "\"Offset Brokerage Fees in Trades\" setting"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Nothing on fees paid in tokens"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Income at market value on receipt"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "\"Treat Airdrops as Income\" setting (all airdrops together)"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "\"Treat Lost as Sale\" books a zero-proceeds loss; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "inferred",
     "evidence": "Summary has the five SA108 crypto figures without box numbers; half"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "documented",
     "evidence": "Per-disposal table in £ without the matching rule; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No £50,000 / £3,000 test"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate Other Income summary"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "End-of-tax-year holdings with the cost carried forward"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "HMRC guide (8 Aug 2026) targets the 2024-25 return; no £50,000 test or Real Time CGT; 10/20 % on UK pages"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "\"Send to Pool\" labelled \"Generally non-taxable\""
    },
    "D2": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Gift label only, no spouse label"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No fork label"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No Scottish setting"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "GBP per tax year, excluding tax (koinx.com/uk/pricing: £14.99 / £24.99 / £74.99 / £99.99 / £149.99 / £199.99, then +£9.99 per 1,000)",
    "tiers_gbp": [
     [
      25,
      14.99
     ],
     [
      100,
      24.99
     ],
     [
      1000,
      74.99
     ],
     [
      3000,
      99.99
     ],
     [
      5000,
      149.99
     ],
     [
      10000,
      199.99
     ]
    ],
    "free_rule": "portfolio tracking free; no free report",
    "profile_prices_gbp": {
     "casual": 22,
     "active": 75,
     "trader": 150
    },
    "profile_scores": {
     "casual": 9.93,
     "active": 5.43,
     "trader": 5.79
    },
    "weighted_unrounded": 7.72
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 400,
    "complete": false,
    "source": "https://www.koinx.com/integrations",
    "note": "800+ claimed; about 400 visible, some duplicated; Kraken file only; Revolut listed, method not documented (slot inferred)"
   },
   "source": "research/uk/competitors/koinx.md"
  },
  {
   "id": "coinpanda",
   "name": "Coinpanda",
   "domain": "coinpanda.io",
   "scores": {
    "platforms_25": 25,
    "import_10": 5,
    "uk_tax_rules_50": 34,
    "ease_5": 5,
    "pricing_10": 3
   },
   "total_100": 72,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 9,
    "B": 18,
    "C": 4,
    "D": 3
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "\"Share Pool - incl. the same-day and 30-day rule\" with Universal tracking; FIFO is the default"
    },
    "A2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "GBP available; the tax-year start is a setting, the UK April default is not documented; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Crypto-to-crypto taxable by default"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same help line: same-day rule"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Same help line: 30-day rule; blog example matches a buy 7 days after the sale"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No 30 Oct 2024 split documented"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Fees in cost and proceeds; GBP withdrawal fees not addressed"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Fee tokens \"realized at market price\""
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Income at value when received; with income off the cost is zero, so with it on the receipt value is the cost"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Airdrop switch plus Income vs Airdrop labels"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Lost is \"not included in your capital gains\"; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "inferred",
     "evidence": "No UK form in the report list; only an undescribed \"UK, HMRC report\" tick on a comparison page"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Per-disposal list; matching rule not shown; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No £50,000 test; the guide uses the old four-times-allowance rule"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate income sections"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Report sample: end-of-year holdings with cost basis"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "UK guide (Jul 2024) gives £12,300 and 10/20 %"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Switches for liquidity, staking-pool and collateral deposits plus income switches"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Global outgoing-gift switch"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Forks get income value or zero cost"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD list prices on the English page ($79 / $149 / $249 / $389) converted at 0.79 GBP/USD; one-off per tax year",
    "tiers_gbp": [
     [
      100,
      62
     ],
     [
      1000,
      118
     ],
     [
      3000,
      197
     ],
     [
      20000,
      307
     ]
    ],
    "free_rule": "free up to 25 transactions, preview only",
    "profile_prices_gbp": {
     "casual": 62,
     "active": 118,
     "trader": 270
    },
    "profile_scores": {
     "casual": 3.47,
     "active": 3.45,
     "trader": 3.21
    },
    "weighted_unrounded": 3.44
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 1185,
    "complete": false,
    "source": "https://coinpanda.io/integrations/",
    "note": "Revolut by CSV only"
   },
   "source": "research/uk/competitors/coinpanda.md + _competitors/coinpanda.md"
  },
  {
   "id": "blockpit",
   "name": "Blockpit",
   "domain": "blockpit.io",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "uk_tax_rules_50": 31,
    "ease_5": 2,
    "pricing_10": 4
   },
   "total_100": 72,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 14,
    "C": 7,
    "D": 0
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "inferred",
     "evidence": "UK settings name a \"shared pool\"; a help article says a universal pool is \"not supported\" (conflict, no UK exception stated)"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "UK settings preset; the en-gb guide uses pounds and the 6 April year"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Guide: swaps are disposals; swaps were taxed in our Czech test"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "\"same day rule\" in the UK launch post"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "\"bed and breakfasting rule\"; the guide example rebuys after the sale"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No 30 Oct 2024 split documented"
    },
    "B5": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Fee label is \"a separate outflow\"; cost and proceeds treatment not documented"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Income labels valued at market value on receipt"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Separate Airdrop and Bounty labels"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "\"Lost\" is tax neutral; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 4,
     "max": 4,
     "status": "inferred",
     "evidence": "Pre-filled UK forms; the en-gb guide names boxes 13.1–13.8 and says the report shows \"which figures belong in each box\""
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Every transaction with its gain or loss; matching rule not documented; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No £50,000 test"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Report separates gains, income and balances"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Balances only, pooled cost not described"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "en-gb guide (2 Oct 2026) current on boxes 13.x, 18/24 %, £3,000 and 31 Jan, but no £50,000 test or Real Time CGT"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "inferred",
     "evidence": "Pool deposit modelled as a swap; no income-or-capital choice for returns"
    },
    "D2": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No spouse label; outgoing gift treatment not stated"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Hard Fork label; cost split not stated"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No Scottish setting"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "EUR list prices (€49 / €99 / €149 / €229 / €549, blockpit.io/pricing; /en-gb/pricing redirects there) converted at 0.86 GBP/EUR; one-off per tax year",
    "tiers_gbp": [
     [
      50,
      42
     ],
     [
      1000,
      85
     ],
     [
      3000,
      128
     ],
     [
      10000,
      197
     ],
     [
      999999999,
      472
     ]
    ],
    "free_rule": "free plan: import and tracking, no report",
    "profile_prices_gbp": {
     "casual": 56,
     "active": 85,
     "trader": 174
    },
    "profile_scores": {
     "casual": 3.82,
     "active": 4.79,
     "trader": 4.99
    },
    "weighted_unrounded": 4.32
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 781,
    "complete": true,
    "source": "https://www.blockpit.io/integrations",
    "note": "788 in the directory 31 Oct; Revolut by CSV/Excel"
   },
   "source": "research/uk/competitors/blockpit.md + _competitors/blockpit.md"
  },
  {
   "id": "coinledger",
   "name": "CoinLedger",
   "domain": "coinledger.io",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "uk_tax_rules_50": 21,
    "ease_5": 3,
    "pricing_10": 5
   },
   "total_100": 64,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 9,
    "B": 8,
    "C": 3,
    "D": 1
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "\"United Kingdom: Shared Pool\" method; one pool per token"
    },
    "A2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "GBP documented; the 6 April year is not (end-of-year example is 31 Dec); half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Swaps taxable"
    },
    "B1": {
     "points": 0,
     "max": 3,
     "status": "unmeasured",
     "evidence": "Same-day rule not stated for the Shared Pool method; explained in the guide only"
    },
    "B2": {
     "points": 0,
     "max": 5,
     "status": "unmeasured",
     "evidence": "30-day rule explained in the guide only, not stated as applied"
    },
    "B3": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No split in any report"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Fee fields on trades; fees go into cost"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "\"Fees are considered a taxable disposal\" (help search snippet)"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Staking and mining are income at receipt"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Airdrop switch"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Theft \"non-deductible\"; no negligible value claim"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "unmeasured",
     "evidence": "A \"UK HMRC Capital Gains Summary\" exists; its contents are not published"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "documented",
     "evidence": "Audit Trail per disposal without the matching rule; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No £50,000 / £3,000 test"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate Income Summary"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "End-of-year positions per purchase lot at 31 Dec"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Jan 2026 guide: \"first £6,000 … tax-free\" and 10/20 %"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Generic liquidity switch; lending \"typically not\" taxable"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Gift label books no gain, for any recipient"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Forks treated as income"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD list prices ($49 / $99 / $199 / $299 / $499) converted at 0.79 GBP/USD; one-off per tax year",
    "tiers_gbp": [
     [
      100,
      39
     ],
     [
      1000,
      78
     ],
     [
      3000,
      157
     ],
     [
      10000,
      236
     ],
     [
      100000,
      394
     ]
    ],
    "free_rule": "free tracking and gains preview, no report",
    "profile_prices_gbp": {
     "casual": 39,
     "active": 78,
     "trader": 210
    },
    "profile_scores": {
     "casual": 5.51,
     "active": 5.22,
     "trader": 4.14
    },
    "weighted_unrounded": 5.26
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 704,
    "complete": true,
    "source": "https://coinledger.io/integrations",
    "note": "1,000+ claimed; Revolut by CSV"
   },
   "source": "research/uk/competitors/coinledger.md"
  },
  {
   "id": "txcrypto",
   "name": "TxCrypto",
   "domain": "txcrypto.co.uk",
   "scores": {
    "platforms_25": 15,
    "import_10": 3,
    "uk_tax_rules_50": 30,
    "ease_5": 3,
    "pricing_10": 6
   },
   "total_100": 57,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026); launched 2026, no reviews",
   "platform_detail": {
    "integration_count_10": 0,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": true,
     "kraken": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 15,
    "C": 5,
    "D": 0
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Same coin pooled \"across all platforms\" at an average cost"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "GBP at the transaction-date rate; tax year to 5 April"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Selling, swapping, spending or gifting is taxable, except to a spouse"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same-day rule applied automatically"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "30-day rule applied, with a note on the disposal"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Claims to match HMRC examples CRYPTO22251–22253; CRYPTO22256 (all three rules) not claimed, so inferred"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Gains \"split automatically\" at 30 Oct 2024 (10/20 % and 18/24 %)"
    },
    "B5": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Fees not documented"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Staking guide: income at GBP value on receipt, which becomes the cost; the tool \"calculates both\""
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Airdrops \"usually\" income; no choice documented"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Negligible value explained in a guide; no tool flow"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Loss order explained in a guide; no entry for earlier losses"
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "documented",
     "evidence": "PDF pre-fills SA108 boxes 1–5 for the five figures, not the crypto boxes 13.1–13.5; half"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Every disposal and pool calculation listed; rule noted only where the 30-day rule applied; half, rounded to 2"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "£50,000 / £3,000 in guides, not documented in the report"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Staking income calculated apart from gains, for SA100"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Guide (May 2026) gives £50,000, £3,000 and 31 Jan 2027, but boxes 1–10 and no Real Time CGT"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "\"DeFi losses fully claimable\"; treatment not documented"
    },
    "D2": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Spouse exception stated; no label documented"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "What-if estimates; no Scottish setting found"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "GBP (txcrypto.co.uk): Pro £49 (1,000 transactions a year, 3 tax years), Unlimited £99; one payment for 12 months of access; automatic renewal not stated",
    "tiers_gbp": [
     [
      1000,
      49
     ],
     [
      999999999,
      99
     ]
    ],
    "free_rule": "no free plan with a report",
    "profile_prices_gbp": {
     "casual": 49,
     "active": 49,
     "trader": 99
    },
    "profile_scores": {
     "casual": 4.39,
     "active": 8.32,
     "trader": 8.77
    },
    "weighted_unrounded": 6.4
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 9,
    "complete": true,
    "source": "https://txcrypto.co.uk/",
    "note": "9 exchanges by CSV/Excel (eToro, Coinbase, Kraken, Revolut, Crypto.com, Gemini, Bitstamp, Bitpanda, Uphold); no API, wallets or chains"
   },
   "source": "research/uk/competitors/txcrypto.md"
  },
  {
   "id": "finality",
   "name": "Finality",
   "domain": "finalitycryptotax.com",
   "scores": {
    "platforms_25": 0,
    "import_10": 5,
    "uk_tax_rules_50": 35,
    "ease_5": 3,
    "pricing_10": 10
   },
   "total_100": 53,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026); published UK sample pack read",
   "platform_detail": {
    "integration_count_10": 0,
    "local_exchanges_15": {
     "coinbase": false,
     "revolut": false,
     "kraken": false
    },
    "local_points": 0
   },
   "local_blocks": {
    "A": 10,
    "B": 17,
    "C": 7,
    "D": 1
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Sample: \"One pool per asset across all venues and chains\"; own-wallet moves excluded (homepage: other tokens pooled per chain and contract)"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "ECB rate for each transaction’s date; tax year 6 April – 5 April"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Disposals are \"taxable events, not trades\"; payments for goods and gifts add a disposal; swaps implied"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "\"same-day, then the 30-day bed-and-breakfast rule, then the Section 104 pool\""
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "30-day rule second in the documented order"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Reproduces HMRC examples CRYPTO22251–22252; the combined CRYPTO22256 figures need a test, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "No 2024-25 split documented (sample is 2025-26)"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Disposal fees deducted, buying fees in the pool, token fees split evenly; fiat-fee exclusion not stated"
    },
    "B6": {
     "points": 1,
     "max": 2,
     "status": "documented",
     "evidence": "Fee tokens’ own gain or loss \"is not computed\"; their cost is included"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Inflows classified as income are taxable on receipt; their value as pool cost not stated"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Each incoming transfer classified as income or not"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "No negligible value claim identified"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Brought-forward losses left as a decision before filing"
    },
    "C1": {
     "points": 4,
     "max": 4,
     "status": "documented",
     "evidence": "Working paper puts the five figures against boxes 13.1–13.5"
    },
    "C2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Evidence workbook: one row per disposal with proceeds, cost, fee, gain and \"Matched By\""
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Sample prints no filing test"
    },
    "C4": {
     "points": 0,
     "max": 1,
     "status": "inferred",
     "evidence": "Income classification exists, but the sample has no income total"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "\"reports disposals, not the closing position\""
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No guides; the paper names boxes 13.1–13.8 but not the thresholds, 31 January or Real Time CGT"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D2": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "\"gift to your spouse or civil partner\" adds no disposal"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "GBP per filing year (finalitycryptotax.com/pricing): £20 up to 1,000 transactions, £40 up to 10,000, £60 above; one-off, prior years included; not VAT registered. Its Trustpilot profile says \"From £99 per tax year\" (not used)",
    "tiers_gbp": [
     [
      1000,
      20
     ],
     [
      10000,
      40
     ],
     [
      999999999,
      60
     ]
    ],
    "free_rule": "free scan shows the findings; the figures and working paper are paid",
    "profile_prices_gbp": {
     "casual": 20,
     "active": 20,
     "trader": 40
    },
    "profile_scores": {
     "casual": 10,
     "active": 10,
     "trader": 10
    },
    "weighted_unrounded": 10
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 44,
    "complete": false,
    "source": "https://finalitycryptotax.com/",
    "note": "32 chains by address + 12 exchange CSV formats that are named only inside the app (login, not checked); Coinbase, Revolut and Kraken not confirmed"
   },
   "source": "research/uk/competitors/finality.md"
  },
  {
   "id": "bitcointax",
   "name": "Bitcoin.Tax",
   "domain": "bitcoin.tax",
   "scores": {
    "platforms_25": 10,
    "import_10": 3,
    "uk_tax_rules_50": 29,
    "ease_5": 3,
    "pricing_10": 7
   },
   "total_100": 52,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 0,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": false,
     "kraken": true
    },
    "local_points": 10
   },
   "local_blocks": {
    "A": 10,
    "B": 15,
    "C": 4,
    "D": 0
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "inferred",
     "evidence": "\"Pooling, with same-day and 30-day rules (United Kingdom)\" on every plan; all trades sit in one list, so one pool per coin; scope not stated"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Currency and tax-year dates follow the country chosen at sign-up, with UK tax years listed"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Trading crypto and paying with crypto are taxable events"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "UK pooling includes the same-day rule; same-day buys \"used first\" (UK blog, search snippet)"
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "UK pooling includes the 30-day rule: buys in the following 30 days (pricing page; UK blog snippet)"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "\"Exchange fees are added to the cost basis\"; fiat-fee exclusion and swap split not documented"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Income tab at fair value on receipt; mined coins’ cost basis is that value"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Airdrops not covered"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "unmeasured",
     "evidence": "No SA108 report documented; report formats \"vary per country\""
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Capital gains report per sale; matching rule not documented; half, rounded to 2"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate Income Report"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "inferred",
     "evidence": "Closing Position Report of year-end holdings feeds the next year’s Opening tab; pooled cost not stated"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "UK blog post unreadable (403/502); no other UK filing guidance"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D2": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "US gift rules only; no spouse label"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Forked coins entered as income; no share of the original cost"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No tax estimate"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD per tax year at 0.79 GBP/USD (api.bitcoin.tax/pricing): Premium $59.95 (1,000 trades), Premium Extra $74.95 (5,000), Deluxe $124.95 (10,000), Trader $169 / $259 / $339 / $479 / $679 (50k–1M); fiat purchases unlimited, caps count trading transactions",
    "tiers_gbp": [
     [
      1000,
      47
     ],
     [
      5000,
      59
     ],
     [
      10000,
      99
     ],
     [
      50000,
      134
     ],
     [
      100000,
      205
     ],
     [
      250000,
      268
     ],
     [
      500000,
      378
     ],
     [
      1000000,
      536
     ]
    ],
    "free_rule": "free with reports up to 20 trading transactions per tax year (priced on its first paid tier in the formula)",
    "profile_prices_gbp": {
     "casual": 47,
     "active": 47,
     "trader": 72
    },
    "profile_scores": {
     "casual": 4.57,
     "active": 8.67,
     "trader": 10
    },
    "weighted_unrounded": 6.76
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 23,
    "complete": true,
    "source": "https://support.bitcoin.tax/articles/supported-exchanges",
    "note": "23 exchanges (14 Jul 2026), several defunct; Coinbase and Kraken by API and file; no Revolut (standard CSV only)"
   },
   "source": "research/uk/competitors/bitcoin-tax.md"
  },
  {
   "id": "cryptolens",
   "name": "CryptoLens",
   "domain": "cryptolens.uk",
   "scores": {
    "platforms_25": 5,
    "import_10": 2,
    "uk_tax_rules_50": 28,
    "ease_5": 2,
    "pricing_10": 8
   },
   "total_100": 45,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026); one-person project, pre-revenue, no reviews",
   "platform_detail": {
    "integration_count_10": 0,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": false,
     "kraken": false
    },
    "local_points": 5
   },
   "local_blocks": {
    "A": 9,
    "B": 13,
    "C": 6,
    "D": 0
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "inferred",
     "evidence": "One pool per token across all scanned wallets and chains (\"a single pool\"); exchange accounts not addressed"
    },
    "A2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "GBP and the 2025/26 tax year, but current prices stand in where historical prices are missing; half, rounded to 2"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Swapping, spending and gifting (except to a spouse) are disposals"
    },
    "B1": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Same-day rule \"applied first\""
    },
    "B2": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "Then the 30-day bed-and-breakfast rule, then the Section 104 pool"
    },
    "B3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Order same day → 30 days → pool documented; the combined HMRC figures need a test portfolio, so inferred"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Applies 10/20 % before and 18/24 % after 30 Oct 2024, so gains are split by date; a split shown in the report is not stated"
    },
    "B5": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Fees not documented"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B7": {
     "points": 0,
     "max": 3,
     "status": "unmeasured",
     "evidence": "Only HMRC’s rule is explained; how the engine books rewards is not documented"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B10": {
     "points": 1,
     "max": 2,
     "status": "inferred",
     "evidence": "Pro engine \"includes carry-forward losses\"; order against the £3,000 and the four-year limit not stated; half"
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "inferred",
     "evidence": "SA108-format summary without box numbers; its own SA108 guide points to boxes 14–19 and 25; half"
    },
    "C2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "Pro PDF shows \"which rule matched\" for each disposal, with cost and gain"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "inferred",
     "evidence": "Report flags the £50,000 proceeds test; the £3,000 is applied as an allowance, not stated as a filing test"
    },
    "C4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "No income total documented"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Section 104 pool table with \"the pool’s end-of-year position carrying forward\""
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "SA108 guide (26 May 2026) uses boxes 14–19 and 25, no 13.x; no Real Time CGT service"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Detects DeFi positions; tax treatment not documented"
    },
    "D2": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Spouse exception in guide text only; no label documented"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Shows a CGT estimate at 18/24 %; no Scottish setting found"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "GBP (cryptolens.uk/pricing): SA108 Pack £39 one-off = 90 days of Pro and the SA108 PDF/CSV, no transaction cap stated; priced on the Pack. Pro £4.99/month = £59.88 per 12 months (subscription)",
    "tiers_gbp": [
     [
      999999999,
      39
     ]
    ],
    "free_rule": "free plan: 1 wallet, current-price estimate, no HMRC report",
    "profile_prices_gbp": {
     "casual": 39,
     "active": 39,
     "trader": 39
    },
    "profile_scores": {
     "casual": 5.51,
     "active": 10,
     "trader": 10
    },
    "weighted_unrounded": 7.76
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 31,
    "complete": false,
    "source": "https://cryptolens.uk/exchanges",
    "note": "29 chains by address + Coinbase and Binance by API (spot trades); Kraken \"coming next\"; the pricing page’s \"7 exchange CSVs\" are not named; no Revolut"
   },
   "source": "research/uk/competitors/cryptolens.md"
  },
  {
   "id": "tokentax",
   "name": "TokenTax",
   "domain": "tokentax.co",
   "scores": {
    "platforms_25": 13,
    "import_10": 5,
    "uk_tax_rules_50": 15,
    "ease_5": 5,
    "pricing_10": 4
   },
   "total_100": 42,
   "status": "documentation and inference (no test account; owner, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 3,
    "local_exchanges_15": {
     "coinbase": true,
     "revolut": false,
     "kraken": true
    },
    "local_points": 10
   },
   "local_blocks": {
    "A": 9,
    "B": 3,
    "C": 3,
    "D": 0
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "UK guide (11 Sep 2026): Section 104 pools \"maintained automatically\", one per token"
    },
    "A2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Choosing the UK gives the HMRC forms, so GBP is inferred; the 6 April year is not documented; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "inferred",
     "evidence": "Swaps are taxable in its reports"
    },
    "B1": {
     "points": 0,
     "max": 3,
     "status": "unmeasured",
     "evidence": "Guide explains the rule; the software applying it is not stated"
    },
    "B2": {
     "points": 0,
     "max": 5,
     "status": "unmeasured",
     "evidence": "Guide explains the rule; the software applying it is not stated"
    },
    "B3": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B5": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B7": {
     "points": 3,
     "max": 3,
     "status": "inferred",
     "evidence": "Mining and Staking Income Report; receipt value as cost"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B9": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "B10": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "documented",
     "evidence": "No SA108 figures, only an International Gain / Loss Report"
    },
    "C2": {
     "points": 2,
     "max": 3,
     "status": "inferred",
     "evidence": "Disposals listed without the matching rule; half, rounded down (half of 3 rounded to 2, v1.1)"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C4": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Separate income report"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "C6": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Guide current (£3,000, 18/24 %, £50,000, 31 Jan, Real Time CGT) but names no 13.x boxes"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D2": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    },
    "D4": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not documented"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD per tax year ($49 / $199 / $1,999 / $3,499, tokentax.co/pricing) converted at 0.79 GBP/USD",
    "tiers_gbp": [
     [
      100,
      39
     ],
     [
      5000,
      157
     ],
     [
      20000,
      1579
     ],
     [
      30000,
      2764
     ]
    ],
    "free_rule": "no free plan",
    "profile_prices_gbp": {
     "casual": 39,
     "active": 157,
     "trader": 631
    },
    "profile_scores": {
     "casual": 5.51,
     "active": 2.6,
     "trader": 1.38
    },
    "weighted_unrounded": 3.93
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false,
    "entries": 95,
    "complete": true,
    "source": "https://tokentax.co/integrations",
    "note": "\"100+\" on the homepage, 95 logos counted; Kraken by CSV only (no new API connections); no Revolut"
   },
   "source": "research/uk/competitors/tokentax.md"
  }
 ],
 "reviewed_not_ranked": [
  {
   "id": "zenledger",
   "name": "ZenLedger",
   "domain": "zenledger.io",
   "total_100": 35,
   "scores": {
    "platforms_25": 20,
    "import_10": 5,
    "uk_tax_rules_50": 8,
    "ease_5": 2,
    "pricing_10": null
   },
   "local_blocks": {
    "A": 3,
    "B": 3,
    "C": 2,
    "D": 0
   },
   "reason": "8/50 on UK rules (floor 10): no documented Section 104 pool or same-day / 30-day matching and an IRS-only report list; GBP can be set",
   "source": "research/uk/competitors/zenledger.md (checked 2026-11-01)"
  },
  {
   "id": "awaken",
   "name": "Awaken",
   "domain": "awaken.tax",
   "total_100": 30,
   "scores": {
    "platforms_25": 15,
    "import_10": 5,
    "uk_tax_rules_50": 8,
    "ease_5": 2,
    "pricing_10": null
   },
   "local_blocks": {
    "A": 3,
    "B": 4,
    "C": 1,
    "D": 0
   },
   "reason": "8/50 on UK rules (floor 10): per-wallet FIFO / LIFO / HIFO, no Section 104 pool, no matching rules, no SA108 figures",
   "source": "research/uk/competitors/awaken.md (checked 2026-11-01)"
  }
 ],
 "reviewed_not_ranked_note": "BittyTax applies the UK matching rules well (41/50) but is a free program you run yourself from the command line, so it is listed rather than ranked; ZenLedger and Awaken document no Section 104 pool and no UK report. Totals are platforms + import + ease + UK rules; price is not compared.",
 "personalization": "GET params on /uk/ and /uk/en/: tx, years, wallets, nosub=1, platforms=comma,separated,slugs (slugs in catalog.json; prefix x: for untracked free-text)"
}