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. C’est un choix mesuré, pas une déférence : dans notre propre table des transferts, les joueurs revendus moins d’un an après un montant payé sont partis en moyenne au-dessus de ce montant, pas en dessous — chaque formule testée pour ramener un montant frais vers notre estimation aurait éloigné le chiffre publié du prix qui a suivi. Conséquence assumée : après un gros transfert récent, le chiffre affiché ici dépassera souvent, pendant un temps, celui des sites de valorisation — eux reviennent lentement de leur estimation d’avant le transfert ; nous, on imprime le prix réellement payé, avec sa source. 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.
2 708
transferts d’entraînement
30 janvier 2010 → 18 août 2026
27
données par joueur
listées en entier plus bas
14,1 M€
erreur moyenne
sur 85 transferts réels jamais montrés au modèle
8,2 M€
erreur médiane
la moitié des estimations tombent plus près que ça
222 M€
plus gros montant vu
il ne peut rien prédire au-dessus
47
transferts au-dessus de 80 M€
dans tout le corpus
Les entrées
Les 27, 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.
- La forme de la dernière saison
ls_apps · ls_goal_contrib · ls_contrib_per_app · form_trend - Matchs et buts + passes décisives de la dernière saison terminée, lus dans le tableau de statistiques de sa page Wikipédia — en totaux, en ratio par match, et en tendance par rapport à la saison précédente. Un total de carrière ne voit pas une saison d’éclosion ; ceci, oui. Sur les transferts historiques qui servent à l’entraînement, ces variables sont calculées à la date du transfert : le modèle ne lit jamais l’avenir d’un joueur. Quand la page n’a pas de tableau de saisons, ou que le tableau s’arrête avant la saison concernée, le modèle reçoit un BLANC, pas un zéro.
- Les passes décisives de la dernière saison
ls_assistssens unique - Les passes décisives de la dernière saison terminée, lues dans les tableaux de statistiques des Wikipédia française et espagnole — les tableaux anglais n’ont presque jamais de colonne passes, et sans elle chaque créateur passait pour un finisseur moyen. Une source n’est crue pour un joueur que si ses matchs et buts de championnat concordent avec le relevé anglais sur au moins deux saisons ; un parseur qui déraille sur une mise en page exotique coûte alors de la couverture, jamais du poison. Quand aucune source ne passe cette porte, le modèle reçoit un BLANC, pas un zéro. Plus de passes ne peut que monter une estimation, jamais la baisser.
- Le vote des experts
ballon_recentsens unique - Son meilleur classement au Ballon d'Or sur les trois années closes avant la date de référence — le vote tombe à l'automne, un transfert d'été ne peut donc jamais lire le scrutin qui le suit. C'est la seule mesure publique, datée et librement réutilisable de ce que les experts pensent qu'un joueur EST, et elle existe précisément pour ceux que les statistiques de comptage ne voient pas : le métronome qui porte une équipe de triplé avec cinquante matchs et sept buts+passes. Jamais nommé = un BLANC, pas un zéro — l'essentiel du football n'est pas classé et ce n'est pas une donnée manquante. Les mêmes votes fondent aussi un plancher de corpus : aucun joueur de moins de trente ans classé top 15 dans les trois ans ne s'est vendu sous le montant publié dans notre corpus de transferts, et quand ce plancher soutient une estimation, la carte le dit avec son n.
- Les titularisations en championnat, au niveau
ls_apps_at_level · share_rawsens unique - Quelle part du championnat de la dernière saison terminée il a réellement jouée (matchs rapportés à une saison de 38 journées), et ces matchs pondérés par la force du club où il les a joués — 28 matchs dans un club de Ligue des champions pèsent plus que 38 dans la lutte pour le maintien. Les buts et les passes décisives valorisent les attaquants ; le signal de marché d’un défenseur, c’est d’enchaîner les matchs de championnat dans un bon club, et c’est exactement ce signal. La part de matchs compte chaque apparition en championnat, que le club soit identifiable ou non ; la pondération par le niveau est un BLANC, pas un zéro, quand les clubs ne sont pas identifiables, et une saison en équipe réserve compte pour un niveau nul, délibérément.
- La force de son championnat
seller_lg - L’Elo médian des clubs de la cohorte (pays, division) de son club actuel — la force du CHAMPIONNAT où il joue, par opposition à la force de son club. Un grand club dans un championnat faible (l’AEK Athènes : club à ~1640, cohorte du championnat grec à ~1360) se revend sur un tout autre marché que la même cote en Bundesliga, et la cote du club seule ne sait pas le dire. Sur les transferts historiques qui servent à l’entraînement, cette variable est calculée pour le club qui a VENDU le joueur — celui où il était quand l’indemnité a été convenue — c’est-à-dire exactement ce qu’est le club actuel au moment de l’estimation. Un club sans championnat coté est un BLANC, pas un zéro.
- 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 A des deux dernières années
caps_last_24msens unique - Parmi ces sélections, celles de l’année en cours et de l’année précédente — lues dans le tableau « par année » de sa page Wikipédia, avec l’infobox en secours. Un total de carrière ne distingue pas un retraité à 30 sélections d’un international actuel à 9 ; ceci, oui. Quand aucune source ne peut dater ses sélections, le modèle reçoit un BLANC, pas un zéro.
- 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 (30 − â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 222 M€, et seuls 47 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 — 85 au total. L’écart moyen est de 14,1 M€ et l’écart médian de 8,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 — cette page EST l’algorithme, écrit en entier : chaque entrée du modèle, chaque barreau de l’échelle, chaque garde-fou. Si un chiffre te semble toujours faux après lecture, écris-nous et on sortira les reçus.
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.
Écris-nous · les corrections partent au prochain rafraîchissement, chacune consignée avec sa raison. Mauvais poste, diplômé oublié, éligibilité contestable : même adresse — les règles s’en occupent.
Données au 19 août 2026 · règles phase0-r1r16-v1 · valeurs gbt-v2.5. Modèle entraîné le 17 août 2026. Sans lien avec un club, une ligue ou une fédération.