The feature that made it feel real was 'The Gaffa', a fully customisable coach voice assistant powered by ElevenLabs. Instead of dumping charts on a coach, it speaks key insights as the match evolves. The personality is configurable too, so it can be calm and analytical, high energy and motivational, or blunt and demanding depending on what the team needs.
The reason it works is because it is backed by live probability estimates, not vibes. We treated tactical intelligence as a supervised learning problem: given what has happened so far, can we predict the probabilities that matter and use them to value decisions? Using StatsBomb event data (StatsBomb Open Data), we trained lightweight logistic regression models for:
Pass completion probability
Shot conversion probability (xG)
Win probability, learning P(win | state) from compact match snapshots (time remaining, score difference, xG difference, xT difference)
At the action level, we compute xT (expected threat) by splitting the pitch into a grid and scoring progression with: Delta xT = xT(end) - xT(start) Then we add risk reward by weighting threat gain by pass completion probability, so ambitious passes only get rewarded when they are actually on.
We also prototyped Live Feed. You can either stream directly into the platform or paste a stream URL (YouTube Live or HLS), and the backend runs a pipeline like: frames → Anthropic (Claude) describes what is happening → we convert that into structured inputs → we recompute pass, xG, win probability + xT deltas → we prompt Claude again to decide what the coach should say right now → ElevenLabs generates the voice → overlays and commentary go out via WebSockets.
And it is not just live. At full time, you get match reports + player reports based on what was collected across the game (momentum swings, key xT actions, high value decisions, and high risk vs high reward moments), so the feedback is evidence based not just “you played well”.
It was really fun figuring out latency tradeoffs, wiring together data pipelines, cleaning data, training our own supervised learning models, and honestly just hacking hard for 24 hours (plus absorbing snacks). Would recommend.
Github repo: https://lnkd.in/ejSsm4dM Youtube links: The Gaffa: https://lnkd.in/esyt7PjD Live Stream Analytics: https://lnkd.in/e6SGe7Gw Data Analytics: https://lnkd.in/eVknQ5_g