{
 "country": "FR",
 "country_name": "France",
 "generated": "2026-08-06",
 "last_verified": "2026-08-06",
 "methodology": {
  "weights": {
   "platform_coverage": 25,
   "import_quality": 10,
   "local_tax_rules": 50,
   "ease_of_use": 5,
   "pricing": 10
  },
  "pricing_formula": "0.5×Casual + 0.4×Active + 0.1×Trader; profile score = 10 × cheapest ÷ price, rounded to integer; profiles averaged over tx grids 25/50/100, 250/500/1000, 2500/5000/10000, single year",
  "qualifying_rule": "ranked only if local tax rules score > 0 (tool can produce a French declaration)",
  "evidence_note": "platform support = vendor-listed (scraped from public integration pages), not yet import-tested"
 },
 "operator_disclosure": "This index is operated by Divly, which is scored by the same published rubric.",
 "ranking": [
  {
   "id": "waltio",
   "name": "Waltio",
   "domain": "waltio.com",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "fr_tax_rules_50": 50,
    "ease_5": 5,
    "pricing_10": 7
   },
   "total_100": 97,
   "pricing": {
    "model": "subscription",
    "currency_note": "EUR",
    "tiers_eur": [
     [
      50,
      39
     ],
     [
      1000,
      99
     ],
     [
      10000,
      249
     ],
     [
      100000,
      999
     ]
    ],
    "free_rule": null,
    "profile_prices_eur": {
     "casual": 59,
     "active": 99,
     "trader": 249
    }
   },
   "flags": {
    "subscription": true,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false
   }
  },
  {
   "id": "divly",
   "name": "Divly",
   "domain": "divly.com",
   "scores": {
    "platforms_25": 25,
    "import_10": 10,
    "fr_tax_rules_50": 46,
    "ease_5": 5,
    "pricing_10": 9
   },
   "total_100": 95,
   "pricing": {
    "model": "per_year",
    "currency_note": "EUR",
    "tiers_eur": [
     [
      100,
      39
     ],
     [
      1000,
      99
     ],
     [
      10000,
      199
     ],
     [
      100000,
      399
     ]
    ],
    "free_rule": null,
    "profile_prices_eur": {
     "casual": 39,
     "active": 99,
     "trader": 199
    }
   },
   "flags": {
    "subscription": false,
    "site_operator": true,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 179,
    "complete": true,
    "source": "https://divly.com/en/wallets-and-exchanges"
   }
  },
  {
   "id": "comptacrypto",
   "name": "Comptacrypto",
   "domain": "comptacrypto.fr",
   "scores": {
    "platforms_25": 20,
    "import_10": 5,
    "fr_tax_rules_50": 43,
    "ease_5": 0,
    "pricing_10": 7
   },
   "total_100": 75,
   "pricing": {
    "model": "per_year",
    "currency_note": "EUR",
    "tiers_eur": [
     [
      10000,
      90
     ],
     [
      100000,
      289
     ]
    ],
    "free_rule": "free with ≤1 platform and ≤5000 transactions",
    "profile_prices_eur": {
     "casual": 90,
     "active": 90,
     "trader": 90
    }
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 34,
    "complete": false,
    "source": "https://comptacrypto.com/integrations"
   }
  },
  {
   "id": "summ",
   "name": "Summ",
   "domain": "summ.com",
   "scores": {
    "platforms_25": 15,
    "import_10": 10,
    "fr_tax_rules_50": 40,
    "ease_5": 0,
    "pricing_10": 8
   },
   "total_100": 73,
   "pricing": {
    "model": "subscription",
    "currency_note": "EUR",
    "tiers_eur": [
     [
      100,
      49
     ],
     [
      1000,
      99
     ],
     [
      10000,
      249
     ],
     [
      100000,
      499
     ]
    ],
    "free_rule": null,
    "profile_prices_eur": {
     "casual": 49,
     "active": 99,
     "trader": 249
    }
   },
   "flags": {
    "subscription": true,
    "site_operator": false,
    "partly_vendor_claimed": true
   },
   "integrations_list": {
    "imported": true,
    "entries": 431,
    "complete": false,
    "source": "https://summ.com/se/integrations"
   }
  },
  {
   "id": "koinly",
   "name": "Koinly",
   "domain": "koinly.io",
   "scores": {
    "platforms_25": 20,
    "import_10": 10,
    "fr_tax_rules_50": 23,
    "ease_5": 3,
    "pricing_10": 8
   },
   "total_100": 64,
   "pricing": {
    "model": "per_year",
    "currency_note": "USD list prices charged as EUR at face value",
    "tiers_eur": [
     [
      100,
      49
     ],
     [
      1000,
      99
     ],
     [
      3000,
      199
     ],
     [
      100000,
      299
     ]
    ],
    "free_rule": null,
    "profile_prices_eur": {
     "casual": 49,
     "active": 99,
     "trader": 266
    }
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 986,
    "complete": false,
    "source": "https://koinly.io/integrations/"
   }
  },
  {
   "id": "blockpit",
   "name": "Blockpit",
   "domain": "blockpit.io",
   "scores": {
    "platforms_25": 15,
    "import_10": 10,
    "fr_tax_rules_50": 17,
    "ease_5": 2,
    "pricing_10": 7
   },
   "total_100": 51,
   "pricing": {
    "model": "per_year",
    "currency_note": "EUR",
    "tiers_eur": [
     [
      50,
      49
     ],
     [
      1000,
      99
     ],
     [
      3000,
      149
     ],
     [
      10000,
      229
     ],
     [
      100000,
      549
     ]
    ],
    "free_rule": null,
    "profile_prices_eur": {
     "casual": 66,
     "active": 99,
     "trader": 202
    }
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 200,
    "complete": false,
    "source": "https://www.blockpit.io/integrations"
   }
  },
  {
   "id": "coinpanda",
   "name": "Coinpanda",
   "domain": "coinpanda.io",
   "scores": {
    "platforms_25": 15,
    "import_10": 5,
    "fr_tax_rules_50": 10,
    "ease_5": 3,
    "pricing_10": 6
   },
   "total_100": 39,
   "pricing": {
    "model": "per_year_with_overage",
    "currency_note": "EUR",
    "tiers_eur": [
     [
      100,
      69
     ],
     [
      1000,
      130
     ],
     [
      3000,
      217
     ],
     [
      20000,
      338
     ]
    ],
    "free_rule": null,
    "profile_prices_eur": {
     "casual": 69,
     "active": 130,
     "trader": 298
    }
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": true,
    "entries": 1185,
    "complete": false,
    "source": "https://coinpanda.io/integrations/"
   }
  },
  {
   "id": "cointracking",
   "name": "CoinTracking",
   "domain": "cointracking.info",
   "scores": {
    "platforms_25": 15,
    "import_10": 10,
    "fr_tax_rules_50": 2,
    "ease_5": 1,
    "pricing_10": 8
   },
   "total_100": 36,
   "pricing": {
    "model": "all_time_transaction_count",
    "currency_note": "EUR",
    "tiers_eur": [
     [
      200,
      39
     ],
     [
      3500,
      129
     ],
     [
      20000,
      219
     ],
     [
      50000,
      289
     ],
     [
      100000,
      389
     ],
     [
      999999999,
      789
     ]
    ],
    "free_rule": null,
    "profile_prices_eur": {
     "casual": 39,
     "active": 129,
     "trader": 189
    }
   },
   "flags": {
    "subscription": false,
    "site_operator": false,
    "partly_vendor_claimed": false
   },
   "integrations_list": {
    "imported": false
   }
  }
 ],
 "reviewed_not_ranked": [
  {
   "name": "Cointracker",
   "total_100": 28,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "Coinledger",
   "total_100": 28,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "Awaken",
   "total_100": 20,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "Kryptosekken",
   "total_100": 15,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "Recap",
   "total_100": 14,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "Kryptoverotus",
   "total_100": 13,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "Moneyviz",
   "total_100": 11,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "TaTax",
   "total_100": 8,
   "reason": "0/50 on French tax rules"
  },
  {
   "name": "KriptoAdó.hu",
   "total_100": 5,
   "reason": "0/50 on French tax rules"
  }
 ],
 "personalization": "GET params on france.html: tx, years, wallets, nosub=1, platforms=comma,separated,slugs (slugs in catalog.json; prefix x: for untracked free-text)"
}