{
 "country": "NO",
 "country_name": "Norway",
 "generated": "2026-11-01",
 "last_verified": "2026-10-31",
 "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 Norwegian exchanges: Firi, NBX, K33 Markets, 5 each, API or file",
  "local_slots": [
   "firi",
   "nbx",
   "k33"
  ],
  "local_rubric": [
   {
    "id": "A1",
    "block": "A",
    "criterion": "Per-unit cost basis with your choice of units",
    "how": "Every unit keeps its own purchase price and you decide which units a sale uses (HIFO, FIFO or another per-lot method); lots survive transfers between your own wallets. A pooled average cost = 0.",
    "type": "Binary",
    "points": 5
   },
   {
    "id": "A2",
    "block": "A",
    "criterion": "Norwegian product (Norwegian + NOK)",
    "how": "App and tax report in Norwegian, NOK as base currency with every value converted on the transaction date. Half credit if only the report is in Norwegian.",
    "type": "Measurable",
    "points": 3
   },
   {
    "id": "A3",
    "block": "A",
    "criterion": "Crypto-to-crypto counted as a sale",
    "how": "Swapping, trading or paying with crypto realises the coin given up at the NOK value of what you received. Tax-free swaps = 0.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "B1",
    "block": "B",
    "criterion": "Wealth value: what you held at the end of 31 December, at the 1 January price",
    "how": "Formuesverdi = units held at the end of 31 December × the price on 1 January. Test: buy 1 BTC on 15 December, sell half on 2 January; the report must still show 1 BTC. The 31 December price gets half.",
    "type": "Measurable",
    "points": 4
   },
   {
    "id": "B2",
    "block": "B",
    "criterion": "Gains and losses as two totals, per lot, never netted",
    "how": "The card has one field for gains and one for losses: a sale that draws on a gain lot and a loss lot adds to both. Test: 3 BTC sold over a 300 000 and a 1 200 000 lot.",
    "type": "Measurable",
    "points": 3
   },
   {
    "id": "B3",
    "block": "B",
    "criterion": "Fee on a transfer between your own wallets: a loss of its cost",
    "how": "The transfer itself is not a sale; the fee coins leave at exit value 0, so the loss equals what they cost. Selling the fee at market value = 0; ignoring the fee = 1.",
    "type": "Measurable",
    "points": 3
   },
   {
    "id": "B4",
    "block": "B",
    "criterion": "Trading fees on both sides",
    "how": "A purchase fee is part of the cost; a sale fee reduces the proceeds. Tested with a fiat purchase fee and a fiat sale fee.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "B5",
    "block": "B",
    "criterion": "Income at receipt becomes the cost basis",
    "how": "Staking, airdrops and other rewards are income at the NOK value when received, and that value is the cost of the later sale.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "B6",
    "block": "B",
    "criterion": "Mining as its own income figure",
    "how": "Mined coins are income at receipt and reported in Inntekt fra mining, apart from other crypto income.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "B7",
    "block": "B",
    "criterion": "Fiat money never on the crypto card",
    "how": "Euro, dollars or kroner are not virtual assets: no fiat row in the wealth value and no fiat income in the crypto income fields.",
    "type": "Measurable",
    "points": 2
   },
   {
    "id": "B8",
    "block": "B",
    "criterion": "Lost, stolen or scammed coins as a loss of cost",
    "how": "A label that removes the asset with a loss equal to its purchase price, so the loss can be claimed once the conditions are met.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "B9",
    "block": "B",
    "criterion": "Whole-krone figures",
    "how": "The report’s figures in whole kroner, each rounded once; rows and totals agree.",
    "type": "Measurable",
    "points": 1
   },
   {
    "id": "B10",
    "block": "B",
    "criterion": "NOK at the transaction date",
    "how": "Fiat trades converted at the exchange rate of the moment; currency effects inside the gain, never a separate FX result.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "B11",
    "block": "B",
    "criterion": "Cost price when there is no market price",
    "how": "A coin or NFT with no year-end market value is valued at its cost price in the wealth value, not at 0 or left out.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "C1",
    "block": "C",
    "criterion": "The crypto card’s figures under the official field names",
    "how": "Formuesverdi, Skattepliktig gevinst, Fradragsberettiget tap, Andre inntekter fra virtuelle eiendeler, Inntekt fra mining — named as the return names them, ready to copy. Old or home-made names = half.",
    "type": "Binary",
    "points": 4
   },
   {
    "id": "C2",
    "block": "C",
    "criterion": "One row per currency for the per-asset route",
    "how": "Name, amount at 31 December, wealth value, gain, loss and income per currency, plus the wallet or exchange, for filers who declare each asset.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "C3",
    "block": "C",
    "criterion": "An attachment for the summed route",
    "how": "A PDF to upload with the summed figures and the per-asset detail, stating the price date used for the wealth value.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "C5",
    "block": "C",
    "criterion": "Filing guidance in Norwegian",
    "how": "Maintained guidance naming the card, the two routes and the attachment, current for the latest return.",
    "type": "Binary",
    "points": 1
   },
   {
    "id": "C6",
    "block": "C",
    "criterion": "Figures transferred straight into the tax return",
    "how": "The tool writes the crypto card into your return at Skatteetaten after an ID-porten login; you check and submit.",
    "type": "Binary",
    "points": 3
   },
   {
    "id": "D1",
    "block": "D",
    "criterion": "DeFi as Skatteetaten reads it",
    "how": "Wrapping and liquidity-pool deposits and withdrawals are sales; pool returns and governance tokens are income. Documented handling, not a generic “DeFi supported” claim.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "D2",
    "block": "D",
    "criterion": "Gifts: no gain for the giver",
    "how": "Giving crypto away is not a sale with a gain; a label for gifts given and received that does this. A default that books a gain on a gift = 0.",
    "type": "Binary",
    "points": 2
   },
   {
    "id": "D3",
    "block": "D",
    "criterion": "Wealth values you can see and change",
    "how": "Each year-end value shows its basis and you can set a value per currency.",
    "type": "Binary",
    "points": 1
   }
  ],
  "local_rubric_blocks": {
   "A": 10,
   "B": 24,
   "C": 11,
   "D": 5
  },
  "scoring_rule": "binary rows from documentation, all or nothing; measurable rows only when verified by a test portfolio (Kryptosekken KS-01/KS-03 + N28, Coinpanda CP-01–03, CoinTracking CT-01–03, MinKrypto MK-01 by manual entry; owner, 31 Oct 2026) or, for Divly, the 2026 review tests (N01–N28) and the 2026 report update for the rows it changes (B1, B3, B7, C1, C3, D3; the page is published once that update is live); Koinly and Summ from documentation only with their measurable rows at 0 (E7); direct transfer C6 = 3 points, C3 and C5 1 each (owner, 31 Oct 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": "NOK; USD × 10.08 and EUR × 11.84 (Norges Bank, 31 Dec 2025)",
  "qualifying_rule": "ranked only if the Norwegian tax rules score is at least 10/50 (the floor chosen by the owner); in practice the tool must produce the gains figure, the losses figure and the wealth value for the crypto card; tools under the floor 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 fact sheets checked 2026-10-30/31; Divly scored on its 2026 report update (items 2, 3, 4, 6); the page is published once that update is live",
  "evidence_date": "2026-10-31",
  "sources": "comparison-guides/crypto-tax-benchmark/rubrics/norway-rubric-draft.md (v3.1), norway-scores.md (v1.2); comparison-guides/divly-comparison-guides/norway/ (competitors/*.md §12 = owner tests, kryptosekken-tests/, coinpanda-tests/, cointracking-tests/, minkrypto-tests/ results, phase0-decisions.md, youri-answers.json); Countries/Norway/norway_tax_datastore.md (F001–F110); Countries/RAG/norway_product_capabilities.md v2.0; Countries/Norway/product-update-2026/Update 2026 Q4 - Norway.md",
  "pricing_cheapest_nok": {
   "casual": 49,
   "active": 199,
   "trader": 682
  },
  "pricing_median_nok": {
   "casual": 494,
   "active": 999,
   "trader": 2238
  },
  "pricing_benchmark_nok": {
   "casual": 247,
   "active": 500,
   "trader": 1119
  }
 },
 "ranking": [
  {
   "id": "divly",
   "name": "Divly",
   "domain": "divly.com",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "no_tax_rules_50": 47,
    "ease_5": 5,
    "pricing_10": 6
   },
   "total_100": 93,
   "status": "2026 review tests + 2026 report update (v1.2, 1 Nov 2026; published once the update is live)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "firi": true,
     "nbx": true,
     "k33": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 24,
    "C": 8,
    "D": 5
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "verified",
     "evidence": "Test N28: HIFO per lot, same figures as Kryptosekken (NO-C003)"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "verified",
     "evidence": "Norwegian report and NOK (NO-C001); app in Norwegian per the owner (31 Oct 2026)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "NO-C011"
    },
    "B1": {
     "points": 4,
     "max": 4,
     "status": "verified",
     "evidence": "2026 report update, item 6: 1 January price"
    },
    "B2": {
     "points": 3,
     "max": 3,
     "status": "verified",
     "evidence": "Test N28: 700 000 / 400 000, not netted"
    },
    "B3": {
     "points": 3,
     "max": 3,
     "status": "verified",
     "evidence": "2026 report update, item 2: fee leaves at exit value 0"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "Export shows the fees in cost and proceeds (NO-C012)"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "Test N06"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "NO-C007"
    },
    "B7": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "2026 report update, item 4: fiat off the card"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "NO-C016"
    },
    "B9": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "NO-C004"
    },
    "B10": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "NO-C001"
    },
    "B11": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "NO-C021"
    },
    "C1": {
     "points": 4,
     "max": 4,
     "status": "verified",
     "evidence": "2026 report update, item 3: the official field names"
    },
    "C2": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "Option 2 (NO-C006)"
    },
    "C3": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "PDF attachment (NO-C001); price date per the 2026 report update, item 6"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "Help article + Norway guide, kept current by the owner"
    },
    "C6": {
     "points": 0,
     "max": 3,
     "status": "verified",
     "evidence": "Not a feature and not assumed (owner, 30 Oct 2026)"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "Wraps, LP, governance tokens (card N15); no on-chain import test yet"
    },
    "D2": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "Gifted Away, no gain (NO-C017)"
    },
    "D3": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "2026 report update, item 6"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "NOK list prices (divly.com/no/pricing, 31 Oct 2026); no subscription",
    "tiers_nok": {
     "100": 399,
     "1000": 999,
     "10000": 1999,
     "100000": 3999
    },
    "free_rule": "import and portfolio tracking free up to 25 000 transactions; the report is paid per tax year",
    "profile_prices_nok": {
     "casual": 399,
     "active": 999,
     "trader": 1999
    },
    "profile_scores": {
     "casual": 6.19,
     "active": 5,
     "trader": 5.6
    },
    "weighted_unrounded": 5.65
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 179,
    "complete": true,
    "source": "https://divly.com/en/wallets-and-exchanges",
    "note": "owner states 200+; the Norwegian list names 183 (30 Oct 2026); 179 scraped 6 Aug 2026"
   }
  },
  {
   "id": "kryptosekken",
   "name": "Kryptosekken",
   "domain": "kryptosekken.no",
   "scores": {
    "platforms_25": 20,
    "import_10": 5,
    "no_tax_rules_50": 48,
    "ease_5": 5,
    "pricing_10": 6
   },
   "total_100": 84,
   "status": "tested (KS-01, KS-03, N28; v1.2, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 5,
    "local_exchanges_15": {
     "firi": true,
     "nbx": true,
     "k33": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 10,
    "B": 22,
    "C": 11,
    "D": 5
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "verified",
     "evidence": "KS-03: HPFU per lot; FIFU/SIFU/HPFU/LPFU chosen per year (§4)"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "documented",
     "evidence": "App and report in Norwegian, NOK (§2)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Kjøreregler (§4)"
    },
    "B1": {
     "points": 4,
     "max": 4,
     "status": "verified",
     "evidence": "KS-03: Kursliste 1 January"
    },
    "B2": {
     "points": 3,
     "max": 3,
     "status": "verified",
     "evidence": "N28: 700 000 / 400 000"
    },
    "B3": {
     "points": 3,
     "max": 3,
     "status": "verified",
     "evidence": "KS-01: fee at exit value 0"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "KS-03"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "KS-03"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "KS-03: Mining type, own field"
    },
    "B7": {
     "points": 0,
     "max": 2,
     "status": "verified (failed)",
     "evidence": "KS-03: euro counted by default"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "KS-03: Tap type, loss of cost"
    },
    "B9": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "KS-03"
    },
    "B10": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Norges Bank rates (§4)"
    },
    "B11": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "“vi da bruker inngangsverdi” (§4)"
    },
    "C1": {
     "points": 4,
     "max": 4,
     "status": "documented",
     "evidence": "Figures under the card’s names (§3)"
    },
    "C2": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "KS-03: “Summert per valuta”"
    },
    "C3": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "KS-03: vedlegg + Kursliste"
    },
    "C5": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "“Utfylling av kryptovaluta i skattemeldingen” (§3)"
    },
    "C6": {
     "points": 3,
     "max": 3,
     "status": "verified",
     "evidence": "Draft placed in the return (owner’s account, §12)"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "LP guide 2026-04-25 and DeFi guide 2026-05-10 (manual entry)"
    },
    "D2": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Gave-Ut type (§4)"
    },
    "D3": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Year-end price editable per currency (§4)"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "NOK incl. VAT (prisliste, 30 Oct 2026); the free tier is priced on the first paid tier in the formula",
    "tiers_nok": [
     [
      1000,
      600
     ],
     [
      5000,
      1700
     ],
     [
      10000,
      2800
     ],
     [
      25000,
      4500
     ]
    ],
    "free_rule": "free up to 100 transactions per tax year, calculation and reports included",
    "profile_prices_nok": {
     "casual": 600,
     "active": 600,
     "trader": 2067
    },
    "profile_scores": {
     "casual": 4.12,
     "active": 8.32,
     "trader": 5.41
    },
    "weighted_unrounded": 5.93
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": true
   },
   "integrations_list": {
    "imported": true,
    "entries": 129,
    "complete": true,
    "source": "https://www.kryptosekken.no/importliste",
    "note": "130 names; the method per source is not published; KoinlyIB left out as a migration import"
   }
  },
  {
   "id": "coinpanda",
   "name": "Coinpanda",
   "domain": "coinpanda.io",
   "scores": {
    "platforms_25": 25,
    "import_10": 5,
    "no_tax_rules_50": 23,
    "ease_5": 5,
    "pricing_10": 3
   },
   "total_100": 61,
   "status": "tested (CP-01–03; v1.2, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "firi": true,
     "nbx": true,
     "k33": true
    },
    "local_points": 15
   },
   "local_blocks": {
    "A": 7,
    "B": 13,
    "C": 1,
    "D": 2
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "FIFO/LIFO/HIFO/ACB per lot (§4)"
    },
    "A2": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "Site in Norwegian; app and report in English (§2)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Settings: crypto-to-crypto taxable (§11)"
    },
    "B1": {
     "points": 2,
     "max": 4,
     "status": "verified (partly met)",
     "evidence": "CP-01/02/03: 31 December price"
    },
    "B2": {
     "points": 0,
     "max": 3,
     "status": "verified (failed)",
     "evidence": "CP-02: netted into one figure"
    },
    "B3": {
     "points": 1,
     "max": 3,
     "status": "verified (partly met)",
     "evidence": "CP-01: fee ignored with the toggle off, sold at market value by default"
    },
    "B4": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "CP-03"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "CP-03"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "CP-03"
    },
    "B7": {
     "points": 0,
     "max": 2,
     "status": "verified (failed)",
     "evidence": "CP-03: euro interest counted as income"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "verified (failed)",
     "evidence": "CP-03: “not included in your capital gains”"
    },
    "B9": {
     "points": 0,
     "max": 1,
     "status": "verified (failed)",
     "evidence": "CP-03: øre"
    },
    "B10": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Converted at the transaction (§4)"
    },
    "B11": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "NFT holdings at cost basis (§3)"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "documented",
     "evidence": "2021 RF-1159B layout (§3)"
    },
    "C2": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "RF-1159B rows lack income and wallet (§3)"
    },
    "C3": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "CP-01: Complete Tax Report, “December 31”"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Norwegian guides last updated 2024 (§2)"
    },
    "C6": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "None"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Liquidity transactions taxable by default (§4)"
    },
    "D2": {
     "points": 0,
     "max": 2,
     "status": "verified (failed)",
     "evidence": "CP-03: gift realised by default"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "None"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD list prices ($79 / $149 / $289 / $499 on /no/pricing) converted at 10.08 NOK/USD",
    "tiers_nok": [
     [
      100,
      796
     ],
     [
      1000,
      1502
     ],
     [
      3000,
      2913
     ],
     [
      20000,
      5030
     ]
    ],
    "free_rule": "free up to 25 transactions, preview only",
    "profile_prices_nok": {
     "casual": 796,
     "active": 1502,
     "trader": 4324
    },
    "profile_scores": {
     "casual": 3.1,
     "active": 3.33,
     "trader": 2.59
    },
    "weighted_unrounded": 3.14
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 1185,
    "complete": false,
    "source": "https://coinpanda.io/integrations/"
   }
  },
  {
   "id": "minkrypto",
   "name": "MinKrypto",
   "domain": "minkrypto.no",
   "scores": {
    "platforms_25": 10,
    "import_10": 5,
    "no_tax_rules_50": 28,
    "ease_5": 3,
    "pricing_10": 10
   },
   "total_100": 56,
   "status": "tested (MK-01, manual entry; v1.2, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 0,
    "local_exchanges_15": {
     "firi": true,
     "nbx": true,
     "k33": false
    },
    "local_points": 10
   },
   "local_blocks": {
    "A": 10,
    "B": 9,
    "C": 4,
    "D": 5
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "verified",
     "evidence": "MK-01: FIFO per lot (FIFO or LIFO selectable)"
    },
    "A2": {
     "points": 3,
     "max": 3,
     "status": "verified",
     "evidence": "MK-01: app and report in Norwegian, NOK"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Report methodology §10"
    },
    "B1": {
     "points": 0,
     "max": 4,
     "status": "verified (failed)",
     "evidence": "MK-01: 1 January price date, but the report held 2 BTC where 1 remained"
    },
    "B2": {
     "points": 0,
     "max": 3,
     "status": "verified (failed)",
     "evidence": "MK-01: netted, loss field 0"
    },
    "B3": {
     "points": 1,
     "max": 3,
     "status": "verified (partly met)",
     "evidence": "MK-01: transfer fee ignored"
    },
    "B4": {
     "points": 1,
     "max": 2,
     "status": "verified (partly met)",
     "evidence": "MK-01: sale fee off the proceeds; purchase fee not in the cost"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "MK-01: staking 260.67 in Andre inntekter"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Mining reward tag, own field"
    },
    "B7": {
     "points": 0,
     "max": 2,
     "status": "verified (failed)",
     "evidence": "MK-01: euro interest counted; EUR and NOK cash in Formuesverdi"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "verified (failed)",
     "evidence": "MK-01: lost coins booked as a gain at market value"
    },
    "B9": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "MK-01: whole kroner in the PDF"
    },
    "B10": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Norges Bank rates (report methodology §1)"
    },
    "B11": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "User sets “en rimelig markedspris”; no cost-price rule"
    },
    "C1": {
     "points": 2,
     "max": 4,
     "status": "verified (partly met)",
     "evidence": "MK-01: official names except “Mining inntekt”"
    },
    "C2": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "MK-01: Virtuelle eiendeler sheet per currency and wallet"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "verified (failed)",
     "evidence": "MK-01: PDF holds only the summed figures, no price date"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Guide dated for the 2024 return, old field names"
    },
    "C6": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "None"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Report methodology §10–11"
    },
    "D2": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "MK-01: Donation, no gain"
    },
    "D3": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "MK-01: price source per row; year-end prices editable"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "NOK (minkrypto.no/priser, 31 Oct 2026); one purchase per tax year, earlier years free with it",
    "tiers_nok": [
     [
      100,
      49
     ],
     [
      1000,
      199
     ],
     [
      3000,
      349
     ],
     [
      7500,
      699
     ],
     [
      999999999,
      999
     ]
    ],
    "free_rule": "free account and import; the report is paid per tax year",
    "profile_prices_nok": {
     "casual": 49,
     "active": 199,
     "trader": 682
    },
    "profile_scores": {
     "casual": 10,
     "active": 10,
     "trader": 10
    },
    "weighted_unrounded": 10
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": true
   },
   "integrations_list": {
    "imported": true,
    "entries": 25,
    "complete": true,
    "source": "https://www.minkrypto.no/borser",
    "note": "25 sources in the app (31 Oct 2026); the public page lists 13; no file import"
   }
  },
  {
   "id": "koinly",
   "name": "Koinly",
   "domain": "koinly.io",
   "scores": {
    "platforms_25": 20,
    "import_10": 10,
    "no_tax_rules_50": 14,
    "ease_5": 3,
    "pricing_10": 5
   },
   "total_100": 52,
   "status": "documentation only (E7; v1.2, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "firi": true,
     "nbx": false,
     "k33": true
    },
    "local_points": 10
   },
   "local_blocks": {
    "A": 7,
    "B": 2,
    "C": 1,
    "D": 4
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "FIFO and others per lot (§4)"
    },
    "A2": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "App and reports in English (§2)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "§4"
    },
    "B1": {
     "points": 0,
     "max": 4,
     "status": "unmeasured",
     "evidence": "Documentation only (E7)"
    },
    "B2": {
     "points": 0,
     "max": 3,
     "status": "unmeasured",
     "evidence": "Documentation only (E7)"
    },
    "B3": {
     "points": 0,
     "max": 3,
     "status": "unmeasured",
     "evidence": "Documentation only (E7)"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Documentation only (E7)"
    },
    "B5": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Documentation only (E7)"
    },
    "B6": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "One toggle and one income total with staking (§4)"
    },
    "B7": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Documentation only (E7)"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "“consult with your tax advisor” (§4)"
    },
    "B9": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Documentation only (E7)"
    },
    "B10": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "ECB via USD (§4)"
    },
    "B11": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "documented",
     "evidence": "Retired RF1159 only (§3)"
    },
    "C2": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "No per-currency Norwegian rows (§3)"
    },
    "C3": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "Complete Tax Report, “last day of the tax year” (§3)"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "None (§2)"
    },
    "C6": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "None"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "“Realize gains on liquidity transactions” (§4)"
    },
    "D2": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "Gift tag, no gain (§4)"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "None"
    }
   },
   "pricing": {
    "model": "per_year",
    "currency_note": "USD list prices ($49 / $99 / $199 / $299) converted at 10.08 NOK/USD; never NOK",
    "tiers_nok": [
     [
      100,
      494
     ],
     [
      1000,
      998
     ],
     [
      3000,
      2006
     ],
     [
      100000,
      3014
     ]
    ],
    "free_rule": "free preview until a report is needed",
    "profile_prices_nok": {
     "casual": 494,
     "active": 998,
     "trader": 2678
    },
    "profile_scores": {
     "casual": 5,
     "active": 5.01,
     "trader": 4.18
    },
    "weighted_unrounded": 4.92
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 986,
    "complete": false,
    "source": "https://koinly.io/integrations/"
   }
  },
  {
   "id": "cointracking",
   "name": "CoinTracking",
   "domain": "cointracking.info",
   "scores": {
    "platforms_25": 15,
    "import_10": 10,
    "no_tax_rules_50": 20,
    "ease_5": 1,
    "pricing_10": 4
   },
   "total_100": 50,
   "status": "tested (CT-01–03; v1.2, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "firi": true,
     "nbx": false,
     "k33": false
    },
    "local_points": 5
   },
   "local_blocks": {
    "A": 7,
    "B": 8,
    "C": 1,
    "D": 4
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "verified",
     "evidence": "CT-01: per lot"
    },
    "A2": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "No Norwegian (§2)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "§4"
    },
    "B1": {
     "points": 2,
     "max": 4,
     "status": "verified (partly met)",
     "evidence": "CT-02/03: labelled 31 December"
    },
    "B2": {
     "points": 0,
     "max": 3,
     "status": "verified (failed)",
     "evidence": "CT-02: netted"
    },
    "B3": {
     "points": 0,
     "max": 3,
     "status": "verified (failed)",
     "evidence": "CT-01: fee sold at market value"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "verified (failed)",
     "evidence": "CT-03: fiat fees ignored"
    },
    "B5": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "CT-03"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "CT-03"
    },
    "B7": {
     "points": 0,
     "max": 2,
     "status": "verified (failed)",
     "evidence": "CT-03: euro income and wealth"
    },
    "B8": {
     "points": 0,
     "max": 1,
     "status": "verified (failed)",
     "evidence": "CT-03: excluded from the gains"
    },
    "B9": {
     "points": 0,
     "max": 1,
     "status": "verified (failed)",
     "evidence": "CT-03: øre"
    },
    "B10": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "§4"
    },
    "B11": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "documented",
     "evidence": "No card field names (§3)"
    },
    "C2": {
     "points": 0,
     "max": 2,
     "status": "verified (failed)",
     "evidence": "CT-02: holdings table without per-currency gain, loss or income"
    },
    "C3": {
     "points": 1,
     "max": 1,
     "status": "verified",
     "evidence": "CT-02: tax export, “31 Dec 2025”"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "English guide, EUR examples (§2)"
    },
    "C6": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "None"
    },
    "D1": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "LP deposits as disposals setting (§4)"
    },
    "D2": {
     "points": 2,
     "max": 2,
     "status": "verified",
     "evidence": "CT-03: gift kept out of gains"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "None"
    }
   },
   "pricing": {
    "model": "all_time_transaction_count",
    "currency_note": "EUR list prices converted at 11.84 NOK/EUR; billed in USD; lifetime transaction cap; auto-renews",
    "tiers_nok": [
     [
      200,
      462
     ],
     [
      3500,
      1527
     ],
     [
      20000,
      2593
     ],
     [
      50000,
      3422
     ],
     [
      100000,
      4606
     ],
     [
      999999999,
      9105
     ]
    ],
    "free_rule": "200 lifetime transactions, no tax reports",
    "profile_prices_nok": {
     "casual": 462,
     "active": 1527,
     "trader": 2238
    },
    "profile_scores": {
     "casual": 5.35,
     "active": 3.27,
     "trader": 5
    },
    "weighted_unrounded": 4.48
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 301,
    "complete": true,
    "source": "https://cointracking.info/imports"
   }
  },
  {
   "id": "summ",
   "name": "Summ",
   "domain": "summ.com",
   "scores": {
    "platforms_25": 10,
    "import_10": 10,
    "no_tax_rules_50": 12,
    "ease_5": 5,
    "pricing_10": 4
   },
   "total_100": 41,
   "status": "documentation only (v1.2, 1 Nov 2026)",
   "platform_detail": {
    "integration_count_10": 10,
    "local_exchanges_15": {
     "firi": false,
     "nbx": false,
     "k33": false
    },
    "local_points": 0
   },
   "local_blocks": {
    "A": 7,
    "B": 5,
    "C": 0,
    "D": 0
   },
   "local_rows": {
    "A1": {
     "points": 5,
     "max": 5,
     "status": "documented",
     "evidence": "§4"
    },
    "A2": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "NOK fixed by country; app in English (§2)"
    },
    "A3": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "§4"
    },
    "B1": {
     "points": 0,
     "max": 4,
     "status": "unmeasured",
     "evidence": "2023 guide mentions a 1 January opening value; not tested"
    },
    "B2": {
     "points": 0,
     "max": 3,
     "status": "unmeasured",
     "evidence": "Not tested"
    },
    "B3": {
     "points": 0,
     "max": 3,
     "status": "unmeasured",
     "evidence": "Not tested"
    },
    "B4": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not tested"
    },
    "B5": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not tested"
    },
    "B6": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "§4"
    },
    "B7": {
     "points": 0,
     "max": 2,
     "status": "unmeasured",
     "evidence": "Not tested"
    },
    "B8": {
     "points": 1,
     "max": 1,
     "status": "documented",
     "evidence": "§4"
    },
    "B9": {
     "points": 0,
     "max": 1,
     "status": "unmeasured",
     "evidence": "Not tested"
    },
    "B10": {
     "points": 2,
     "max": 2,
     "status": "documented",
     "evidence": "§4"
    },
    "B11": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Not documented"
    },
    "C1": {
     "points": 0,
     "max": 4,
     "status": "documented",
     "evidence": "No Norway report"
    },
    "C2": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "No Norway report"
    },
    "C3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "No Norway report"
    },
    "C5": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "Guide in English, dated 2023"
    },
    "C6": {
     "points": 0,
     "max": 3,
     "status": "documented",
     "evidence": "None"
    },
    "D1": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "No Norwegian handling documented"
    },
    "D2": {
     "points": 0,
     "max": 2,
     "status": "documented",
     "evidence": "Receiver side only documented"
    },
    "D3": {
     "points": 0,
     "max": 1,
     "status": "documented",
     "evidence": "None"
    }
   },
   "pricing": {
    "model": "subscription",
    "currency_note": "EUR annual subscription (€49 / €99 / €249 / €499) converted at 11.84 NOK/EUR; auto-renews; the transaction cap counts every year together",
    "tiers_nok": [
     [
      100,
      580
     ],
     [
      1000,
      1172
     ],
     [
      10000,
      2948
     ],
     [
      100000,
      5908
     ]
    ],
    "free_rule": "free plan: sample reports only",
    "profile_prices_nok": {
     "casual": 580,
     "active": 1172,
     "trader": 2948
    },
    "profile_scores": {
     "casual": 4.26,
     "active": 4.26,
     "trader": 3.8
    },
    "weighted_unrounded": 4.21
   },
   "flags": {
    "subscription": true,
    "site_operator": false,
    "partly_vendor_claimed": true
   },
   "integrations_list": {
    "imported": true,
    "entries": 3512,
    "complete": true,
    "source": "https://summ.com/se/integrations"
   }
  }
 ],
 "reviewed_not_ranked": [
  {
   "id": "cointracker",
   "name": "CoinTracker",
   "domain": "cointracker.com",
   "total_100": 34,
   "scores": {
    "platforms_25": 10,
    "import_10": 10,
    "no_tax_rules_50": 9,
    "ease_5": 5,
    "pricing_10": null
   },
   "reason": "9/50 on Norwegian rules (floor 10): FIFO/HIFO/LIFO per lot, swaps taxed, gifts without a gain; nothing Norwegian: no NOK report, no card fields, no Firi, NBX or K33",
   "source": "divly-comparison-guides/norway/competitors/cointracker.md (checked 2026-10-31)"
  },
  {
   "id": "waltio",
   "name": "Waltio",
   "domain": "waltio.com",
   "total_100": 31,
   "scores": {
    "platforms_25": 10,
    "import_10": 10,
    "no_tax_rules_50": 7,
    "ease_5": 4,
    "pricing_10": null
   },
   "reason": "7/50 on Norwegian rules (floor 10): generic profile, per-lot method and swaps taxed; no Norway report, guide or exchange",
   "source": "divly-comparison-guides/norway/competitors/waltio.md (checked 2026-10-31)"
  },
  {
   "id": "coinledger",
   "name": "CoinLedger",
   "domain": "coinledger.io",
   "total_100": 30,
   "scores": {
    "platforms_25": 10,
    "import_10": 10,
    "no_tax_rules_50": 7,
    "ease_5": 3,
    "pricing_10": null
   },
   "reason": "7/50 on Norwegian rules (floor 10): per-lot method and swaps taxed; no Norway report, guide or exchange",
   "source": "divly-comparison-guides/norway/competitors/coinledger.md (checked 2026-10-31)"
  },
  {
   "id": "blockpit",
   "name": "Blockpit",
   "domain": "blockpit.io",
   "total_100": 29,
   "scores": {
    "platforms_25": 10,
    "import_10": 10,
    "no_tax_rules_50": 7,
    "ease_5": 2,
    "pricing_10": null
   },
   "reason": "7/50 on Norwegian rules (floor 10): per-lot method and swaps taxed; no Norway report, guide or exchange; app in English and German",
   "source": "divly-comparison-guides/norway/competitors/blockpit.md (checked 2026-10-31)"
  },
  {
   "id": "awaken",
   "name": "Awaken",
   "domain": "awaken.tax",
   "total_100": 19,
   "scores": {
    "platforms_25": 5,
    "import_10": 5,
    "no_tax_rules_50": 7,
    "ease_5": 2,
    "pricing_10": null
   },
   "reason": "7/50 on Norwegian rules (floor 10): per-lot method and swaps taxed; no Norway report, guide or exchange",
   "source": "divly-comparison-guides/norway/competitors/awaken.md (checked 2026-10-31)"
  },
  {
   "id": "recap",
   "name": "Recap",
   "domain": "recap.io",
   "total_100": 15,
   "scores": {
    "platforms_25": 3,
    "import_10": 10,
    "no_tax_rules_50": 2,
    "ease_5": 0,
    "pricing_10": null
   },
   "reason": "2/50 on Norwegian rules (floor 10): UK and US only; no Norwegian figures",
   "source": "divly-comparison-guides/norway/competitors/recap.md (checked 2026-10-31)"
  },
  {
   "id": "comptacrypto",
   "name": "Comptacrypto",
   "domain": "comptacrypto.fr",
   "total_100": 19,
   "scores": {
    "platforms_25": 10,
    "import_10": 5,
    "no_tax_rules_50": 0,
    "ease_5": 4,
    "pricing_10": null
   },
   "reason": "0/50 on Norwegian rules (floor 10): files for France only",
   "source": "czechia index (28 Oct 2026); platform points for Norway = integration count only"
  },
  {
   "id": "moneyviz",
   "name": "Moneyviz",
   "domain": "moneyviz.it",
   "total_100": 17,
   "scores": {
    "platforms_25": 10,
    "import_10": 5,
    "no_tax_rules_50": 0,
    "ease_5": 2,
    "pricing_10": null
   },
   "reason": "0/50 on Norwegian rules (floor 10): files for Italy only",
   "source": "czechia index (28 Oct 2026); platform points for Norway = integration count only"
  },
  {
   "id": "kryptoverotus",
   "name": "Kryptoverotus",
   "domain": "kryptoverotus.fi",
   "total_100": 10,
   "scores": {
    "platforms_25": 0,
    "import_10": 5,
    "no_tax_rules_50": 0,
    "ease_5": 5,
    "pricing_10": null
   },
   "reason": "0/50 on Norwegian rules (floor 10): files for Finland only",
   "source": "czechia index (28 Oct 2026); platform points for Norway = integration count only"
  },
  {
   "id": "whalebooks",
   "name": "Whalebooks",
   "domain": "whalebooks.com",
   "total_100": 8,
   "scores": {
    "platforms_25": 0,
    "import_10": 5,
    "no_tax_rules_50": 0,
    "ease_5": 3,
    "pricing_10": null
   },
   "reason": "0/50 on Norwegian rules (floor 10): files for Czechia only",
   "source": "czechia index (28 Oct 2026); platform points for Norway = integration count only"
  },
  {
   "id": "taxero",
   "name": "Taxero",
   "domain": "taxero.cz",
   "total_100": 8,
   "scores": {
    "platforms_25": 0,
    "import_10": 5,
    "no_tax_rules_50": 0,
    "ease_5": 3,
    "pricing_10": null
   },
   "reason": "0/50 on Norwegian rules (floor 10): files for Czechia only",
   "source": "czechia index (28 Oct 2026); platform points for Norway = integration count only"
  },
  {
   "id": "tatax",
   "name": "TaTax",
   "domain": "ta.tax",
   "total_100": 5,
   "scores": {
    "platforms_25": 0,
    "import_10": 5,
    "no_tax_rules_50": 0,
    "ease_5": 0,
    "pricing_10": null
   },
   "reason": "0/50 on Norwegian rules (floor 10): files for Italy only",
   "source": "czechia index (28 Oct 2026); platform points for Norway = integration count only"
  },
  {
   "id": "kriptoado",
   "name": "KriptoAdó.hu",
   "domain": "kriptoado.hu",
   "total_100": 5,
   "scores": {
    "platforms_25": 0,
    "import_10": 5,
    "no_tax_rules_50": 0,
    "ease_5": 0,
    "pricing_10": null
   },
   "reason": "0/50 on Norwegian rules (floor 10): files for Hungary only",
   "source": "czechia index (28 Oct 2026); platform points for Norway = integration count only"
  }
 ],
 "reviewed_not_ranked_note": "CoinTracker, Waltio, CoinLedger, Blockpit, Awaken and Recap keep lots and tax swaps but have no Norway report; the other seven file for one other country only. Totals are platforms + import + ease + Norwegian rules; price is not compared.",
 "personalization": "GET params on /no/ and /no/en/: tx, years, wallets, nosub=1, platforms=comma,separated,slugs (slugs in catalog.json; prefix x: for untracked free-text)"
}