Sports analytics platform
Scout
A football analytics tool that pulls fixtures, results and standings from two external providers, runs them through an expected goals model, and surfaces one considered call per match with the full reasoning attached. It is built to help someone judge a decision for themselves, not to hand them a tip and hope.
- 66 API endpoints
- 55,000 lines of backend
- Two data providers
What went into it
- An expected goals model with separate home and away scoring profiles, opponent quality and strength of schedule adjustment, and season aware form decay
- Model goals cross checked against real shot based xG in a blend, a built in reality check that discounts lucky finishing
- Squad level adjustments that read each side's injuries and transfers in and out, and move the projection by named player
- A backtesting harness that replays the exact production model against completed seasons, tracking accuracy separately by confidence tier
- An installable progressive web app with a service worker, so it keeps working on a bad connection
The hard part
Every number a visitor sees is the end of a long chain, and the model refuses to hide it. The xG breakdown opens the whole calculation: base averages, the schedule adjustment, the real xG blend, the raw formula, every multiplier down to individual squad changes, and the final figure. Making that legible without dumbing it down, while the data behind it arrives late, inconsistently and occasionally wrong, was most of the work.
Top Picks: the strongest call across every competition, each with expected goals, odds, value and a confidence read.
The full model, opened up: base averages, schedule and blend adjustments, every multiplier down to individual squad changes, and the final xG. Nothing hidden.
Every published pick is graded automatically, with the win rate tracked separately for each confidence tier.
The form table: points, goals split home and away, last five results, schedule difficulty and scoring streak, over rolling windows.