Méthodologie
Comment le système détecte, ce qu'il sait faire, ce qu'il ne sait pas faire, et les erreurs qu'il a commises en chemin.
Le principe
Le marché des cartes Pokémon présente les caractéristiques d'un marché financier immature : des actifs échangés à plusieurs milliers d'euros, une asymétrie d'information massive, aucune obligation de transparence, aucun régulateur. Les mécanismes de manipulation y sont pourtant identiques à ceux de la finance : rachat de l'offre disponible, gonflement artificiel des cours, exploitation d'informations non publiques.
Ce système transpose à ce marché les principes des dispositifs de surveillance des marchés réglementés. La question posée n'est pas « combien vaut cette carte ? » — d'autres outils y répondent — mais « ce mouvement de prix est-il honnête ? ».
Principe cardinal : une alerte est un candidat à investigation, jamais un verdict. La détection est entièrement déterministe — aucun modèle opaque n'intervient dans la chaîne de décision. Chaque alerte est reproductible à partir de ses données sources, et chaque seuil vit en base de données, daté et versionné.
Les règles de détection
| Règle | Ce qu'elle cherche | Statut |
|---|---|---|
| Décrochage de moyenne | Le prix s'écarte de sa propre moyenne des sept derniers jours, et la tendance est confirmée sur trente jours | Active |
| Divergence au marché | La carte s'écarte nettement du mouvement d'ensemble — monter quand tout monte n'est pas un signal | Active |
| Vague intra-extension | Plusieurs cartes de la même extension signalées le même jour | Contexte |
| Vague intra-Pokémon | Plusieurs cartes du même Pokémon, tous sets confondus. Peut révéler une coordination — ou innocenter un mouvement | Contexte |
| Saut du prix plancher | Le prix le plus bas bondit en 24 h sans mouvement du prix de référence | Signal faible |
| Écart statistique | Variation anormale au regard de la volatilité habituelle de la carte elle-même | Attend l'historique |
Deux règles ont été retirées en cours de route : l'une comparait le prix plancher au prix de référence, l'autre s'appuyait sur les moyennes de vente fournies par la source. Le journal ci-dessous explique pourquoi.
Les filtres appliqués à toute analyse
Ces filtres ne sont pas des réglages arbitraires : chacun découle d'une découverte documentée plus bas. Ils écartent des données avant qu'elles ne produisent de fausses alertes.
- Plausibilité — un prix de référence incohérent avec le prix des ventes réelles est écarté du calcul. Environ 5 % du catalogue est concerné chaque jour.
- Liquidité — une carte doit avoir changé de prix au moins trois fois en sept jours pour être analysée au jour le jour. Sans cela, une « variation quotidienne » condense en réalité plusieurs jours de mouvement.
- Fraîcheur — le prix doit avoir bougé la veille également. Une carte gelée trois jours puis rattrapant d'un coup n'est pas comparable au mouvement quotidien du marché.
- Rationalité économique — prix minimum de 5 €. En dessous, racheter l'offre disponible coûterait plus cher que le gain espéré.
Performance mesurée du moteur
Le moteur est évalué sur neuf scénarios de test rejoués automatiquement à chaque modification du code. Chaque scénario reproduit un comportement réellement observé : un décrochage de prix légitime, une carte dont le prix était gelé plusieurs jours avant de rattraper d'un coup, une carte trop peu échangée pour être analysée, une carte qui suit simplement le mouvement d'ensemble. Le moteur doit signaler les premiers et rester silencieux sur les seconds. Une régression fait échouer l'intégration continue et bloque la mise en production.
| Métrique | Résultat |
|---|---|
| Précision (les alertes émises sont-elles justifiées ?) | 100 % |
| Rappel (les vrais cas sont-ils tous attrapés ?) | 100 % |
| Scénarios couverts | 9 |
| Faux positifs | 0 |
Ces chiffres mesurent la correction du moteur : fait-il ce que son code prétend faire ? Ils ne garantissent pas la validité des hypothèses sous-jacentes. Le journal ci-dessous montre pourquoi cette distinction est vitale : un moteur peut être parfaitement correct et parfaitement faux, s'il repose sur une mauvaise compréhension de ses données.
Journal des erreurs corrigées
Ce projet publie ses erreurs. Un système de surveillance qui dissimulerait ses propres défauts n'aurait aucune légitimité à en signaler chez les autres.
Les moyennes de vente de la source sont figées
La règle la plus prolifique du moteur comparait les ventes du jour à la moyenne du mois. Vérification sur deux relevés consécutifs du catalogue complet : zéro variation sur 70 975 cartes en vingt-quatre heures, alors que le prix de référence bougeait sur 16,6 % d'entre elles. Ces moyennes ne sont pas recalculées quotidiennement : la règle ne détectait aucun mouvement, elle resignalait chaque jour un rapport figé. Règle retirée, puis refondée sur des moyennes calculées à partir de notre propre historique.
Le prix plancher mélange les états de conservation
Les prix publics agrègent tous les états, de l'exemplaire très abîmé au neuf. Une carte cotée 253 € peut afficher un plancher à 11,89 € : ce n'est pas une affaire, c'est un exemplaire en mauvais état. Les règles fondées sur le plancher comparaient donc des grandeurs non comparables. L'une a été retirée, l'autre conservée en signal faible explicitement signalé.
Le prix de référence contient des valeurs corrompues
Une carte voit son prix de référence passer de 7,17 € à 273,81 € en une nuit, puis y rester — alors que dans le même fichier, au même instant, son prix plancher reste à 1,50 € et ses ventes se font à 7 €. Environ 500 cartes par jour, soit 2,3 % du catalogue, portent ainsi un prix de référence incohérent. Sans contrôle, cela représenterait autant de fausses alertes spectaculaires chaque jour. Un contrôle de plausibilité écarte désormais ces valeurs en entrée, et le taux de fiabilité des données est mesuré et publié.
La seconde source servait des données périmées
Quatre cartes suivies affichaient un prix identique au centime près deux jours consécutifs. Comparaison avec la source directe aux mêmes dates : les quatre avaient en réalité baissé de 3 à 5 %. L'interface intermédiaire recopiait les prix de la veille — le moteur tournait sur des variations nulles fabriquées, ce qui est pire que l'absence de données. Le moteur a été refondé sur la source directe ; l'horodatage de la source est désormais conservé pour détecter toute future péremption.
Les prix ne sont pas une série quotidienne
Le prix de référence n'est mis à jour qu'à l'occasion d'une vente. Trois quarts des cartes affichent un prix identique d'un jour à l'autre, et 43,5 % ne cotent pas une seule fois par semaine. Une variation apparente de 79 % en un jour pouvait ainsi condenser trois jours de gel suivis d'un rattrapage. Les filtres de liquidité et de fraîcheur ont réduit le volume d'alertes de la règle concernée de 139 à 46, en éliminant précisément ces faux mouvements.
La référence de marché valait structurellement zéro
La médiane du marché affichait exactement 0,000 % chaque jour. Cause : elle était calculée sur l'ensemble du catalogue, or la majorité des cartes ne cotent pas quotidiennement — la médiane d'une population majoritairement immobile vaut zéro, mécaniquement. La règle de divergence au marché ne comparait donc à rien : elle n'était qu'un seuil de variation brute déguisé. La référence est désormais calculée sur les seules cartes ayant effectivement coté ce jour-là.
Le prix de référence contredit le prix des transactions
En isolant les cartes dont le prix de référence et le prix moyen des ventes ont tous deux bougé le même jour — 3 491 observations — les deux indicateurs vont dans des directions opposées : le prix de référence perd 1,19 % pendant que le prix des transactions gagne 1,55 %. Deux explications ont été testées et écartées : un rattrapage progressif (réfuté — les cartes dont la référence est déjà inférieure aux ventes baissent deux fois plus vite) et une érosion passive (réfutée — les hausses ne s'accompagnent pas plus souvent d'une transaction que les baisses). Nous constatons cette contradiction sans l'expliquer.
Conséquence pour toute lecture de prix : zéro n'est pas le point neutre. Une carte dont le prix affiché reste stable surperforme son marché d'environ 1,2 % par jour. Tous les écarts publiés sur ce site sont calculés par rapport au mouvement médian réel, dérive comprise.
Un test d'évaluation qui ne testait rien
La première exécution du harness d'évaluation affichait fièrement « 100 % de précision, tous les scénarios passent ». Sauf qu'aucun scénario n'était chargé : le script avait divisé zéro par zéro. Le harness vérifie désormais qu'il a de quoi tester avant de conclure. Un test qui ne peut pas échouer est un test qui ne sert à rien.
Post-mortem : une décision de sécurité casse le pipeline
L'ouverture de ce tableau de bord au public a nécessité d'activer un contrôle d'accès sur les données. Les règles créées n'autorisaient que la lecture, or la clé utilisée par les traitements automatiques n'avait pas les privilèges nécessaires pour les contourner : la chaîne d'écriture du système était rompue. Une décision de sécurité côté public avait silencieusement cassé la collecte. Détecté par le harness d'évaluation avant tout impact sur les données de production.
Le cas particulier des cartes récentes
Une carte sortie depuis moins d'un mois est inanalysable pour la détection de manipulation, et le système le reconnaît explicitement.
Sur une nouveauté, les prix font littéralement n'importe quoi : le marché n'a pas encore trouvé son équilibre, l'offre et la demande se cherchent, les écarts entre vendeurs sont énormes. Une flambée sur une carte fraîchement sortie n'est pas un signal de manipulation, c'est le fonctionnement normal de la découverte de prix d'un actif neuf. C'est précisément le scénario où une accusation a le plus de chances d'être fausse.
Cela ne veut pas dire qu'une manipulation y soit impossible — une carte à fort engouement à sa sortie est même une cible plausible. Mais l'affirmer demanderait des preuves que les premières semaines de données ne peuvent pas fournir. En leur absence, le système s'abstient.
Limites assumées
- Le marché des cartes n'est pas régulé. Ni régulateur, ni obligation de transparence, ni sanction. Ce système n'a aucun pouvoir de contrainte et ne prétend à aucune autorité.
- Les données publiques ne permettent pas d'identifier les acteurs. Aucune adresse, aucun compte acheteur, aucune identité réelle n'est accessible ni recherchée. Le système détecte des schémas, pas des personnes.
- Les prix ne distinguent pas l'état des cartes. Limite structurelle de la source, avec ses conséquences documentées sur plusieurs règles.
- Le prix de référence est mis à jour à la vente, pas quotidiennement. Seul un quart du catalogue est analysable au jour le jour.
- Le prix de référence dérive à la baisse d'environ 1,2 % par jour en contradiction avec le prix des transactions réelles, qui progresse d'environ 1,6 %. Le biais est mesuré et compensé dans tous les calculs d'écart, mais son origine reste inexpliquée.
- Les mouvements légitimes existent. Sorties d'extensions, rotation du format de jeu, résultats de tournois, exposition médiatique. Le moteur repère l'anormal, il ne lit pas dans les intentions.
- Les seuils sont des hypothèses en cours de validation. Le taux de faux positifs est mesuré, publié et travaillé, pas dissimulé derrière un vernis de certitude.
Sources et traitement des données
- Sources officielles uniquement. Catalogue de prix Cardmarket, interface publique TCGdex, interface officielle eBay. Aucun scraping, aucune donnée obtenue en violation de conditions d'utilisation.
- Collecte automatisée. Le pipeline complet — téléchargement, ingestion, contrôle qualité, détection, publication du bilan — s'exécute chaque jour sans intervention humaine. Un détecteur de jours manquants surveille l'assiduité de la collecte et l'affiche publiquement.
- Datation par la source. Chaque relevé est daté par l'horodatage interne du fichier, et non par la date d'exécution. Un fichier publié en retard est ainsi rattaché au bon jour, ce qui évite une corruption silencieuse de la série temporelle.
- Traçabilité. Les réponses brutes sont conservées avec chaque instantané, permettant de recalculer toute alerte a posteriori. Les seuils vivent en base, datés : on peut toujours répondre à « avec quels réglages cette alerte a-t-elle été produite ? ».
- Rédaction assistée, calcul jamais. Les bilans quotidiens sont rédigés par un modèle de langage à partir d'un dossier factuel constitué en amont. Le modèle ne calcule rien, ne détecte rien, ne décide rien. Chaque chiffre qu'il cite est vérifié contre la base avant publication : un bilan contenant un chiffre absent du dossier est rejeté et n'est jamais mis en ligne.