,

Lessons From Building a Data Scouting App

Working in sales across Central and Eastern European football, I get to spend time with sporting directors, coaches and scouts. The question that comes up most often isn’t “who should we sign?”, it’s “how do you know he’ll fit?” And honestly, for a long time, I didn’t have a great answer. So I tried building…

Working in sales across Central and Eastern European football, I get to spend time with sporting directors, coaches and scouts. The question that comes up most often isn’t “who should we sign?”, it’s “how do you know he’ll fit?” And honestly, for a long time, I didn’t have a great answer.

So I tried building something to give myself a little more confidence

I wanted a simple one pager, taking a player and a target club, running them through a structured model, and returning a verdict in the form of a warning or a recommendation.

I’ve played with it during the transfer window and found the process fun, sometimes trusting it, and sometimes doubting it. Does it work though? That’s the question.

What is it, exactly?

The framework breaks a transfer down into three independent questions.

Context difficulty. How hard is the move itself? This compares the source and target league strengths, then adjusts for where the target club sits within its own league. Moving from the Bundesliga to a mid-table Premier League side is a different proposition to moving to Liverpool. The penalty for climbing is non-linear. Going from the Championship to the top of the Premier League is harder than going from Ligue 2 to Ligue 1, because the talent ceiling gets denser near the top. We tested this curve against 650 real transfers as a benchmark.

Stylistic adaptation. how much does the player need to change the way they play? Using purely stylistic metrics (possession, pressing intensity, line height, directness) as a proxy for what the player has been doing at their current club versus what the target club demands. A player from a deep-block system joining a high-press side gets flagged.

Player evidence. Do we know enough to trust the data? This is the busiest axis. Cross-league adjusted percentiles, performance against top opposition, age-curve modelling by position, and sample size weighting. All explicit, all visible on the dashboard.

The verdict comes from a rule cascade over these three axes, not a weighted average or index score. A weighted average can produce a positive verdict for a player who fails badly on one dimension but aces the other two.

What it gets right

The most useful thing it does isn’t the verdict. It’s making you look at the same things for every player, in the same order.

Without structure, scouting is pattern recognition dressed up as expertise. The structure here externalises the implicit checklist most people already have in their heads and makes it readable. While I was expecting the data conclusions to provide the most insight, it is in fact the consistency and repetition that brings the most value.

The league-adjustment is honest about what it knows. Strength scores are anchored to hand-set priors, nudged by team-level data within a ±3-point cap. That cap is to avoid one unusual season shouldn’t swing a league’s score too significantly.

The stylistic adaptation panel has already flagged things I wouldn’t otherwise have gone looking for. Cases where a player’s performance numbers look fine but their current team’s system is the opposite of what the target club runs. Useful conversations to have before committing time to a player.

The club-strength filter was a late useful fix in the whole build. Suggesting Erling Haaland to lower-table Serie A clubs because the league-to-league strength delta is small. Adding a strength score and capping the downward drop fixed 90% of the unrealistic suggestions without touching the legitimate ones. Surprisingly simple, but worked well enough.

Finally, adding a player’s predicted trajectory has been a useful addition, being able to view the best and worst case scenario adds a lot of value and insight.

Where it gets things wrong

The verdict logic is a hand-tuned rule cascade with about a dozen thresholds I set by reasoning rather than data. And that’s a problem.

The most honest example: Bruno Fernandes at Manchester United was rated RECOMMEND for a Liverpool move. A world class 21-year old centre-back clearing 60% of Liverpool’s positional benchmark was a mere MONITOR. The player who cleared more of the specific bar got the lower verdict. That inconsistency survived several review cycles before being caught. It’s not a rounding error. It’s what happens when branching rules interact in ways you can’t see just by reading the code.

Adding historical data is tough. I have 650 historical transfers (and growing) with success labels. I’ve used them to validate the shape of the difficulty curve. What I haven’t done is measure whether “Recommend” verdicts actually produced more successful transfers than “Warning”. Until that loop closes, the verdict labels are structured reasoning with a consistent methodology. Not fully predictive signals with a track record.

The stylistic adaptation axis uses teams as proxies for players. This is a conceptual compromise in the model. Role fit is computed by comparing the source club’s style against the target club’s style, not the player’s own style profile. The assumption is that a player conforms to their team’s system over time, so the team’s style reflects their recent context. That’s defensible. It’s also clearly wrong for a direct dribbler at a possession-heavy club, or a deep-lying playmaker at a vertical team. The tool can’t see any of that without event-level data for every player, which is a different and much larger project.

The historical progression panel compares seasons on different scales. Prior seasons use within-league percentiles only; the current season uses a cross-league pool. The chart shows direction of travel correctly. The absolute numbers aren’t strictly comparable between years but indicative of a player’s potential trajectory.

What I’d actually use it for

Not directly making decisions, but making the right conversations happen faster and avoid wasting time on unsuitable targets.

“His role fit is low because his current club almost never presses and the target side do it a lot” is a more useful starting point than “he looks good on paper but might not suit the system.” The app gets you to that starting point quickly and consistently.

What it’s not is a replacement for watching the player, knowing the market, or understanding why a transfer might actually happen. Such tool sits well alongside those things and make sense. With refinement, and consistent use, this provides a compelling way to use data.

What’s next

Three things, in order of how much they’d actually change the output.

Backtest properly. Pre-transfer data for historical seasons, run the three axes as they would have been on the decision date, compare verdicts against outcomes. Everything until then is informed reasoning.

Replace the rule cascade with something fitted to the target team. The value of this type of app will significantly increase if it is based around a club’s game model.

Further inform the player trajectory. Using historical data and a clear trend line from recent and past performances, we can significantly improve the target’s predicted trajectory.

Want to see it in action? Let’s take a look at Real Madrid’s business this summer.

Konaté, Cucurella and Diomandé come recommended, Denzel Dumfries less so!

Leave a comment