Gaffer.
The models — how they work

Three models. Each built on the one before.

We turn raw match data into an answer to the hardest question in recruitment: what will this player actually do for us? We get there in three steps — and each model reuses the one beneath it.

0 What players are like this player?
1 How does he fit with others?
2 What can we expect in full context?
0
Model 0 · Playing-style Built & validated

What players are like this player?

Input
Every touch, run and position — how the player actually plays, from match tracking.
The model
Style fingerprint
Learns a compact fingerprint of how a player plays — from the situations he creates and inhabits, not his stat line.
one player → one fingerprint
Output
Your player · query
A. Moreno · LW · POR
K. Bruns · CM · BEL
D. Osei · RW · DEN
The players who play most alike — across positions and leagues.
In practice

Give it a player and it surfaces others who play the same way — including lesser-known names in smaller leagues, or a player wearing a different shirt number. Similar style, not similar stats.

This fingerprint is exactly what the next model reads.
1
Model 1 · Fit Next — needs denser data

How does this player fit in with other players?

Input · from Model 0
this player
teammate
teammate
This player's fingerprint, set next to the players around him.
The model
Fit
Compares fingerprints to judge how well two players would combine on the pitch — who lifts whom, and who clashes.
Output
↑ with the wingers
↑ with the No.6
↓ with the target man
A fit read for each partnership — strong links and weak ones, before a ball is kicked.
Real case

Liverpool signed Andy Carroll and Luis Suárez on the very same day. Carroll never clicked with the players around him — 6 goals in 44. Suárez gelled — 69 in 110. Same club, same day, opposite chemistry. Model 1 is built to see that gap before the cheque is signed.

This fit picture is what the final model builds on.
2
Model 2 · Outcome The north star

What can we expect from this player in full context?

Input · from Model 1 + context
vs opponent XI away 1–1 67'
The player and his fit, dropped into a real team, opponent and match situation.
The model
Outcome — the “what if?” engine
Predicts what actually happens: swap this player for that one, and see how the team's results move.
P( outcome | squad, opponent, scenario )
Output
Big chances created
fielded7
with X10
▲ +3 chances · +7% win prob
The expected result of the change — chances, goals and points, not ratings.
Phase 2 · the question worth the whole company
What if we swap player X for player Y?
During the game

It's 1–1 with 20 minutes left. If we bring on Y for X now, do our chances go up for the rest of the match?

→ live win-probability & chances, re-run per swap
Recruitment · replay

Replay a match we already played, but with X in this position. Would we have created more chances than the player we actually fielded?

→ +3 big chances vs the real line-up

Same engine, asked in two tenses — forward, before you act, and counterfactual, replaying what already happened. Because it predicts real matches, we can grade it against betting-market odds — an honest external scoreboard most rating tools never face.

The through-line

One player → a partnership → the whole match. Each model reuses the one below it.

That stacking is the point. A player's value depends on the ten around him and the eleven against him — so the engine learns players that combine, rather than ratings that simply add up. That's the part off-the-shelf stats can't do.

0 · style fingerprint1 · fit2 · outcome