Comment sont calculées les valeurs
Chaque chiffre du site est un calcul que tu pourrais refaire toi-même. Mêmes données en entrée, même chiffre en sortie, à chaque fois — aucun modèle de langage n’intervient. Cette page, c’est toute la recette : quelles sources passent devant quelles autres, ce qu’est l’estimateur, ce qu’on lui donne exactement, et ce qu’il rate de façon démontrable.
D’abord
Quatre échelons, dans cet ordre
Pour chaque diplômé, on descend cette échelle et on s’arrête au premier échelon qui tient. Le badge à côté de la valeur te dit lequel c’était, sur toutes les cartes : ici, un chiffre sans sa provenance n’est pas publié.
- 1
Une valorisation publiée, avec son reçu
REPORTEDUn club a offert X millions et s’est fait envoyer promener. Un communiqué de prolongation annonce une clause libératoire. Un président lâche un prix en conférence. Ce sont des faits de marché, rapportés par un média nommé, sur une page datée — et ils passent devant tout le reste, parce qu’ils sont la seule preuve qui existe pour les joueurs que personne n’a vendus. Chaque ancrage est saisi à la main avec son lien source et une date d’expiration, et la carte affiche la source. À l’expiration, l’ancrage est supprimé, jamais prolongé : le joueur retombe sur le modèle.
- 2
Un transfert réel, réellement payé
FEESi un club a payé pour lui un montant annoncé au cours des douze derniers mois, ce montant est la valeur. Point. Aucun calcul. Entre douze et trente-six mois, le montant cesse d’être la réponse et devient le plancher : un gamin de dix-neuf ans qui a explosé depuis son transfert peut valoir plus que son prix d’achat, mais personne n’est jamais valorisé en dessous de ce qu’on vient de payer pour lui. Au-delà de trente-six mois, un montant, c’est de l’histoire, et la carte le dit.
- 3
L’estimation du modèle
ESTPas de transfert, pas de fait publié — donc on estime. Cette estimation sort d’arbres de décision entraînés sur des montants réellement payés et réellement annoncés, détaillés plus bas. C’est de là que vient la grande majorité des chiffres du site, et c’est le seul échelon où le chiffre est le nôtre et pas celui de quelqu’un d’autre.
- 4
Une formule publique, en dernier recours
ESTQuand la fiche d’un joueur est trop maigre pour le modèle — pas de date de naissance, pas de poste exploitable — une formule toute bête prend le relais : une valeur de base tirée d’une table d’âge, multipliée par un coefficient de poste, multipliée par la force du club, bonifiée par les sélections. Toutes les constantes sont dans un fichier de configuration public. C’est grossier volontairement, et ça concerne environ un diplômé sur cent.
Les échelons 1 et 2 sont le chiffre de quelqu’un d’autre, et on en imprime le reçu. Les échelons 3 et 4 sont les nôtres, et ils portent le badge EST pour que la différence soit toujours visible.
Échelon trois
Ce qu’est vraiment le modèle
C’est un ensemble d’arbres de décision à gradient boosté — quelques centaines de petits arbres, chacun corrigeant les erreurs du précédent. Ce n’est pas un réseau de neurones, ça ne lit aucun texte, et ça n’a pas d’avis. On ne lui a jamais montré qu’une seule chose : des montants de transfert réellement payés et publiquement annoncés, extraits des pages de mercato de Wikipédia, avec le club acheteur, la date, et la fiche du joueur.
Les anciens montants sont d’abord ramenés en monnaie d’aujourd’hui. La correction n’est pas un indice économique trouvé ailleurs : elle sort de notre propre table de transferts — le montant médian annoncé par fenêtre de douze mois, lissé, la fenêtre la plus récente valant 1. L’inflation du foot mesurée avec des transferts de foot.
Le modèle prédit le logarithme du montant, pas le montant, donc il est jugé sur l’erreur relative : se tromper de 4 M€ sur un joueur à 10 M€ est une faute de même taille que se tromper de 40 M€ sur un joueur à 100 M€. Le résultat est ensuite borné entre 0,5 M€ et 222 M€, le record absolu du marché — un garde-fou, pas un jugement. Une seule constante éditoriale se pose au bout : un multiplicateur de niveau de marché, aujourd’hui à 1, qui existe pour pouvoir recaler l’ensemble de la production sur des agrégats de presse publiés en cas de dérive. À 1, il ne fait strictement rien.
388
transferts d’entraînement
8 mars 2023 → 30 juillet 2026
17
données par joueur
listées en entier plus bas
18,4 M€
erreur moyenne
sur 50 transferts réels jamais montrés au modèle
10,2 M€
erreur médiane
la moitié des estimations tombent plus près que ça
146,3 M€
plus gros montant vu
il ne peut rien prédire au-dessus
9
transferts au-dessus de 80 M€
dans tout le corpus
Les entrées
Les 17, et rien d’autre
Voici la liste complète. Aucun rapport de recruteur là-dedans, aucun ajustement caché, aucune case où quelqu’un tape le chiffre qui l’arrange. Si un fait sur un joueur n’est pas dans cette liste, il n’a pas bougé sa valeur.
- L’âge
age - Son âge le jour de la valorisation, à la décimale près. Le signal le plus fort du marché du foot : le même joueur n’est pas le même actif à 22 ans et à 31 ans.
- Le poste
pos_GK · pos_DEF · pos_MID · pos_FWD - Quatre interrupteurs — gardien, défenseur, milieu, attaquant — dont un seul est allumé. Un gardien et un attaquant n’ont jamais valu la même chose, et on ne demande pas au modèle de faire semblant.
- Les matchs en pro
total_apps - Tous les matchs chez les professionnels, prêts compris, sur l’ensemble de la carrière. La preuve qu’il joue, pas seulement qu’il est sous contrat.
- Les buts
total_goals - Les buts inscrits dans ces matchs. Décisif pour un avant-centre, anecdotique pour un axial — c’est pour ça que le modèle voit aussi le poste.
- Les matchs dans un club du classement
ranked_apps - Combien de ces matchs ont été joués avec l’équipe PREMIÈRE d’un de nos 160 centres. Les équipes réserves — Barcelone B, Bayern II, Real Madrid Castilla — sont exclues : un cinquième de cette variable, c’était du foot de quatrième division déguisé en « a joué dans un grand club ».
- Les matchs par an depuis ses débuts
apps_per_year - Le temps de jeu en rythme et non en cumul, pour qu’un remplaçant de 33 ans ne dépasse pas un titulaire de 21 ans.
- Les matchs par année d’âge adulte
age_apps - Les matchs divisés par (âge − 16) : combien de foot professionnel il a joué pour son âge. La signature du joueur lancé tôt.
- Les sélections A
senior_capssens unique - Les matchs en équipe nationale. Le verdict public le plus net sur un joueur qui ne vienne pas d’un marché des transferts.
- Les sélections de jeunes
youth_caps - Des U-17 aux Espoirs. Ce que son pays pensait de lui avant que quiconque l’achète — c’est-à-dire l’essentiel de ce qu’on sait d’un joueur de dix-huit ans.
- Les titres
honours_countsens unique - Le nombre de titres listés sur sa fiche Wikidata.
- Les titres, pondérés
honours_weightsens unique - Les mêmes titres, mais un Ballon d’or n’est pas un titre de champion. Les poids sont dans un fichier public : Ballon d’or 30, Coupe du monde 15, trophée Kopa 15, Ligue des champions 8, titre national 3, tout le reste 1.
- L’audience Wikipédia
log_pageviewssens unique - Le logarithme du nombre médian de consultations mensuelles de sa page Wikipédia. Notre seule mesure d’attention publique — combien de gens vont le chercher — et un bon substitut au bruit autour d’un joueur, que les montants de transfert ne captent jamais.
- Connu et jeune
fame_youthsens unique - L’audience multipliée par (24 − âge), plancher à zéro. Elle existe parce que l’historique des transferts ne contient aucune vente de phénomène adolescent : rien d’autre dans le modèle ne peut atteindre ces montants. C’est la seule entrée qui est ouvertement une extrapolation — et la raison pour laquelle l’échelle ci-dessus met les faits publiés tout en haut.
- La force de son club actuel
elo - Le classement Elo du club où il joue aujourd’hui, via ClubElo, avec repli sur une table publique par championnat. Si ni l’un ni l’autre ne reconnaît le club, le modèle reçoit un BLANC et pas un petit chiffre : un club qu’on n’identifie pas, c’est une information manquante, pas un mauvais club — confondre les deux coûtait une erreur systématique.
Les entrées marquées sens unique portent une contrainte dure : il est interdit au modèle de faire baisser une valeur quand l’une d’elles monte. Une sélection de plus, un titre de plus, des lecteurs en plus ne peuvent pas rendre un joueur moins cher. Ce n’est pas une leçon tirée des données : c’est une règle qu’on a imposée, parce que l’alternative est un modèle qui sort de temps en temps un chiffre insultant pour une raison que personne ne sait expliquer.
La partie qui gêne
Ce qu’il ne sait pas faire
Il ne sait pas évaluer un joueur que personne n’a vendu. Les arbres de décision n’extrapolent pas. Le plus gros montant de leurs données d’entraînement est le plus gros chiffre qu’ils sauront produire, pour qui que ce soit, à jamais. Le nôtre est de 146,3 M€, et seuls 9 transferts annoncés dans tout le corpus dépassent 80 M€. Résultat : les tout meilleurs — ceux que leur club ne vendrait pour rien au monde, et qui ne produisent donc aucun montant dont apprendre — ressortent systématiquement trop bas. Ce n’est pas un bug qu’on va corriger la semaine prochaine : c’est ce qu’est un estimateur entraîné sur des transferts. C’est aussi toute la raison d’être de l’échelon 1 : quand la presse rapporte une offre refusée ou une clause libératoire, on prend ça à la place et on te montre l’article.
Il se trompe souvent, et on publie de combien. À chaque exécution, on l’entraîne sur les transferts les plus anciens, puis on lui fait prédire les 120 derniers jours de transferts réels qu’il n’a jamais vus — 50 au total. L’écart moyen est de 18,4 M€ et l’écart médian de 10,2 M€, la différence entre les deux étant la poignée de gros transferts qu’il rate franchement. Traite chaque EST du site comme un chiffre avec cette marge d’air autour.
Sa vision du marché est anglophone. Les montants viennent des pages « List of English football transfers » de Wikipédia, parce que ce sont celles qui portent des montants lisibles par une machine. Un transfert entre deux clubs de Serie A, ou entre deux clubs brésiliens, lui est largement invisible — il a donc appris ce que paie la Premier League bien mieux que ce que paient les autres.
Il lit la fiche d’aujourd’hui sur un transfert d’hier. Matchs, buts, titres et audience sont des totaux actuels, utilisés aussi pour un transfert vieux de trois ans — aucun historique de ces chiffres n’existe en données ouvertes. La force du club, pareil : c’est la table Elo d’aujourd’hui, pas celle du jour de la signature. Les deux rendent le modèle un peu trop malin sur le passé, et on préfère le dire que l’enterrer.
Il n’a jamais vu un montant non annoncé. Les transferts à montant non divulgué, les bonus, les pourcentages à la revente et les échanges sont hors de son monde. Ce qu’il produit est l’estimation d’un montant qui ferait la une, pas de la comptabilité d’un club.
Quand on se plante lourdement et que le joueur bouge ensuite, l’erreur part au registre avec le vrai montant à côté. Le journal de bord garde les mauvais coups aussi soigneusement que les bons — il est pour l’instant en anglais seulement.
Tu as posé la question directement
Aucun modèle de langage ne touche au chiffre
Le pipeline de valorisation, c’est du Python, du SQL et scikit-learn. Aucun modèle de langage dedans, aucun appel d’API vers l’un d’eux, et aucun endroit où du texte libre devient un montant en euros. Lance-le deux fois sur le même relevé et tu obtiens les mêmes chiffres au centime : les données d’entraînement sont figées par la date du relevé, l’algorithme est déterministe, et le seul élément aléatoire — la graine avec laquelle les arbres sont construits — est fixée en dur dans le code. L’estimation d’une carte est une fonction pure des données publiées.
Un modèle de langage apparaît bien dans ce projet, une fois, dans un rôle qui n’a le droit d’écrire nulle part : celui d’auditeur. Il lit une valeur publiée, cherche sur le web, et rapporte si un média nommé a publié un FAIT pertinent — une offre, une clause, un communiqué, un montant. Il renvoie des signalements et des liens. Il lui est explicitement interdit de fournir une valorisation de son cru, et si le seul chiffre qu’il trouve remonte à un site de valorisation, la réponse attendue est « aucun fait trouvé » et notre chiffre ne bouge pas. Tout ce qu’il signale est relu par un humain, qui écrit l’ancrage à la main avec le lien source et une date d’expiration — ou qui ne l’écrit pas.
Un modèle de langage qui « se souvient » de la valeur marchande d’un joueur récite un agrégateur vu à l’entraînement. C’est exactement pour ça qu’on ne le lui demande jamais. Aucune valeur Transfermarkt ni d’aucune autre base de valorisation n’est aspirée, stockée, citée ou blanchie où que ce soit dans ce projet : tout le jeu de données est construit sur Wikidata (CC0), Wikipédia (CC BY-SA), ClubElo et des articles de presse nommés.
Tu n’es pas obligé de nous croire sur parole — le code est public : le modèle, l’échelle de valorisation, chaque ancrage avec sa source et les règles de l’auditeur.
Si on se trompe
Comment contester un chiffre
Ouvre un ticket. Dis-nous quel joueur et ce qui cloche, et si tu l’as, joins ce qui tranche : le lien d’un article rapportant une offre, une clause, un transfert bouclé ou une déclaration de club, avec sa date. C’est là-dessus qu’on peut agir — un fait publié devient un ancrage au prochain rafraîchissement, et la carte se met à afficher ta source.
Ce sur quoi on ne peut pas agir, c’est un chiffre venu d’un site de valorisation, aussi sûr de lui soit-il. Ce n’est pas un fait de marché, et ce n’est pas quelque chose qu’on a le droit de citer. « Il vaut évidemment plus que ça » est bienvenu aussi, cela dit — c’est souvent vrai, et si c’est vrai pour plusieurs joueurs à la fois, c’est un problème de modèle et non de donnée, ce qui nous sert bien plus qu’une correction isolée.
Ouvrir un ticket · les corrections partent au prochain rafraîchissement, chacune consignée dans un fichier public avec sa raison. Mauvais poste, diplômé oublié, éligibilité contestable : même adresse — les règles s’en occupent.
Données au 3 août 2026 · règles phase0-r1r16-v1 · valeurs gbt-v2. Modèle entraîné le 3 août 2026. Sans lien avec un club, une ligue ou une fédération.