Onze Maison

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. 1

    Une valorisation publiée, avec son reçu

    REPORTED

    Un 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. 2

    Un transfert réel, réellement payé

    FEE

    Si 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. 3

    L’estimation du modèle

    EST

    Pas 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. 4

    Une formule publique, en dernier recours

    EST

    Quand 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’âgeage
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 postepos_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 prototal_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 butstotal_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 classementranked_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ébutsapps_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 adulteage_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 Asenior_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 jeunesyouth_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 titreshonours_countsens unique
Le nombre de titres listés sur sa fiche Wikidata.
Les titres, pondéréshonours_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édialog_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 jeunefame_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 actuelelo
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.