Projet · Expérimentation & Statistiques

AB
Decision.

Outil d'aide à la décision pour tests A/B. Il calcule la significativité statistique d'une expérimentation et tranche clairement : résultat fiable, à poursuivre, ou non concluant. Conçu pour répondre à un besoin observé en contexte professionnel / éviter les décisions prises sur des données insuffisantes.

JavaScript Statistiques Supabase Test Z
AB Decision · Résultat d'analyse
Contrôle A
3.04%
5 000 vis. · 152 conv.
Variation B
3.86%
5 000 vis. · 193 conv.
Résultat fiable — déployable
96.8% Confiance
+26.9% Uplift
Oui Échantillon
Type Projet personnel
Stack JS · Supabase
Contexte Projet personnel · 2026
APIs Supabase DB

Du besoin métier à la solution technique.

En contexte professionnel, lors de missions d'expérimentation web, une difficulté revient systématiquement : distinguer un résultat réellement significatif d'une simple variation due au hasard. Une hausse de conversion de quelques pourcents sur un échantillon trop faible est souvent interprétée à tort comme une victoire, ce qui conduit à déployer des changements dont l'effet n'est pas prouvé.

Ce projet répond à ce problème concret : transformer des chiffres bruts (visiteurs et conversions) en un verdict statistique clair et défendable. Il met en évidence une démarche complète, de la compréhension du besoin métier à son implémentation technique, en passant par le choix d'une méthode statistique rigoureuse.

95%
Seuil de confiance retenu pour valider un résultat
0
Donnée brute transmise sans le consentement de l'utilisateur
3
Verdicts distincts selon la fiabilité statistique

Calcul statistique en temps réel.

Une architecture en trois temps : calcul statistique côté client, persistance des analyses partagées, et restitution via un lien. Chaque brique illustre une compétence technique distincte.

→ 01

Saisie des données.

L'interface recueille les visiteurs et conversions du contrôle et de la variation. Une validation est effectuée avant tout calcul : valeurs entières positives, conversions inférieures ou égales aux visiteurs, minimum d'un visiteur par groupe. Cette étape illustre la rigueur attendue sur la fiabilité des données d'entrée.

→ 02

Test Z sur deux proportions.

Le cœur du projet repose sur un test Z de comparaison de deux proportions : erreur standard combinée, score z, puis probabilité via la fonction de répartition normale (approximation d'Abramowitz & Stegun). L'implémentation est entièrement maîtrisée, sans bibliothèque externe ce qui démontre la compréhension réelle de la méthode statistique, et pas seulement son usage.

→ 03

Verdict en 3 états.

Le résultat est restitué sous forme d'un verdict lisible : déployable, contrôle meilleur, ou non concluant. La logique tient compte à la fois de la confiance statistique et de la taille de l'échantillon, afin de ne jamais conclure prématurément. L'objectif est de rendre une décision complexe immédiatement compréhensible, y compris pour un profil non statisticien.

→ 04

Partage par lien Supabase.

Une analyse peut être partagée via un lien unique. Les données sont persistées dans une base Supabase, puis rechargées à l'ouverture du lien pour reconstituer le résultat. Cette fonctionnalité illustre la maîtrise d'une architecture client-serveur complète : génération d'identifiant, écriture et lecture via une API, gestion des paramètres d'URL.

Testez avec vos propres chiffres.

Entrez les données de votre test A/B et obtenez un verdict statistique immédiat.

→ Contrôle
→ Variation

Ce que ce projet démontre.

→ 01

Traduction d'un besoin métier

Capacité à partir d'un problème concret rencontré en contexte professionnel et à le formaliser en une solution technique utile et ciblée.

→ 02

Implémentation statistique maîtrisée

Mise en œuvre d'un test de significativité de A à Z, sans dépendance externe, témoignant d'une compréhension réelle des concepts et pas d'un simple assemblage de briques.

→ 03

Architecture client-serveur

Conception d'une couche de données isolée (Supabase) pour le partage par lien : écriture, lecture, gestion des identifiants et des paramètres d'URL.

→ 04

Conception robuste et dégradation maîtrisée

Le calcul reste fonctionnel même si la base est indisponible ; seule la fonction de partage est affectée. Une séparation nette entre logique métier et persistance.

Le cœur du calcul.

// Test Z — comparaison de deux proportions (ab-decision-stats.js)
function confidenceLevel(visA, convA, visB, convB) {
  const pPool = (convA + convB) / (visA + visB);
  const se    = Math.sqrt(pPool * (1 - pPool) * (1/visA + 1/visB));
  const z     = (conversionRate(visB, convB) - conversionRate(visA, convA)) / se;
  return normalCDF(z); // Φ(z) via approximation Abramowitz & Stegun
}

function getVerdict(confidence, uplift, sampleSufficient) {
  if (!sampleSufficient)                         return { type: 'yellow' };
  if (confidence >= 0.95 && uplift > 0)       return { type: 'green'  };
  if ((1 - confidence) >= 0.95 && uplift < 0) return { type: 'red'    };
  return { type: 'yellow' };
}
→ Projet suivant
Kameleoon QA Goal Tracker — Extension Chrome QA.
Voir le projet