← Back
Produit Data Assisté par IA · B2C · Build 0-to-1

Relocate Index : plateforme de classement de pays construite avec l'IA

Conception d'un moteur de scoring à 10 dimensions et d'un onboarding orienté découverte — appuyé sur des pipelines de données automatisés et une méthodologie transparente — pour aider les familles à présélectionner des pays en vue d'une expatriation.

Découvrir

Contexte & Rôle

L'espace problème

281 millions de migrants internationaux dans le monde. Les outils disponibles pour évaluer les pays sont soit des boîtes noires payantes (EIU à 1 000+ $/rapport, Mercer sous licence corporate), soit des données brutes sans synthèse (Numbeo), soit optimisés pour les digital nomads (NomadList), soit morts (Teleport — l'alternative la plus proche — racheté puis fermé). Aucun outil n'aide l'utilisateur à identifier les dimensions qui comptent pour lui avant de filtrer.

Les utilisateurs

Des familles avec enfants scolarisés, des travailleurs remote avec un revenu indépendant du lieu, et des retraités évaluant leur qualité de vie — des gens qui ont besoin de comparer les pays sur des dimensions qu'ils n'ont même pas envisagées (culture civique, chaleur sociale, environnement scolaire, liberté religieuse), pas seulement le salaire et le coût de la vie.

Contexte business

Build solo. Budget data à $0 — les 14+ sources sont toutes des datasets institutionnels gratuits (World Bank, OECD, WHO, IHME, Pew, IEP, EF, IMD, Hofstede, InterNations). Priorité à la validation : pas de monétisation tant que 6 métriques d'engagement ne prouvent pas la demande. Pas d'auth, pas de paywall — le produit doit être utile en une seule session anonyme.

Mon rôle

Solo builder. J'ai piloté l'intégralité du cycle produit : conception de la méthodologie de scoring (21 itérations documentées), développement frontend (Next.js 14, Tailwind, shadcn/ui), backend et pipeline de données (Supabase, Edge Functions, pg_cron), instrumentation analytics (Amplitude, 7 events), déploiement (Netlify), et monitoring continu de la qualité des données. 100 % du développement s'est fait dans un environnement Claude Code personnalisé avec un fichier CLAUDE.md complet, des intégrations MCP, de la délégation à des sub-agents, et un knowledge graph structurel pour la code review.

Problème & Hypothèse

Douleur utilisateur

Les personnes qui envisagent une expatriation se rabattent par défaut sur le salaire et le coût de la vie parce que ce sont les métriques les plus visibles. La culture civique, l'environnement scolaire, la liberté religieuse et la chaleur sociale passent totalement sous le radar — non pas parce que les utilisateurs s'en fichent, mais parce qu'aucun outil ne met ces critères en avant. Le cadre d'évaluation de l'utilisateur est incomplet avant même qu'il commence à filtrer.

Douleur produit

Les indices existants sont des boîtes noires (EIU, Mercer — méthodologie opaque, aucune pondération utilisateur), des dumps bruts (Numbeo — données sans synthèse), ou optimisés pour un persona qui ne correspond pas aux familles (NomadList — digital nomads solo, pas de culture scolaire ni de liberté religieuse). L'étape de synthèse — pondérer des signaux contradictoires issus de 10+ sources — est entièrement laissée à l'utilisateur. La Suède score haut en sécurité mais bas en chaleur envers les étrangers. Le Japon est le deuxième pays le plus pacifique mais score bas en maîtrise de l'anglais. Aucun outil ne permet de raisonner sur ces arbitrages avec ses propres priorités.

Hypothèse

Notre hypothèse : combiner un onboarding orienté découverte (qui fait émerger des dimensions que l'utilisateur n'avait pas envisagées) avec un moteur de scoring transparent et pondérable par l'utilisateur (10 dimensions, 14+ sources institutionnelles, tout côté client), appuyé sur des pipelines de données à rafraîchissement mensuel, permettrait aux familles de construire leur propre grille d'évaluation et de réduire 60 pays à 5-8 candidats méritant une investigation plus poussée — sans login, sans paiement, sans confiance aveugle dans une méthodologie opaque.

Approche & Processus

Recherche & Définition du problème

  • Point de départ : un besoin personnel. Ma famille de quatre personnes évaluait une expatriation depuis Bogotá. 9 sessions de recherche itératives avec Claude ont produit un framework de scoring multi-sources. Le document résultant — 12 sections, 20 sources, une formule composite avec dimensions pondérées — était, rétrospectivement, une spécification produit. Le passage de l'analyse personnelle au produit a été un changement de nom, pas une refonte.
  • Scope V1 limité à l'étape de présélection uniquement. Exclusion explicite des parcours visa, des marchés immobiliers, de la structuration fiscale et de la disponibilité d'emploi. Positionnement : « Relocator réduit le champ. Il ne prend pas la décision. » Ce que l'outil ne couvre PAS est une section de premier plan sur la page méthodologie — présenté comme un élément de confiance, pas comme un disclaimer.

Conception méthodologique assistée par IA

  • L'intégralité du développement s'est déroulée dans un environnement Claude Code sur mesure : un CLAUDE.md complet servant de contexte structuré (architecture, formules de scoring, anti-patterns de design, rôles de sub-agents), des intégrations Model Context Protocol pour Supabase et l'automatisation navigateur, et une délégation à des sub-agents spécialisés pour la recherche parallèle et la code review. Chaque session de développement hérite du contexte méthodologique complet.
  • 21 itérations méthodologiques documentées — chacune avec une entrée de changelog expliquant ce qui a changé, pourquoi, et ce qu'elle remplace. La formule de scoring healthcare a subi à elle seule 3 refontes complètes. Civic culture en a connu 2. Ce n'est pas du prompt engineering — c'est du design produit systématique avec un co-builder IA, tracé avec la même rigueur qu'une équipe d'ingénieurs humains.

Définition des objectifs & Validation des features

  • 6 objectifs d'engagement définis avant d'écrire une seule ligne de frontend — couvrant la complétion du questionnaire, la profondeur d'interaction avec les sliders, les pays explorés par session, l'engagement sur les pages détail, le taux de retour, et les vues de la page méthodologie. Les 6 instrumentés via Amplitude avant le lancement.
  • Philosophie validation-first pour la monétisation : suppression des features de monétisation prévues (palier freemium, licensing B2B, export PDF) du scope V1. Le produit sort gratuit. Les décisions de monétisation n'interviennent qu'après validation par les données d'engagement. Pas de modèle de revenu vaut mieux qu'un mauvais modèle de revenu à ce stade.

Intégrité des données & Sélection des sources

  • Les 14+ sources de données sont toutes institutionnelles : World Bank (WGI, price level, GDP PPP), OECD (AIC per capita, physicians/beds/nurses), WHO (UHC, OOP health expenditure), IHME GBD (HAQ Index), Pew Research (Government Restrictions, Social Hostility), IEP (Global Peace Index), EF (English Proficiency Index), IMD (Infrastructure), Hofstede (IVR), InterNations (Ease of Settling In), Open-Meteo (climate), PISA 2022 (school culture). Zéro API payante en V1.
  • L'API payante de Numbeo (500 $/an) a été exclue délibérément. Les données OECD PPP et World Bank price level sont méthodologiquement plus solides pour une analyse au niveau pays (bureaux nationaux de statistiques vs. crowdsourcing). L'avantage de Numbeo — la granularité par ville — est pertinent pour la V2 (drill-down par ville), pas pour la V1 (classement pays). Exception : le Numbeo Crime Index, gratuit à scraper, a été intégré comme sous-composante street-safety de civic culture.

Solution & Design IA

Le moteur de scoring (le cerveau)

10 dimensions, chacune adossée à 1-4 sources institutionnelles, normalisées sur une échelle 0-100 (plus haut = mieux). Architecture à 3 couches : données brutes → scores normalisés → composite pondéré côté client. Tout le calcul se fait dans le navigateur — 60 pays × 10 dimensions = 600 scores, chargés une seule fois depuis une materialised view Supabase, recalculés à chaque changement de slider en moins de 100 ms. Zéro aller-retour API lors de l'interaction. Les dimensions NULL sont exclues et les poids restants se re-normalisent automatiquement. Le moteur de scoring est une pure function TypeScript sans aucune dépendance framework.

Explorer l'Architecture Scoring & Data

Le parcours découverte (le guide)

Un onboarding en 6 questions qui ne se contente pas de configurer des poids — il fait émerger des dimensions que l'utilisateur n'avait pas envisagées. La situation du foyer révèle school culture et healthcare comme priorités pour les familles. La source de revenu révèle les arbitrages de purchasing power entre remote workers et chercheurs d'emploi locaux. Des questions directes sur la culture civique, la chaleur sociale, les préférences climatiques et les besoins de communauté religieuse introduisent des dimensions que la plupart des utilisateurs n'auraient pas pensé à évaluer. Cinq profils climatiques calibrés encodent un savoir métier que des sliders continus ne peuvent pas capturer.

Le pipeline de données (le pouls)

4 Supabase Edge Functions planifiées via pg_cron pour un rafraîchissement mensuel automatique : indicateurs World Bank (WGI, price level, GDP PPP), données WHO (UHC, OOP), moyennes climatiques Open-Meteo, et une fonction de recalcul qui re-normalise tous les scores et rafraîchit la materialised view. Service role key stockée dans Supabase Vault — le frontend n'utilise que la anon key (lecture seule). Le pipeline distingue les sources à rafraîchissement mensuel des sources annuelles qui nécessitent des mises à jour manuelles du seed.

Livraison & Expérimentation

L'incident de fabrication LLM

Pendant l'assemblage des données de seed, Claude a fabriqué des valeurs pour 3 sources de données sur 60 pays. Toutes les valeurs du Global Peace Index étaient systématiquement sous-estimées. 6 des 7 valeurs EF English Proficiency étaient gonflées de 20 à 28 points. Les 51 rangs InterNations étaient faux — Costa Rica, le vrai #1, manquait. Correctif : construction de deux scripts d'ingestion dédiés qui interrogent les API réelles et scrapent les datasets publiés. Toutes les valeurs remplacées. Ajout de la règle permanente « pas de résumés pays générés par LLM ».

Le problème du classement healthcare des États-Unis

La formule healthcare initiale (UHC × 0.55 + OOP × 0.45) classait les États-Unis #1 — un résultat manifestement faux. Diagnostic : UHC mesure si les services existent, pas si les gens y ont accès. 11 % de 4 500 milliards $ = 1 472 $ par personne et par an. Correctif : formule à trois piliers combinant UHC coverage, IHME Healthcare Access & Quality Index et capacité système (physicians, beds, nurses pour 1 000 habitants) — chacun pondéré selon sa valeur diagnostique. Les US redescendent à leur position correcte ; les systèmes nordiques et ouest-européens remontent.

Profils climatiques discrets vs. sliders continus

Envisagé de laisser les utilisateurs définir une température idéale via un slider continu. Rejeté parce que les multiplicateurs de pénalité encodent un savoir métier sur lequel les utilisateurs ne peuvent pas raisonner. Un utilisateur tropical ne voit aucun problème à 200+ jours de pluie (5 points), tandis qu'un utilisateur warm-and-sunny perdrait 15 points pour la même pluviométrie. Correctif : 5 profils discrets avec des références calibrées et des pénalités par type de préférence.

School Culture : des scores éditoriaux aux données PISA

La dimension school culture originale était à 60 % éditoriale — des valeurs attribuées manuellement comme « Danemark : 90, France : 42 ». C'était le point le plus faible : reproductible par personne, défendable uniquement par le jugement de l'auteur. Correctif : remplacement par les indices PISA 2022 belonging, bullying inversé, qualité académique et sécurité — pondérés pour privilégier l'environnement scolaire sur la performance académique brute — issus de 690 000 élèves dans 81 pays.

Résultats de la V1

60

pays classés sur 10 dimensions avec 14+ sources de données institutionnelles — toutes gratuites, toutes traçables

600

scores normalisés pré-calculés servis depuis une seule materialised view, rafraîchie mensuellement par 4 Edge Functions automatisées

21

itérations méthodologiques documentées — chaque décision de formule, chaque changement de source, chaque modification de poids traçable avec son raisonnement

Sub-100ms

re-classement à chaque interaction slider — entièrement côté client, zéro appel API pendant l'interaction

$0

de coût data en V1 — validation que les sources institutionnelles égalent ou dépassent la rigueur méthodologique des alternatives à 500+ $/an

0

donnée fabriquée livrée — toutes les données placeholder générées par LLM identifiées et remplacées avant le lancement

Apprentissages clés

Votre analyse personnelle EST le cahier des charges. Les 9 sessions de recherche qui ont produit un framework de scoring pour l'expatriation de ma famille de quatre personnes ont aussi produit exactement le moteur de scoring, le jeu de dimensions et le système de pondération devenus le produit. Je n'ai pas traduit un besoin personnel en produit — l'analyse était le produit. La transition a été un changement de nom, pas une refonte. L'implication : si votre réflexion structurée sur un problème réel produit quelque chose que vous voudriez réutiliser, c'est déjà un produit. Livrez-le.

Les LLM fabriquent des données avec une assurance totale. Construisez le pipeline de vérification avant de construire le produit. L'itération 16 a révélé que Claude avait fabriqué des valeurs d'indices pour 3 sources de données sur 60 pays — avec des décimales crédibles et sans la moindre hésitation. Le correctif n'était pas « écrire de meilleurs prompts ». Le correctif était de construire des scripts d'ingestion dédiés qui interrogent les API réelles et scrapent les datasets publiés, pour que la fabrication n'ait aucun point d'entrée. Dans un produit data, le pipeline est la couche de confiance. Aucune donnée générée par LLM ne part en production. Jamais.

La découverte bat le filtrage. La plupart des outils de classement supposent que les utilisateurs arrivent en sachant ce qui compte pour eux. Ce n'est pas le cas. Les gens se rabattent sur le salaire et le coût de la vie parce que ce sont les plus visibles — pas les plus pertinents. La mission première de l'onboarding est d'élargir le cadre d'évaluation de l'utilisateur : faire émerger la culture civique, la chaleur sociale, l'environnement scolaire et la liberté religieuse comme des dimensions auxquelles il n'avait pas pensé. L'outil éduque avant de classer. Ce n'est pas une finesse UX — c'est le différenciateur produit principal.

La transparence méthodologique est une feature, pas de la documentation. Chaque score est traçable à une formule. Chaque formule est traçable à une source. Chaque source est institutionnelle. La page méthodologie n'est ni une note de bas de page ni un exercice de conformité — c'est un mécanisme de construction de confiance qui différencie directement le produit des indices opaques comme EIU et Mercer. Les utilisateurs qui consultent la page méthodologie s'engagent 2-3x plus profondément avec le classement (hypothèse — instrumentée, en attente de validation). L'opacité est une faiblesse concurrentielle quand votre audience a été échaudée par des « classements de qualité de vie » opaques.