My soccer model held up on a true holdout but still lost to Bet365 what data would you add next / next steps

I’m a college student building a soccer prediction model and finally tested it on a season I had kept completely untouched.

The forecasting model itself held up reasonably well, but on ~1,700 matches de-vigged Bet365 probabilities beat every model I tested on log loss/Brier/RPS, and all of my pre-frozen betting strategies ended negative. My main one finished around -12.5% ROI.

Right now I already use things like goals/xG, shots/SOT, home/away splits, Elo/opponent strength, form, rest/congestion, standings, league scoring environment, and promoted-team uncertainty. I also have a decent amount of player, lineup and goalkeeper data, but the historical player/lineup experiments didn’t add much and exact pre-match availability timing was a limitation.
I’m planning to stop optimizing on historical results and run the system prospectively with timestamped odds, injuries and confirmed lineups.

What I’m mainly wondering:
What additional data would you look for at this point?
Manager changes? Transfers? Better injury/suspension history? Player market values? Weather? Travel? Referees? Tactical/style data? More detailed event/possession data?
Is there any dataset you’ve found that actually adds signal beyond what the market already knows?
Or would you stop adding features and focus on prospective validation / finding where the model disagrees with the market for a defensible reason?
Trying to avoid just throwing more variables at it until something backtests well.

reddit.com
u/Sufficient-Buy-8786 — 2 days ago

My soccer model held up on a true holdout but still lost to Bet365 what data would you add next / next steps

I’m a college student building a soccer prediction model and finally tested it on a season I had kept completely untouched.

The forecasting model itself held up reasonably well, but on ~1,700 matches de-vigged Bet365 probabilities beat every model I tested on log loss/Brier/RPS, and all of my pre-frozen betting strategies ended negative. My main one finished around -12.5% ROI.

Right now I already use things like goals/xG, shots/SOT, home/away splits, Elo/opponent strength, form, rest/congestion, standings, league scoring environment, and promoted-team uncertainty. I also have a decent amount of player, lineup and goalkeeper data, but the historical player/lineup experiments didn’t add much and exact pre-match availability timing was a limitation.
I’m planning to stop optimizing on historical results and run the system prospectively with timestamped odds, injuries and confirmed lineups.

What I’m mainly wondering:
What additional data would you look for at this point?
Manager changes? Transfers? Better injury/suspension history? Player market values? Weather? Travel? Referees? Tactical/style data? More detailed event/possession data?
Is there any dataset you’ve found that actually adds signal beyond what the market already knows?
Or would you stop adding features and focus on prospective validation / finding where the model disagrees with the market for a defensible reason?
Trying to avoid just throwing more variables at it until something backtests well.

reddit.com
u/Sufficient-Buy-8786 — 2 days ago

College student testing soccer betting models: how would you evaluate huge Kelly returns without fooling yourself?

I’m in college and I’ve been building a soccer prediction/betting model on the side. I recently ran a pretty large development-only test across different model outputs, EV/confidence filters, odds ranges, exposure rules, and staking methods.
One thing that stood out was a “high conviction” tier I decided to test. It only produced around ~100 bets over 3 seasons, so obviously the sample is small, but it was profitable in all 3 seasons.

When I tested fractional Kelly on some of these higher-conviction cells, a few of the bankroll paths got pretty crazy. For example, one narrower cell using odds limited to a certain range, and max 2 bets/day went roughly:
25% Kelly: 100 → ~198, ~16% max drawdown
50% Kelly: 100 → ~363, ~30% max drawdown
Full Kelly: way higher return, but obviously much uglier risk
This was a broad development search, so multiple testing/selection bias is a major concern, and the historical odds I have are provider “last seen” prices without exact timestamps.

What I’m trying to figure out is how experienced people would evaluate cells like this before throwing them away or getting overly excited.
Would you focus on things like:
- requiring profitability across all 3 seasons?
- minimum bet count?
- walk forward selection?
- max drawdown relative to total return?
- comparing the same strategy across multiple predictive models?
- testing 10/15/20/25% Kelly rather than jumping straight to 25/50?
- checking whether the underlying flat-stake strategy is profitable before caring about Kelly?
- freezing a handful of these strategies and letting a completely untouched season be the final test?

I’m also curious how people think about a rare “Legendary” tier in practice. If quarter-Kelly ends up averaging something like ~5% of bankroll per wager, is that automatically way too aggressive for a ~100-bet historical sample, or is it reasonable to keep it as a shadow strategy and see how it performs on my final 25/26 season untouched data.

reddit.com
u/Sufficient-Buy-8786 — 4 days ago

Am I overtesting my model at this point?

I’ve been building a soccer prediction/betting model and I’m starting to wonder if I’m reaching the point where more testing is actually making things worse.

I have about 3 seasons of development data and have kept an entire separate season completely untouched as a final holdout. Over the development data I’ve tested different model ideas and, more recently, different betting criteria based on things like model probability, edge vs the market, EV, odds ranges, etc.
Most strategies are nothing special or lose money, but a few specific combinations have produced really strong historical returns.
I’ve tried to account for this with chronological testing, minimum sample sizes, bootstrapping/multiple-testing corrections, and by predefining tests instead of endlessly changing thresholds until something works.
But at some point, doesn’t repeatedly testing new ideas on the same 3 seasons effectively turn the entire development set into something you’re overfitting to?
How do you guys decide when you’ve extracted enough information from your development data and need to stop testing altogether?
Would you move to the untouched holdout at this point, or is there a good way to continue researching without slowly contaminating the development process?
I’m in college and mostly building this as a learning project, so any advice from people who have dealt with this problem in quant/algo trading or sports modeling would be appreciated.

reddit.com
u/Sufficient-Buy-8786 — 5 days ago

Am I overtesting my model at this point?

I’ve been building a soccer prediction/betting model and I’m starting to wonder if I’m reaching the point where more testing is actually making things worse.

I have about 3 seasons of development data and have kept an entire separate season completely untouched as a final holdout. Over the development data I’ve tested different model ideas and, more recently, different betting criteria based on things like model probability, edge vs the market, EV, odds ranges, etc.
Most strategies are nothing special or lose money, but a few specific combinations have produced really strong historical returns.
I’ve tried to account for this with chronological testing, minimum sample sizes, bootstrapping/multiple-testing corrections, and by predefining tests instead of endlessly changing thresholds until something works.
But at some point, doesn’t repeatedly testing new ideas on the same 3 seasons effectively turn the entire development set into something you’re overfitting to?
How do you guys decide when you’ve extracted enough information from your development data and need to stop testing altogether?
Would you move to the untouched holdout at this point, or is there a good way to continue researching without slowly contaminating the development process?
I’m in college and mostly building this as a learning project, so any advice from people who have dealt with this problem in quant/algo trading or sports modeling would be appreciated.

reddit.com
u/Sufficient-Buy-8786 — 5 days ago

College student building soccer betting model - looking for more edge

I’m in college and have been building a soccer prediction model on the side for a while. It’s gotten to the point where it clearly beats basic statistical baselines on out-of-sample prediction metrics, but when I compare it against sportsbook prices the gap basically disappears.
I’ve tested a bunch of the more obvious stuff already: confidence/EV filters, stricter edge thresholds, draw handling, exposure rules, different model structures, etc. Some backtests look profitable, but nothing has been convincing enough yet that I’d call it a real betting edge rather than noise/selection bias.
I’m now trying to figure out where the next meaningful improvement is most likely to come from.
For people who have actually built sports models, would you focus more on:
improving the underlying probability model?
better/more unique data like injuries, lineups, player availability, managers, shot-level data, etc.?
finding market segments where the book is weaker?
pricing/timing and line shopping?
calibration?
ensemble/model disagreement?
something completely different?
I’m especially interested in ideas that actually improved out-of-sample edge, not just made the backtest prettier.
Not trying to get anyone to give away their entire model, just curious what areas people found were actually worth the time once the obvious improvements started giving diminishing returns.

reddit.com
u/Sufficient-Buy-8786 — 6 days ago

Cheap/reliable soccer API for live odds + lineups

I’m looking for a cheap provider for a soccer prediction project and figured this sub might have better real-world feedback than vendor pages.
I mainly need live/prospective data, not a massive historical archive.
Minimum needs:
Premier League, La Liga, Serie A, Bundesliga, Ligue 1
fixtures + stable IDs
pre-match 1X2 bookmaker odds
bookmaker identity
confirmed lineups
injuries / suspensions / availability if possible
results / match stats
ability to poll repeatedly before kickoff and timestamp the responses myself
I was using TheStatsAPI, but the old key/subscription is dead, so before paying to reactivate it I want to see if there’s a cheaper option.
I’m currently looking at things like:
API-Football / API-Sports
Sportmonks
football-data.org
The Odds API
any other cheap/reliable soccer-specific provider
Big question is whether something like API-Football’s free tier is enough for a useful collector, or whether I’d immediately run into quota issues once I start polling odds/lineups across the Big 5.
My rough odds cadence would eventually be something like:
every few hours far from kickoff
hourly closer in
every 15 min in the final ~6 hours
I don’t care about having every obscure league or 20 years of history. I care more about current-season reliability, bookmaker odds, lineups, and low cost.
Anyone here using one of these in production/research? Curious about:
actual request usage
stale/missing odds
lineup timing
downtime
hidden limitations
whether a hybrid setup (cheap football API + separate odds API) makes more sense
Trying to avoid paying $100+/month if a free or ~$10–30/month setup gets me most of what I need.

reddit.com
u/Sufficient-Buy-8786 — 6 days ago

How do books like FanDuel actually price Same Game Parlays

Been messing around with SGP pricing and noticed FanDuel obviously isn’t just multiplying the individual leg odds like they do with normal parlays.
For example in one soccer game:
Man Utd ML -270 + Over 4.5 +440 would be about +640 independently, but FanDuel prices the SGP at +408
Hull ML +650 + Under 2.5 +118 would be about +1535 independently, but FanDuel gives +1129
Draw +360 + Over 1.5 -480 is about +456 independently vs +410 as an SGP

Meanwhile, normal parlays across different games seem to basically be straight multiplication.
Does anyone know how FanDuel or other large books actually calculate the correlation adjustment for SGPs? Are they using joint score distributions, simulations, historical conditional probabilities, correlation matrices, etc.?
I’m in college and have been building a soccer prediction algo that produces probabilities and score distributions. I’m also wondering if it even makes sense to add parlays/SGPs into the algo, or if I’m just adding unnecessary complexity when I should focus on getting the individual markets as accurate as possible first.
Curious if anyone here has tried modeling SGP fair odds or incorporating parlays into an algo and whether you found it worthwhile.

reddit.com
u/Sufficient-Buy-8786 — 7 days ago

College student building a soccer prediction model looking for advice

i’m in college studying finance and applied data analytics, and for the past several months i’ve been building a football/soccer prediction model as a personal project.
it started as a pretty basic international tournament simulator and has gradually turned into a much bigger domestic football model. i’ve been using historical team performance, underlying stats, opponent strength, recent form, scheduling/contextual factors, and i’ve also collected player, goalkeeper and lineup data.
i’ve tested a mix of statistical and ML approaches, while trying to keep everything chronological and leakage-safe.
Across about 5,300 out-of-sample matches, my current best 1X2 model is around:
•    Log Loss: 0.984
•    Brier Score: 0.586
For comparison, uniform 33/33/33 probabilities would be about 1.099 log loss / 0.667 Brier, and a simple historical baseline is around 1.073 log loss.
For goal prediction, the current score-based models are roughly 0.9–1.0 goals MAE per team.
The biggest thing i’ve learned so far is that predicting matches better doesn’t automatically mean you can beat bookmakers. An early betting test was unprofitable, so i’m trying to be very careful about separating predictive performance from actual market edge.
Right now i’m mainly thinking about things like:
•    how much recent form should matter vs long-term team strength
•    whether player/lineup data is actually worth the added complexity
•    improving draw probabilities
•    calibration and uncertainty
•    knowing when the model should abstain
•    avoiding overfitting before i test it on an untouched holdout season
For anyone who’s worked with football analytics, sports betting models or probabilistic forecasting:
1    What are the biggest mistakes you see people make with soccer models?
2    Would you focus more on better data/calibration at this point, or more advanced models?
3    Have you found player and lineup data genuinely useful?
4    What would you want to see before believing a model has real predictive value against sportsbooks?
5    Any papers, GitHub repos, books or general advice you’d recommend?
i’m not looking for anyone to give away a profitable strategy. mostly just looking for people who know more than me to point out where my thinking might be wrong.
all feedback is welcome.

reddit.com
u/Sufficient-Buy-8786 — 13 days ago

College student building a soccer prediction model looking for advice

i’m in college studying finance and applied data analytics, and for the past several months i’ve been building a football/soccer prediction model as a personal project.
it started as a pretty basic international tournament simulator and has gradually turned into a much bigger domestic football model. i’ve been using historical team performance, underlying stats, opponent strength, recent form, scheduling/contextual factors, and i’ve also collected player, goalkeeper and lineup data.
i’ve tested a mix of statistical and ML approaches, while trying to keep everything chronological and leakage-safe.
Across about 5,300 out-of-sample matches, my current best 1X2 model is around:
•    Log Loss: 0.984
•    Brier Score: 0.586
For comparison, uniform 33/33/33 probabilities would be about 1.099 log loss / 0.667 Brier, and a simple historical baseline is around 1.073 log loss.
For goal prediction, the current score-based models are roughly 0.9–1.0 goals MAE per team.
The biggest thing i’ve learned so far is that predicting matches better doesn’t automatically mean you can beat bookmakers. An early betting test was unprofitable, so i’m trying to be very careful about separating predictive performance from actual market edge.
Right now i’m mainly thinking about things like:
•    how much recent form should matter vs long-term team strength
•    whether player/lineup data is actually worth the added complexity
•    improving draw probabilities
•    calibration and uncertainty
•    knowing when the model should abstain
•    avoiding overfitting before i test it on an untouched holdout season
For anyone who’s worked with football analytics, sports betting models or probabilistic forecasting:
1    What are the biggest mistakes you see people make with soccer models?
2    Would you focus more on better data/calibration at this point, or more advanced models?
3    Have you found player and lineup data genuinely useful?
4    What would you want to see before believing a model has real predictive value against sportsbooks?
5    Any papers, GitHub repos, books or general advice you’d recommend?
i’m not looking for anyone to give away a profitable strategy. mostly just looking for people who know more than me to point out where my thinking might be wrong.
all feedback is welcome.

reddit.com
u/Sufficient-Buy-8786 — 13 days ago