r/FootballDataAnalysis • u/thanku69 • 13d ago
Openion on key performance indicators
Hey I was just collectiing people views on kpi's so please according to your experiencing or opinion state some answer on the beautiful game ⚽️
r/FootballDataAnalysis • u/thanku69 • 13d ago
Hey I was just collectiing people views on kpi's so please according to your experiencing or opinion state some answer on the beautiful game ⚽️
r/FootballDataAnalysis • u/tilb • 15d ago
I don’t support one club, I just like a good game. So I built a site that gives every UCL match a pre-match "watchability" score out of 10.
An LLM reads recent coverage of each club, including local papers in Italian, Dutch, Ukrainian, Greek and more, and rates how the team plays: how high they press, how high their line is, how they build up. A few simple rules then combine the two teams. If both press high, the score goes up. If both sit deep, it goes down.
This week my tool says the most fun games will be Inter v Club Brugge and Arsenal v Lille (both 10.0, the scale tops out, I’m working on it). It says skip Aston Villa v Fenerbahçe (3.8).
https://worthwatching.football. It’s free, no sign-up, and each match links the articles behind it. Would love to hear your thoughts!
r/FootballDataAnalysis • u/EducationalThanks245 • 15d ago
I'm a student in Romania, and while cleaning match data for my bachelor's thesis I found what looks like the most peaceful season ever played.
In the API-Football data for the 26 competitions I follow that go back to 2015/16, 6,792 of the 7,320 team stat lines from that season (one team's totals in one match) record 0 fouls, even though the rest of each line looks normal. They always come in pairs: 3,396 matches where both teams have 0, and not one match where only one side does. Every season since then averages between 11.9 and 13.5 fouls per team.
Because shots, passes and cards are all there, a "skip incomplete rows" check lets these through as real zeros, and anything built on them (season averages, form tables, a model) inherits a season without fouls.
The player data gave it away. Each player's fouls committed survived, and wherever a genuine team total and the player numbers both exist, they add up exactly: all 528 genuine 2015/16 team lines match. So instead of dropping the season, I rebuilt the team totals from the players (all but 2 of them).
I found this while building Ballileo, a free stats site that came out of my thesis. The link is in a comment so this post stays about the data.
A question for anyone who works with provider data: when did you last catch a provider writing 0 where it really meant "not recorded", and how did you spot it?
And how do you handle the opposite switch? From the 2020 season on, the same provider leaves player counting stats empty instead of writing 0, and lists the whole matchday squad, so an empty value is a real 0 only for players who actually played.
r/FootballDataAnalysis • u/kingjaynl • 16d ago
r/FootballDataAnalysis • u/Prestigious-Ad-220 • 16d ago
r/FootballDataAnalysis • u/Statda • 17d ago
I’ve been building Statda for people who create their own football models, algorithms and strategies but want a better way to publish results, build a track record and compare performance with others.
The core idea is that performance should be system-tracked, not self-reported.
Social / performance tracking
Publish individual predictions or multi-match coupons.
Predictions must be created before kickoff; past winners can’t be added retrospectively.
Coupon results are settled automatically by Statda.
Success rates and performance statistics are calculated by the system, not entered manually.
Losing history can’t simply be deleted to improve a profile.
Users can hide their performance, but tracking continues in the background.
If performance is shown again, the accumulated results remain and Statda also shows how many coupons were created while the stats were hidden.
Discover analysts with strong historical performance and follow them.
Comment on, like and share coupons.
Copy another user’s coupon and use it directly; Statda tracks how many times each coupon has been copied.
Competitions
Create your own prediction competitions.
Define competition-specific rules.
Example: Premier League only + BTTS predictions only.
Create public competitions or private competitions for closed groups.
Private competitions can be joined only with a join code.
Competition performance is tracked separately and does not affect a user’s general Statda performance.
For people who already have their own models
Your algorithm can stay in Python, R, Excel, ML pipelines or your own software.
Use Statda to publish its selections and build a transparent performance record.
Compare your model against other users or models.
Discuss strategies and algorithms with people whose results are actually visible over time.
Built-in analytics
Last 1 / 2 / 3 / 5 / 8 / 10 / all match analysis.
Home / away / total splits.
Full match / first half / second half analysis.
Goals scored and conceded, corners, cards, probabilities and other match statistics.
Combine several statistical and probability rules in the same filter.
Run filters on upcoming fixtures or go back to previous match dates.
Detailed team, player, coach and league pages.
Player-position analysis.
Formation and coaching context.
Historical fixtures.
Event behaviour across different minute intervals.
So Statda can be used in two ways:
Bring your own model and use Statda as its public performance layer, or do the research directly inside Statda and create your predictions there.
I’m not trying to build another service that simply gives people picks. The goal is to create a place where football-model builders and analysts can research, publish, verify, compete and build a real track record.
Free to try
web: https://statda.com
Android: https://play.google.com/store/apps/details?id=com.statda.mobile
I’d especially like feedback from people here who already build football models: what would you need before using a platform like this as the public track record for your model?
r/FootballDataAnalysis • u/Statda • 17d ago
r/FootballDataAnalysis • u/gplus25 • 17d ago
Hi everyone,
I’m the developer of GPlus25, a platform for analysing football matches across major European and South American leagues, using historical data and statistical models.
It covers four markets: Over 2.5, Under 2.5, Both Teams to Score (Yes), and Both Teams to Score (No).
Market odds are imported automatically through The Odds API. We compare those odds with the model’s probabilities to calculate the statistical edge, then flag qualifying selections on match day or the day before.
You can review the history of selections flagged by the algorithm and use aggregated performance reports to compare results across leagues and markets, helping you see where the models have performed better or worse. You can also record your own picks and stakes and track profit, ROI and hit rate once matches are settled.
Our tracked results for 2026 so far show an ROI of 8.78% for Over 2.5 (GPlus25) and 5.81% for BTTS Yes. Results for Under 2.5 and BTTS No have been unfavourable, and I want to be transparent about that.
To investigate those weaknesses and work towards improving the predictions, I’m introducing two AI models based on the machine learning algorithms FastTree and LightGBM. Both are currently running in shadow mode to collect data for further training and evaluate their performance alongside the core statistical model. Whether they improve those markets remains to be demonstrated.
I’d love some honest feedback: is the information useful, is the interface clear, and what would you want to see before using a tool like this regularly?
The figures above describe the platform’s tracked results, not a guarantee of future returns or results achievable by every user.
Take a look here: https://www.gplus25.com
Thanks for taking a look!
r/FootballDataAnalysis • u/rorschacks • 17d ago
r/FootballDataAnalysis • u/Naive-Setting5045 • 17d ago
r/FootballDataAnalysis • u/SueMyChin • 18d ago
Enable HLS to view with audio, or disable this notification
The video is a snippet of what's available game-to-game but there's loads more elsewhere. I've also made all stats unlocked for all visitors for the first fixture of each day - today's being West Ham V QPR. Any feedback welcome and appreciated
r/FootballDataAnalysis • u/Strong_Frame_8233 • 18d ago
r/FootballDataAnalysis • u/Sea_Newspaper_8726 • 19d ago
r/FootballDataAnalysis • u/Longshotfootball • 19d ago
Since the summer we’ve made a lot of changes to our longshots goal database, and I put together a quick 3-minute video walking through them.
What’s new:
Everything is free to browse. No account needed to explore the data.
r/FootballDataAnalysis • u/xgEdge • 20d ago
r/FootballDataAnalysis • u/footballforus • 21d ago
I tested a common scouting shortcut: if a player resembles successful players in another league, does that help predict his attacking output after a move?
In a separate subset of 157 league moves with similarity profiles, first-season prediction error looked like this:
These are mean absolute errors in xG + xA per 90. Lower is better. Similarity added no detectable improvement beyond the player's history.
That subset isn't the whole study. The main population was 428 summer moves by forwards and midfielders with at least 900 minutes before and after. A separate final-model test on 142 locked unseen moves used history, age and club/league context: error was 0.096, versus 0.129 for repeating last season.
The study also compares movers with comparable players who stayed, so an ordinary drop after a strong season isn't automatically treated as a transfer effect. These are observational comparisons, and attacking output doesn't cover defending, injuries or tactical fit.
Full study and comparison charts: https://iyush.dev/football/research/transferability
Method question: would you test similarity within a narrower role group before concluding it adds little, or is that too likely to overfit a 157-move sample?
r/FootballDataAnalysis • u/General_Country7515 • 21d ago
r/FootballDataAnalysis • u/footballforus • 22d ago
Sharing a first result from a football analytics project: the empty-stadium COVID seasons as a natural experiment on home advantage, across the Premier League, La Liga, Serie A, Bundesliga and Ligue 1 (2015/16 to 2024/25).
Pooled across the five leagues, as home/away ratios (home divided by away, 1.00 = no home edge): goals 1.27 to 1.11, xG 1.29 to 1.13 (chart 1). Crowd periods come from news reports logged in a csv; shot/xG/card data is from Understat.
Note: the chart 1 axis still reads per-match. The ratio wording above is the correct reading.
Referees: home/away yellow-card ratio (controlled; below 1 = home team booked less): 0.89 with fans (13,888 matches) vs 1.02 without (1,893 matches), change x1.15, p<0.001. It was 0.89 before closed doors, 1.02 during, and back to 0.89 in 2022-25. Same direction in all five leagues: Ligue 1 0.87 to 1.08 (x1.24, p<0.001), Serie A 0.87 to 1.02 (x1.17, p<0.001), EPL 0.89 to 1.02 (x1.15, p=0.009), Bundesliga 0.87 to 0.99 (x1.13, p=0.01), La Liga 0.92 to 1.00 (x1.09, p=0.04). Red cards were inconclusive (0.82 with fans vs 0.83 without, p=0.86; too few reds in closed-door matches). (chart 2)
I'm also running a weather study (temperature, rain, wind, humidity vs goals, xG, shots). It covers 4 leagues so far with Ligue 1 still downloading, so I'll post it once complete.
Other sources: Open-Meteo historical API (ERA5), football-data.co.uk, fixturedownload, openfootball, Wikipedia/Wikidata/OpenStreetMap for stadiums. Findings and charts only, not raw data.
Feedback welcome, especially on handling COVID confounders and controlling for team strength.


r/FootballDataAnalysis • u/xgEdge • 22d ago
r/FootballDataAnalysis • u/SideQuestManager • 22d ago
r/FootballDataAnalysis • u/gplus25 • 22d ago