📈 Backtest du modèle
Performance réelle du modèle predictMatch() rejouée chaque dimanche sur tous les picks réglés depuis l'archivage
(results_archive.jsonl + data.js). Vrai modèle exécuté via scripts/model_loader.py,
pas une réimplémentation simplifiée.
🎯 Vue d'ensemble
🏷️ Par tier de fiabilité — ce que vaut la jauge
| Tier | N | WR | ROI flat | P&L flat | P&L Kelly | Brier | CLV moy. |
|---|---|---|---|---|---|---|---|
| 🔒 Lock | 0 | 0% | +0.0% | — | +0.00u | 0.000 | — |
| ✅ Standard | 8 | 88% | +68.5% | +5.48u | +10.68u | 0.205 | — |
| ⚠️ Low conf | 0 | 0% | +0.0% | — | +0.00u | 0.000 | — |
| 🚫 Skip | 639 | 53% | -0.9% | -5.46u | +262.49u | 0.231 | — |
🏆 Par sport — où le modèle gagne, où il perd
| Sport | N | WR | ROI flat | P&L flat | P&L Kelly | Brier |
|---|---|---|---|---|---|---|
| ⚽ Foot | 528 | 52% | +0.0% | +0.18u | +262.91u | 0.230 |
| ⚾ Baseball | 74 | 62% | +7.0% | +5.19u | +9.48u | 0.234 |
| 🏀 Basket | 24 | 58% | -12.8% | -3.08u | +0.00u | 0.242 |
| 🏒 Hockey | 21 | 52% | -10.8% | -2.26u | +0.78u | 0.237 |
💸 Par bucket de cote — gros favori vs outsider
| Bucket de cote | N | WR | ROI flat | Brier |
|---|---|---|---|---|
| 💎 Gros favori (cote ≤ 1.40) | 103 | 69% | -8.0% | 0.205 |
| 📊 Favori (1.40 < cote ≤ 1.85) | 302 | 58% | +1.6% | 0.234 |
| ⚖️ Pile/face (1.85 < cote ≤ 2.50) | 175 | 44% | +0.4% | 0.246 |
| 🎲 Outsider (cote > 2.50) | 67 | 33% | +4.0% | 0.218 |
🆚 Vs benchmarks marché — le modèle bat-il les heuristiques simples ?
| Stratégie | N | WR | ROI flat | Δ vs modèle |
|---|---|---|---|---|
| 🤖 Modèle predictMatch 647 picks réglés |
647 | 53.3% | +0.0% | référence |
| 🥇 Favori marché Toujours parier le favori (cote la plus basse) |
19 | 68.4% | +11.1% | -11.1pt |
| 🐶 Outsider Toujours parier l'outsider |
19 | 15.8% | -53.2% | +53.2pt |
| 🏠 Domicile systématique Toujours parier l'équipe à domicile |
19 | 47.4% | -30.8% | +30.8pt |
| 💎 Value zone (cote 1.5–3.0) Favori marché dans la zone Kelly-fertile |
10 | 70.0% | +33.7% | -33.7pt |
| 📉 Low overround Match avec faible marge bookmaker |
16 | 68.8% | +7.9% | -7.9pt |
Δ positif = le modèle bat la stratégie de cette ligne. Source : backtest_baselines.py (cron hebdo, baselines marché vs backtest_v2.py qui mesure le vrai modèle).
📈 Séries — les "chauds" et les "froids" du modèle
Les paris sportifs sont variance-driven : un modèle profitable a quand même des "froids" (séries de 5-7 perdants) et des "chauds" (séries de 6-10 gagnants). On publie les deux pour désamorcer le biais d'overconfidence quand ça enchaîne.
🔥 Top 3 séries gagnantes
- 6 victoires (2026-04-24 → 2026-04-24)
- 6 victoires (2026-04-25 → 2026-04-25)
- 6 victoires (2026-04-25 → 2026-04-25)
❄️ Top 3 séries perdantes
- 10 défaites (2026-05-02 → 2026-05-02)
- 9 défaites (2026-04-25 → 2026-04-25)
- 7 défaites (2026-04-29 → 2026-04-29)
Source : backtest_report_v2.json#streaks (cron hebdo).
🏆 Plus beaux gains — les 10 succès les mieux payés
Les 10 plus beaux gains, classés par cote (un underdog qui gagne pèse plus qu'un favori qui gagne). On publie aussi les succès pour balancer la transparence : si on publie nos pires erreurs (ci-dessous), on doit aussi publier nos plus beaux coups, sinon le framing biaise négatif.
| Match | Date | Pick | Conf. | Cote | Gain | Tier |
|---|---|---|---|---|---|---|
| ⚽ Birmingham City at Portsmouth | 2026-05-02 | X (Nul) | 32% | @3.60 | +2.60u | 🤔 Skip |
| ⚽ Auckland FC at Sydney FC | 2026-04-26 | X (Nul) | 33% | @3.50 | +2.50u | 🤔 Skip |
| ⚽ Mansfield Town at Peterborough United | 2026-04-28 | X (Nul) | 33% | @3.45 | +2.45u | 🤔 Skip |
| ⚽ Rodez Aveyron at Stade Laval | 2026-04-24 | X (Nul) | 34% | @3.40 | +2.40u | 🤔 Skip |
| ⚽ Chonburi at Kanchanaburi Power FC | 2026-05-02 | X (Nul) | 34% | @3.40 | +2.40u | 🤔 Skip |
| ⚽ Aberdeen at Livingston | 2026-05-01 | X (Nul) | 33% | @3.35 | +2.35u | 🤔 Skip |
| ⚽ BK Häcken at Degerfors IF | 2026-05-02 | X (Nul) | 34% | @3.35 | +2.35u | 🤔 Skip |
| ⚽ Fleetwood Town at Shrewsbury Town | 2026-04-25 | X (Nul) | 33% | @3.30 | +2.30u | 🤔 Skip |
| ⚽ Macará at Alianza Atlético | 2026-05-01 | 2 (Extérieur) | 52% | @3.30 | +2.30u | 🤔 Skip |
| ⚽ Kashima Antlers at Kashiwa Reysol | 2026-04-24 | 2 (Extérieur) | 44% | @3.20 | +2.20u | 🤔 Skip |
Source : backtest_report_v2.json#best_picks (cron hebdo).
😬 Pires picks — transparence sur les erreurs du modèle
Les 10 picks les plus douloureux : modèle très confiant (prob ≥65%) qui a perdu. On les publie pour que tu voies où le modèle se trompe le plus. Conseil de modeste : pas de modèle parfait, ces erreurs font partie de la variance — l'objectif est qu'elles restent moins fréquentes que la prob suggère.
| Match | Date | Pick | Conf. | Cote | Tier |
|---|---|---|---|---|---|
| ⚽ Tondela at Sporting CP | 2026-04-29 | 1 (Domicile) | 91% | @1.09 | 🤔 Skip |
| ⚽ Sporting CP at AVS | 2026-04-26 | 2 (Extérieur) | 85% | @1.14 | 🤔 Skip |
| ⚽ 1. FC Heidenheim 1846 at Bayern Munich | 2026-05-02 | 1 (Domicile) | 82% | @1.24 | 🤔 Skip |
| ⚽ Persis Solo at Malut United | 2026-05-02 | 1 (Domicile) | 81% | @1.19 | 🤔 Skip |
| 🏀 Philadelphia 76ers at Boston Celtics | 2026-04-28 | 1 (Domicile) | 77% | @1.23 | 🤔 Skip |
| ⚽ Fatih Karagümrük at Besiktas | 2026-04-27 | 1 (Domicile) | 76% | @1.37 | 🤔 Skip |
| ⚽ Universidad Central at Portuguesa | 2026-04-25 | 1 (Domicile) | 74% | @1.22 | 🤔 Skip |
| ⚽ Mohammedan SC at Sporting Club Delhi | 2026-04-26 | 1 (Domicile) | 74% | @1.41 | 🤔 Skip |
| 🏀 Los Angeles Lakers at Houston Rockets | 2026-04-25 | 1 (Domicile) | 73% | @1.29 | 🤔 Skip |
| ⚽ Lorient at Paris Saint-Germain | 2026-05-02 | 1 (Domicile) | 73% | @1.34 | 🤔 Skip |
Source : backtest_report_v2.json#worst_picks (cron hebdo).
📊 Calibration probabiliste — quand on dit 70%, on gagne 70% ?
Plus le gap est proche de 0, mieux le modèle est calibré.
+pp = modèle sous-estime · -pp = modèle sur-estime.
| Bin probabilité | N | Prob moyenne | WR observé | Gap |
|---|---|---|---|---|
| [0.3–0.4] | 111 | 36.5% | 33.3% | -3.1pp |
| [0.4–0.5] | 171 | 45.9% | 43.3% | -2.6pp |
| [0.5–0.6] | 207 | 54.6% | 57.0% | +2.4pp |
| [0.6–0.7] | 102 | 64.4% | 70.6% | +6.1pp |
| [0.7–0.8] | 41 | 74.2% | 80.5% | +6.3pp |
| [0.8–0.9] | 13 | 83.1% | 76.9% | -6.2pp |
| [0.9–1.0] | 2 | 91.0% | 50.0% | -41.0pp |
🏟️ Top ligues par volume
| Ligue | N | WR | ROI flat | Brier |
|---|---|---|---|---|
mlb | 74 | 62% | +7.0% | 0.234 |
eng.3 | 27 | 59% | +17.6% | 0.240 |
eng.4 | 24 | 54% | +0.4% | 0.208 |
jpn.1 | 24 | 38% | -23.1% | 0.208 |
nba | 24 | 58% | -12.8% | 0.242 |
eng.2 | 23 | 52% | +1.3% | 0.215 |
nhl | 21 | 52% | -10.8% | 0.237 |
fra.2 | 18 | 44% | -3.8% | 0.259 |
ita.2 | 18 | 56% | +10.7% | 0.219 |
chn.1 | 16 | 44% | -16.6% | 0.248 |
conmebol.libertadores | 16 | 69% | +14.8% | 0.186 |
esp.2 | 16 | 38% | -23.8% | 0.233 |
📐 Définitions des métriques (WR, ROI flat, Brier, Kelly, calibration, CLV, tier de fiabilité) : Académie. Protocole de backtest complet : Méthodologie.