r/sportsanalytics

Football analysts: how do you turn one good analysis into multiple pieces of content?

I’ve been thinking about the gap between doing football analysis and actually turning that analysis into content people will engage with.

For example, let's say you analyze one match and find something genuinely interesting — a tactical pattern, a player's unusual role, an xG anomaly, a pressing issue, etc.

That single insight could potentially become:

  • A quick data visualisation
  • A tactical breakdown
  • A short-form post with one key takeaway
  • A player comparison
  • A pre/post-match discussion
  • A "what the numbers don't tell you" angle

My question is: do you have a repeatable process for turning one piece of analysis into multiple content ideas, or do you start from scratch every time?

I'm curious because I think many good football insights never reach an audience simply because the analysis is there, but the content angle isn't.

Would love to hear how people here approach that process.

reddit.com
u/Old-Day-6407 — 6 hours ago
▲ 1 r/sportsanalytics+7 crossposts

DanFootball — a free football manager where you WATCH your team play live in the browser (no download, no signup needed to watch)

Hi! I'm the developer of DanFootball, a browser-based football manager I've been building for the past few months. It's now live, with real managers already playing.

The main difference from most browser football managers is that you don't just see the final score or a results table — you can actually watch the match unfold through a live pitch feed, minute by minute, with substitutions, cards, injuries, penalties, and running commentary.

Leagues run in parallel every day, with promotion and relegation between divisions. The main leagues have 16 teams, and each team plays a 30-match season.

Each match lasts around five minutes. Five rounds are played every evening, starting at 19:00 GMT, with a new round kicking off every 15 minutes — so a full matchday plays out in about an hour. One in-game year lasts one real week, so players age and seasons move quickly.

Every match is saved in a full season archive and can be replayed later.

You can watch all matches without creating an account. Outside the daily live window, an automatic replay system shows selected matches from the archive, so there's always something on.

To create your own club, you can register, sign players through live auctions against other managers, choose your lineup, and then watch your team play.

I'd be happy to answer any questions. Honest feedback — especially about the onboarding, interface, and readability — would be genuinely helpful.

danfootball.com
u/Global_Ad1238 — 14 hours ago

What leagues do you think has the most goals?

I started taking a look at what leagues score the most goals over the past few seasons to help with forecasting and increasing my knowledge the upcoming season. I pulled data for 29 of the main leagues across the world to see where the best league for goals over the past four seasons.

Everyone says the Premier League is the most competitive league, but that doesn’t translate into goals at all. The prem doesn’t even make the top five, actually on features at 7th.

The German Bundesliga unsurprisingly gets the top spot, Harry Kane and Bayern just score a silly number of goals.

I was shocked when seeing Brazil and Argentina are both in the bottom three especially Brazil because we associate flair and attacking intent but it’s a very different story.

I put the full breakdown, all 29 leagues, methodology and the continental comparison together as part of a new football analytics project I've been working on called TheDatabetics.

Which league shocks you most? And what would like to see next?

u/TheDatabetics — 14 hours ago

Is AI in Sports Analytics Actually Useful Yet?

AI in sports is getting better, but I think the real challenge isn’t collecting more data anymore. It’s understanding what actually matters.

Video + performance data seems especially interesting because it can connect stats with what was actually happening on the field.

I’m curious - where do you think AI is genuinely helping sports teams today, and where is it still mostly hype?

reddit.com
u/ImmediateTie9057 — 17 hours ago

Football analytics across top 30 leagues - opponent-adjusted stats, a cross-fixture hit-rate scanner, and a calibrated fouls model tested on a 45-day holdout

Hi all. Stats to Bucks is a football (soccer) data app, now covering 30 leagues - the top 5 European plus Brazil, Argentina, Liga MX, MLS, Saudi, Portugal, the Netherlands, Turkey, Belgium, Scotland, Japan, Korea, Colombia, Greece, Egypt, South Africa, Australia and more.

What it does:

  • Player & team form - last 20 matches of per-game stats, charted against any line you set, with the hit rate for it.

  • Filters that narrow the sample - venue, minutes, started-only, and "without teammate X".

  • Opponent-adjusted context - overlay the opponent's conceded average and defensive rank, plus quality-adjusted averages, so a streak against weak sides doesn't read like one against strong sides.

  • Hit Rates - scan every upcoming fixture at once for players/teams clearing a line in a chosen % of recent games. 40 stats across players and teams.

  • Foul matchups - a fitted hierarchical Poisson model with player, opponent, referee, venue and expected-minutes as separate multiplicative terms, and a negative-binomial predictive head. Walk-forward tested on a 45-day holdout: +13.3% / +16.6% mean relative log loss against an unshrunk per-90 baseline, with roughly 3x better calibration error.

  • Predicted lineups - projected XI from a Beta-EB start-probability model, so it works for a fixture's whole lifetime instead of only after a feed publishes one. Flips to the confirmed XI when that lands.

  • Injuries & suspensions - folded into the start probabilities rather than bolted on as a badge, so an unavailable player drops out of the projected XI and out of the minutes model behind the prop lines.

  • Similar players / teams - similarity-based benchmarking against comparable profiles, on rolling cross-season windows rather than season-to-date.

  • Referee analytics - per-fixture card/foul profiles and rankings.

  • League tables - official standings, so competition-specific tie-breaks, split point-halving and points deductions are right rather than re-derived from results.

The focus is still contextualising the sample - opponent strength, venue, lineup, availability, sample size, etc. because an unfiltered hit rate usually answers the wrong question. A recent backtest made that concrete: selecting team props purely on "recent hit rate beats the implied probability" returned about -10% over ~7,000 bets on a held-out window, statistically indistinguishable from betting blind. The context is the useful part, not the raw streak.

u/Kroggg19 — 18 hours ago

I backtested a Poisson model across 22 European leagues. It failed in five of them.

I backtested a Poisson model across 22 European leagues. It failed in five of them.

I've been building a match projection model and wanted to know where it actually works rather than assuming it works everywhere. Sharing the results because the failures turned out more interesting than the successes.

Setup

Standard Poisson approach — attack and defence strength from each team's recent matches, normalised against league scoring average, with per-league home advantage. Shrinkage toward neutral for teams with thin sample.

I ran a rolling backtest over 2025–26: replay matches in chronological order, and for each fixture the model only sees results from before that kickoff. Roughly 6,700 predictions across 22 leagues.

Overall

  • 48.2% correct on 1X2
  • Log loss 1.029 (random is 1.099)
  • Brier 0.618 (random 0.667)

Modest, and roughly what you'd expect from a goals-only model. Calibration held up well — the 60–70% bucket landed at 62%, the 80–90% bucket at 87.7%.

Where it broke down

Five leagues came out materially worse. The pattern that surprised me: split-season formats. Austria's Bundesliga was the worst — below random. Belgium's Pro League similar. Both split into championship and relegation groups partway through, which resets the competitive structure the model assumes.

The second-tier leagues also underperformed (Championship 44%, La Liga 2 44.5%), which I'd guess is squad churn and rotation making recent form less predictive.

What I'm still stuck on

Draws. Calibration is fine in aggregate — the model says 27% and about 27% of matches draw — but there's no discrimination at the top end. The 24–27%, 27–30% and 30%+ buckets all landed within a point of each other. So I can tell you how many draws a league will have, but not which matches. Dixon-Coles is the obvious next step; hasn't been tested yet.

Also unsure whether shrinkage at k=6 is right. A parameter sweep picked 14-match windows over 8 or 20, but the k value was less clearly separated.

Happy to share the per-league breakdown if useful. Curious whether anyone else has seen the split-season effect, or found something that handles it.

reddit.com
u/onpaper_kishon — 1 day ago
▲ 19 r/sportsanalytics+1 crossposts

I Built a CLI Tool For College Football Data/Analysis

I’ve been using CFBD this offseason and wanted an easy way to connect the data to AI coding agents, so I built this:

https://github.com/jvorndran/fbs-cli

It’s basically like an MCP, but it uses a CLI instead, which is more token efficient and creates less context bloat. It currently supports all 71 CFBD GET endpoints and returns the data as YAML.

For example:

fbs games --year 2026 --week 1 --team Florida

You’ll still need your own CFBD API key, then you can set it up by running:

fbs auth

I’ve been using it with Codex in my own college football research workflows and it works pretty well. This article has some interesting evals comparing CLI tools with MCP if you’re curious about why I built it this way:

https://www.scalekit.com/blog/mcp-vs-cli-use

Would love any feedback or ideas for what to add next.

reddit.com
▲ 29 r/sportsanalytics+16 crossposts

Brooklyn Cyclone Win

Hello Coney island Baseball Game Great to watch & going with friends or Family. Got a free Jerseys & They do giveaway for games. Make Sure to support local Events make coney island Great

m.youtube.com
u/YUNGRC_ — 2 days ago
▲ 12 r/sportsanalytics+1 crossposts

Measuring how much pass quality predicts attack success in MLV

Don't know how many volleyball fans are in this sub, but I wanted to share an analysis I've been working on!

The question: in Major League Volleyball (MLV, or formerly PVF), given the quality of the preceding pass, how often does the attacking team actually get to attack, and how often does that attack end in a kill?

The data and the pipeline: the raw play-by-play data (via the pyvolleydata package) is action+outcome graded (VolleyStation notation, single letter codes for contact types and single symbol codes for contact evaluations). Reconstructing each contact sequence within each rally seemed easy; just track each contact and forward-fill each pass grade (within each rally) until the next pass or until the point ends, right? But it also required accounting for overpass kills (which don't have a preceding pass) and block recycles, where the ball stays alive off a block touch.

That last part ended up being quite the quirk of the data: for block recycles, the pass involved is rarely tagged in the data; it's just implicitly included in the block touch tag. This made tracking the passes off of blocks quite the annoying task (because how the hell do you validate your logic on something that doesn't explicitly exist in the data?). So my solution was to only track the blocks where the next touch was from the attacking team, not the blocking team - if the next touch after the block was from the attacking team, then there inherently was a block recycle pass.

However, one fact that made this worth mentioning was that, based on the quality grade of the block touch, the ball would go back to the attacking team at varying rates:

  • Actual block recycle grade (!): ~99.8% of the time, the attacking team gets the next touch (this is the only grade that VolleyStation's public criteria says block recycles exist)
  • Hard-contact grade (+): ~99% of the time, it's the blocking team's recovery (assumed to be hard contact; VolleyStation doesn't have public criteria for this grade)
  • Soft-contact grade (-): split almost evenly, ~50% of the time is goes back to the attacking team, and vice versa

This made reporting our first number (probability of an attack happening, given the pass quality) unreliable for the hard and soft contact block grades based on my attacking team conditional logic: the denominator wouldn't end up being "block recycle passes that go to attacking team", it would be "general blocks that may go to the defending team". As such, I only calculated the attack rate for the confirmed block-recycle grade, and did the kill rate (which is calculated from passes that attacks happen) for all three.

The results (full tables in my writeup):

  • Bad serve receives still get attacked ~92% of the time; bad digs only convert to an attack ~73% of the time - implying that the "transition between defense to offense" has a quantifiable penalty on setters/attackers in the face of bad passes.
  • Kill rate spread from perfect -> bad pass: 18 points for serve receive (45.9% -> 27.9%), narrower and generally lower for digs (29.9% -> 22.5%).
  • Confirmed the trend is statistically monotonic (not just "different") with a Cochran-Armitage test per pass type. Showed the trend is strongest for receives, weakest for freeballs.

Limitations: Obviously, MLV is a relatively new and small league; the data points across three seasons are magnitudes smaller than something like NCAA data. Additionally, I found and removed 9 rows of data corrupted by mid-rally stoppages (injuries or challenges, which messed with the logic of my pipeline), all video-confirmed (but I can't rule out similar issues elsewhere that I didn't detect).

Full writeup with more tables on Medium (or Substack if medium tries to paywall you)

Open to any and all feedback in the comments! Let me know if anything doesn't make sense and I'll do my best to explain everything!

u/SlyZ1228 — 2 days ago
▲ 5 r/sportsanalytics+1 crossposts

High school senior building an MLB front-office portfolio on GitHub. Just finished a mock Braves/Rangers trade evaluation for Kumar Rocker and would love feedback!

github.com
u/Specialist_Fix1376 — 2 days ago

Does scheduleadjusted run differential actually improve MLB win prediction or just add noise ?

Been obsessing over run differential as a predictor for the last few weeks. It started as a personal finance tracking habit, honestly. I just like building spreadsheets, and at some point I applied the same logic to MLB standings because why not.

The basic Pythagorean expectation stuff holds up pretty well across a full season. What's breaking my brain right now is when I start weighting opponent quality into it. If a team pads their run differential beating up on bad rotations all April, the raw number feels kind of dirty. So I pulled opponent run differentials for every series and tried adjusting for that, and suddenly the expected W/L correlation gets a lot messier.

My gut says strength of schedule matters more in baseball than people give it credit for, especially early in the season before things even out. But I genuinely cannot tell if my adjustment is doing real work or if I'm just adding noise.

Curious if anyone here has tried building a scheduleadjusted run differential model for MLB and whether the extra complexity actually bought you anything predictive. Also wondering if this plays out differently across divisions, since the unbalanced schedule makes some matchups way more lopsided than others.

reddit.com
u/Born-Letterhead2895 — 3 days ago

First-year Sport Analysis student looking to build experience — what would you do?

I'm a first-year student in Sport Analysis & Technology in Morocco, with a strong interest in football analysis.

I have around 2 years ahead of me before graduation, and my long-term goal is to be able to continue my studies or find work/internships in Europe.

I don't want to wait until graduation to start building my profile. I want to use my university years to develop real skills and, more importantly, get actual experience.

I currently have a 30-day period before university starts, and I'm willing to travel within Morocco if there's a worthwhile opportunity.

For people already working/studying in sport or football analysis:

What skills would you prioritize if you were starting again?

What kind of projects actually helped you get noticed?

How did you get your first real experience?

Is it worth approaching academies/clubs directly, even as a beginner?

What would make a student from Morocco more competitive when applying to European programs/internships?

What mistakes should I avoid during my first few years?

I'm particularly interested in football analytics, data analysis, scouting and performance analysis.

I'm not looking for a shortcut — I want to know what I should realistically start doing now.

Any advice from people who have actually gone through this would be greatly appreciated.

reddit.com
u/L4TER_0N — 3 days ago

[Hiring] Football/Soccer Writers & Graphic Designer — Revenue Share — 2026/27 Season

With the new season kicking off soon, we're looking to build out our writing team at ATHalftime Sports Media ahead of the 2026/27 season.

Looking for 2–3 writers/journalists:

1x South African football journalist — covering the PSL, Bafana Bafana and CAF
1–2x European football journalist(s) — covering the Premier League, La Liga, Ligue 1, and Champions League (focus on the top clubs)

You'll be covering transfers, scandals, score updates, and anything else breaking in the football world.

Compensation: A percentage split on articles you write, plus a share of any sponsored/branded content placed on your articles (final rates agreed per writer).

What you get:

A WordPress author login to write, publish, and edit your own articles
Your work distributed across our social media platforms (Facebook, TikTok, YouTube, and more) chance to grow your own portfolio.
A signed contract outlining terms

Also hiring: Graphic Designer

We need someone to create full-time (final score) graphics for our social posts. Paid on a revenue-share basis tied to the performance of your graphics across our monetized platforms.

If you're a football fan who can write fast and accurately under deadline (or design clean, eye-catching graphics), send a sample of your work / portfolio and a bit about yourself in the comments or DM.

reddit.com
u/Icy-Temperature-8912 — 3 days ago
▲ 13 r/sportsanalytics+2 crossposts

Free advanced analytics football API

Hi everyone, after the Fbref data lockdown of January I made a post here offering a database with advanced football metrics and the response I received was overwhelmingly positive.

Since then I've been working hard on building an API incorporating an event feed and creating a pipeline that will convert the feed into SPADL format and serve meaningful derived metrics directly via API instead of scraping it and storing it in a database.

This API serves post match data only like lineups, xG xGOT per shot with coordinates, xT and VAEP per player, GCA, SCA, xGChains, passing networks, momentum pressure index and much more.

Feel free to check out my docs page at pitchapi.dev to read more about the service. The VPS i currently use to host this can only handle around 100 requests per second so please use this with some rate limiting in mind.

I would love your feedback on this and any suggestions about how to improve the overall experience.

reddit.com
u/Superb-Wolverine4868 — 4 days ago

Where to start

I woke up the other morning and saw a Facebook ad about sports analytics and suddenly felt this is definitely something I want to do.

I am a mgmt consultant working in m&a and absolutely hate it. Money is good but not something I enjoy. What I enjoy is sports - watching and playing.

My plan - spend next 1 year learning and doing projects to build my portfolio and then try and switch.

My ask is 3 fold:

  1. Is it a worthwhile plan or am I just building up hope with v little chances of success. (My wife jokes I am having mid life crisis)

  2. As I understand i first need to build skills in analytics ( big data, python etc). Where and how do I start? I do lots of data analysis but mostly excel based.

  3. How is or difficult is the industry to crack into as a newbie?

Happy to add more info if that helps.

reddit.com
u/confused_randomguy — 4 days ago
▲ 67 r/sportsanalytics+1 crossposts

Hydration Breaks Change the Flow of the Game - A statistical analysis of xG and more

I ran a statistical analysis to see the effect hydration breaks had on match momentum (via cG created). I'll go into more detail below, but summarize the findings right here:

TLDR: Match data suggests that hydration breaks create larger swings in xG advantage before versus after the hydration break in each half, comparing the 2026 world cup with 2018-2022. Total xG and shot activity around the first hydration break also swung more in 2026, and even total attacking activity, regardless of team, swung more across hydration breaks in 2026. Restricting to only group stage games or only knockout or round-of-16 games preserves the pattern, and so the new 48-team format is unlikely to blame for this shift.

Putting aside ad revenue for FIFA and hydration of the players, for teams the hydration break gave a timeout that allows for tactical adjustments / reset. We should expect the momentum and chance distribution to change as a result: Is a team that had lots of chances before the hydration break as likely to continue creating chances after the hydration break as it would have been without the hydration break? Does the hydration break help teams with no chances reorganize to create something? These would lead to swings in chance creation, meaning larger changes in team advantage in xG, shots, or goals. How can we measure such swings in chance creation? The best quantity to look at is the change in a team’s xG advantage from the “first quarter” (Q1), the period of the first half before the hydration break, to the “second quarter” (Q2), the period after it. We then make the same comparison between Q3 and Q4 in the second half. I beg forgiveness for my footballing sin of calling them quarters here.

https://preview.redd.it/yl3gcyd8d8jh1.png?width=2564&format=png&auto=webp&s=d517a6f6d5155c611a7518d5c138f7918cf5f49c

The above figure compares those xG-advantage changes with the equivalent changes in matches from previous World Cups without hydration breaks. There is a noticeable shift toward larger swings around the break timing in 2026. 2026 saw 20% of matches have an xG swing of 1 or more, which happened in only 11% of world cup matches in 2018-2022. The average absolute swing in xG advantage was 0.47 xG; in 2026 it was 0.56 xG.

Running a statistical analysis that asks, “Are these swings in the 2026 World Cup?” gives a p-value of 0.032. That tells us, roughly, that observing this kind of a signal only as a result of randomness (and not some real underlying effect) is only 3.2%; the hydration breaks seem to have a real, measurable effect. Statistical details, including assumptions, methodologies, and multiple-testing adjustment, are provided at the end of the article.

But hey! Maybe the new format is to blame, since the Round of 32 could just create matches with big chance-creation swings. We can rerun the same analysis on the group stage only (p = 0.050) or the Round of 16 onward only (p = 0.077, with far fewer matches), and the data still points in the same direction; see the figure below. The new format is unlikely to be the reason for these huge xG swings.

https://preview.redd.it/4r9ol1z9d8jh1.png?width=3519&format=png&auto=webp&s=054a55ff1c45c51d3f2c0643909f5491e57ede8c

Beyond which team holds the xG advantage, there also seems to be a change in overall attacking activity on both sides of the pitch. The plot below compares the absolute difference in total xG and total shots before and after the first hydration break, and the spread for 2026 is quite a bit wider. Average total-xG movement rises from 0.41 xG in 2018 and 2022 to 0.54 xG in 2026 (unadjusted p = 0.063). The corresponding average shot movement rises from 2.49 to 2.90 shots (unadjusted p = 0.053).

https://preview.redd.it/2layoi02e8jh1.png?width=3164&format=png&auto=webp&s=80506c49e1ff205c374f440ec4654e2b60d3f5fc

for more details, see the substack article here:

Do FIFA Hydration Breaks Change the Flow of the Game? Statistical Evidence of Chance Creation Swings

reddit.com
u/pkerger — 6 days ago

42 AI models locked their La Liga opening-day scores: none predicts an Alavés win, and Sevilla–Rayo splits 19–20–3

I run PunditBench, a public benchmark that asks models for exact scores before kickoff. It publishes SHA-256 hashes and git history, so changing a miss later would invalidate the record and leave public evidence.

La Liga starts today. The Matchday 1 batch finished and was hash-locked at 06:59 UTC on 14 August, before the first match. All 42 eligible models returned predictions for all ten fixtures.

For the two games tonight:

- Alavés vs Getafe: 0 predict an Alavés win, 32 predict a draw and 10 predict a Getafe win. The modal score is 1-1 (26/42).

- Sevilla vs Rayo Vallecano: 19 predict Sevilla, 20 predict a draw and 3 predict Rayo. Here too, 1-1 is the mode (20/42); another 15 choose 2-1.

The separate preseason-table track is even more concentrated. Forty models produced valid 20-team tables; three other models still had no valid table after three attempts each, so they remain absent. Twenty-five make Real Madrid champion and 15 choose Barcelona. Every valid table has the same top-four membership: Real Madrid, Barcelona, Atlético Madrid and Villarreal. Racing Santander lands in the bottom three in 37/40 and last in 23/40.

The obvious concern is that these are not 40-plus independent forecasts. The models share training data and received the same prompt, so a consensus can just be a herd.

I put the readable summary, raw files and lock evidence in the first comment. What would you use as the fairest non-LLM baseline over a full season: Elo, a Poisson model using prior results, or a simple home/draw/away frequency model?

reddit.com
u/Small-Yogurtcloset57 — 5 days ago

What football metric do you trust most when comparing two teams?

When comparing two teams, I’ve noticed that different metrics can tell completely different stories.

If you could only use one metric to evaluate which team is performing better, what would you choose?

xG / xGA

Shots on target

Possession

PPDA

Progressive passes / carries

Field tilt

Goals / goal difference

Something else

And more importantly: why do you trust that metric over the others?

I’m particularly interested in metrics that remain useful when comparing teams with different playing styles.

reddit.com
u/SoccerBlueprint — 7 days ago