Methodology

Why We Rebuilt Player Similarity From Scratch

Why We Rebuilt Player Similarity From Scratch

2026-07

Cluster players on raw event frequencies — progressive passes, carries, defensive actions per 90 — and you'll get results that look reasonable until you check a specific pair. Federico Valverde and Frenkie de Jong post similar counts across most of the obvious columns. Mathematically, that makes them close. Football-wise, it doesn't: one is a transition runner built on verticality and press-intensity, the other a tempo-controller built on retention and press-resistance. Raw counts can't tell them apart because they don't describe how the number was produced, only that it happened.

The fix wasn't a bigger model — it was a different question. Instead of feeding raw counts into a similarity function, we built three layers. Layer 1 converts raw metrics into weighted football-style scores (Build-up, Progression, Press Resistance, Transition, Creativity, Ball-Winning, and eight more), each one a blend of the underlying event columns and percentile-ranked against the player's own position family — never across positions, so a full-back's crossing volume is never compared to a striker's. Layer 2 matches the player's score-shape against a library of named archetypes (Deep-Lying Playmaker, Box-to-Box Runner, Ball-Playing Centre-Back...) using a sigmoid over the peer-relative z-scores, so confidence rewards a distinctive profile rather than just a well-rounded one. Layer 3 runs cosine similarity in that style-score space, within the same position family, and explains the match: which dimensions they share, and where they diverge.

Run it on the same two players and the picture changes. Valverde and de Jong no longer show up in each other's top comparables — his profile leans Crossing and Defensive Aggression, hers leans Retention and Build-up. Neither number is invented; both come straight from event data. The difference is that the model now asks how a player creates value, not just how much.

One honest limit: two of the twelve style dimensions — Transition and Press Resistance — are on-ball proxies. True off-ball running and defender-proximity data aren't in an event feed; we label those dimensions accordingly rather than pretend otherwise.