That said I still prefer to lay a team instead of the draw, as the result gravitates towards equilibrium
I'm not big on stats but I know certain leagues are much more suited to this than others
Should be able to get some pointers from many on here if DA suits your skillset
Exploring Value Betting in Football Match Odds – Exit Strategies
-
- Posts: 74
- Joined: Wed Feb 12, 2025 12:19 pm
Totally agree with laying a team, I've set my model up to do just this but wow in-play modelling is infinitely harder than pre-match! I cannot for the life of me figure out what is happening but I just can't seem to get anything remotely close to the actual book values. This was on the Chelsea match at halftime and my model is so far out it's unusable. I think it's because I'm struggling to factor in the current score which I don't have to do pre-matchKai wrote: ↑Fri Feb 14, 2025 3:05 pmThat said I still prefer to lay a team instead of the draw, as the result gravitates towards equilibrium
I'm not big on stats but I know certain leagues are much more suited to this than others
Should be able to get some pointers from many on here if DA suits your skillset
You do not have the required permissions to view the files attached to this post.
-
- Posts: 74
- Joined: Wed Feb 12, 2025 12:19 pm
I think I'm calculating each outcome as an independent event rather than combined, so rather than having a book price of 100% taking into consideration home/draw/away I'm treating each one of these as an event in and of themselves.... maybe. I don't know, my head is fried this week 

You do not have the required permissions to view the files attached to this post.
- wearthefoxhat
- Posts: 3551
- Joined: Sun Feb 18, 2018 9:55 am
I can only view it from excel not Python.
I approach it by comparing Pre-off v HT.
-----------
Pre-off, the ZIP was indicating an xG of 1.10 v 1.78 for the whole match. It was also indicating the Chelsea away price was value.
At HT, Brighton were exceeding their xG based on my metrics compared to my Pre-off xG.
Does that mean Chelsea are even more value or are Brighton playing above the statistics model? If I trust the HT model, it's the latter, but could be fairly confident there's a further goal to be scored in the 2nd half, likely by Chelsea.
------------
With your model, can it compare the pre-off prediction with some sort of adjustment, maybe by minutes in a game? (45+added) Decay?
If your model depends on taking into account live odds, then by inputting the exchange price at HT might be one way. (unsure about that TBH)
I approach it by comparing Pre-off v HT.
-----------
Pre-off, the ZIP was indicating an xG of 1.10 v 1.78 for the whole match. It was also indicating the Chelsea away price was value.
At HT, Brighton were exceeding their xG based on my metrics compared to my Pre-off xG.
Does that mean Chelsea are even more value or are Brighton playing above the statistics model? If I trust the HT model, it's the latter, but could be fairly confident there's a further goal to be scored in the 2nd half, likely by Chelsea.
------------
With your model, can it compare the pre-off prediction with some sort of adjustment, maybe by minutes in a game? (45+added) Decay?
If your model depends on taking into account live odds, then by inputting the exchange price at HT might be one way. (unsure about that TBH)
You do not have the required permissions to view the files attached to this post.
-
- Posts: 1605
- Joined: Fri Nov 20, 2015 9:38 am
Is the issue here not that a model tells you how the teams are expected to preform if they play each other a large number of times, whereas an individual game is just an single "observation" that feeds your model.
As such what happens in a game can be multiple standard deviations away from model expectations and still be in the 90+ percentile expectations of that model.
Either your model is a good fit or not. If good then you should be able to use it to work out where value lies taking account expectations within the model and, just as important, the variation inherent in the model that you expect individual games to exhibit.
Models can be great for getting a feel for what the market should be like and the variance / risk associated with the prices but once the game starts the model kinda goes out the window as what's actually happening on the field matters more, e.g. did Haaland get sent off after 10mins..
edit - I like the idea of incorporating actual odds into the model though... I used to do this for a cricket model for the draw price as that would implicitly take account of ground, conditions, weather etc allowing the bit I was modelling to focus on players.
As such what happens in a game can be multiple standard deviations away from model expectations and still be in the 90+ percentile expectations of that model.
Either your model is a good fit or not. If good then you should be able to use it to work out where value lies taking account expectations within the model and, just as important, the variation inherent in the model that you expect individual games to exhibit.
Models can be great for getting a feel for what the market should be like and the variance / risk associated with the prices but once the game starts the model kinda goes out the window as what's actually happening on the field matters more, e.g. did Haaland get sent off after 10mins..
edit - I like the idea of incorporating actual odds into the model though... I used to do this for a cricket model for the draw price as that would implicitly take account of ground, conditions, weather etc allowing the bit I was modelling to focus on players.
-
- Posts: 74
- Joined: Wed Feb 12, 2025 12:19 pm

Ok, back to the drawing board
(Thanks to both the above two posters for this insight)
Hi! how you are calculate 0,69 and 0,83 in al algorithm and new xG? Thankswearthefoxhat wrote: ↑Fri Feb 14, 2025 11:38 pmI can only view it from excel not Python.
I approach it by comparing Pre-off v HT.
-----------
Pre-off, the ZIP was indicating an xG of 1.10 v 1.78 for the whole match. It was also indicating the Chelsea away price was value.
Pre-Off.png
At HT, Brighton were exceeding their xG based on my metrics compared to my Pre-off xG.
HT.png
Does that mean Chelsea are even more value or are Brighton playing above the statistics model? If I trust the HT model, it's the latter, but could be fairly confident there's a further goal to be scored in the 2nd half, likely by Chelsea.
------------
With your model, can it compare the pre-off prediction with some sort of adjustment, maybe by minutes in a game? (45+added) Decay?
If your model depends on taking into account live odds, then by inputting the exchange price at HT might be one way. (unsure about that TBH)
-
- Posts: 74
- Joined: Wed Feb 12, 2025 12:19 pm
Both yours and Wearthefoxhat's models are similar, I think I'm trying to over-complicate things with my model using yellow/red cards/injuries etc. I've tried to assign values to each of those, example a yellow card will -0.02.
I think I need to go back to the start and look at how I can use pre-match odds with time decay and something like xg with poisson zero inflation as a starting point.
- wearthefoxhat
- Posts: 3551
- Joined: Sun Feb 18, 2018 9:55 am
avs_kz wrote: ↑Sun Feb 16, 2025 8:01 amHi! how you are calculate 0,69 and 0,83 in al algorithm and new xG? Thankswearthefoxhat wrote: ↑Fri Feb 14, 2025 11:38 pmI can only view it from excel not Python.
I approach it by comparing Pre-off v HT.
-----------
Pre-off, the ZIP was indicating an xG of 1.10 v 1.78 for the whole match. It was also indicating the Chelsea away price was value.
Pre-Off.png
At HT, Brighton were exceeding their xG based on my metrics compared to my Pre-off xG.
HT.png
Does that mean Chelsea are even more value or are Brighton playing above the statistics model? If I trust the HT model, it's the latter, but could be fairly confident there's a further goal to be scored in the 2nd half, likely by Chelsea.
------------
With your model, can it compare the pre-off prediction with some sort of adjustment, maybe by minutes in a game? (45+added) Decay?
If your model depends on taking into account live odds, then by inputting the exchange price at HT might be one way. (unsure about that TBH)
I use a combination of the some of the sofa-score metrics that can potentially lead to a goal, to create the initial xG algorithm.
The New xG in yellow, is just an average of the xG I create, with the current score. In theory, you could just use the standard one but average out it out in the same way with the current/final score. The final xG can be used for ongoing home/away poisson models and used on the Sinceawin website.
You do not have the required permissions to view the files attached to this post.
- wearthefoxhat
- Posts: 3551
- Joined: Sun Feb 18, 2018 9:55 am
TupleVision wrote: ↑Sun Feb 16, 2025 11:02 amBoth yours and Wearthefoxhat's models are similar, I think I'm trying to over-complicate things with my model using yellow/red cards/injuries etc. I've tried to assign values to each of those, example a yellow card will -0.02.
I think I need to go back to the start and look at how I can use pre-match odds with time decay and something like xg with poisson zero inflation as a starting point.
The one Atho5 posted looks like it's based on predicting the odds based on the timing of a goal. Clever stuff for sure!
On one of your first posts, you had a good python set up based on SOT and SoffT..etc. Here's a list, from GPT, that suggested a starting point for me, then tIe it in with the recent post I made to another poster. On the list it takes into account the standard xG, the jury's out on that for now.
You do not have the required permissions to view the files attached to this post.
It was the thinking that unexpected goals in any game have a bearing on the outcome but the market does not necessarily shift as much as you would expect based upon historic results. Liverpool 1-0 in 15th minute looked to give odds for the draw and away win greater than historic %`s would suggest as per this table and this bet test on those markets.
You do not have the required permissions to view the files attached to this post.
-
- Posts: 74
- Joined: Wed Feb 12, 2025 12:19 pm
I now have a pretty rudimentary in-play model that said there was a little bit of value to lay the draw at half time in the Spurs game. Question to Kai, WtFH, why have you both chosen halftime to enter, have you discovered this is the optimal time, why not the 60th minute, 80th etc? Does having some second half stats not improve the accuracy rather than relying on one half where a team can come out and play a totally different game in the second half?
Secondly the whole exiting thing, do you just simply always leave it as a value bet, the Spurs game could've finished anything from 1-0, 4-4, 7-0 or 1-6
I left the bet in as a value bet but did have to sit on my hands a little. I'm assuming if you have a true edge in the market the variance plays out over time and not exiting is sub-optimal for PnL?
Secondly the whole exiting thing, do you just simply always leave it as a value bet, the Spurs game could've finished anything from 1-0, 4-4, 7-0 or 1-6

-
- Posts: 74
- Joined: Wed Feb 12, 2025 12:19 pm
"Yeah, I see what you're saying. So when an early goal goes in, the market doesn’t shift as much as history suggests it should? Like in Liverpool’s case at 1-0 in the 15th minute, the draw and away win odds were still higher than expected? That’s really interesting—what kind of model are you using to compare the market odds to historical probabilities? Is it purely data-driven, or does it factor in other match conditions like team strength or in-play stats?"Atho55 wrote: ↑Sun Feb 16, 2025 3:41 pmIt was the thinking that unexpected goals in any game have a bearing on the outcome but the market does not necessarily shift as much as you would expect based upon historic results. Liverpool 1-0 in 15th minute looked to give odds for the draw and away win greater than historic %`s would suggest as per this table and this bet test on those markets.
Home And Away Goal Minutes.png
Cash Out.png
- wearthefoxhat
- Posts: 3551
- Joined: Sun Feb 18, 2018 9:55 am
TupleVision wrote: ↑Sun Feb 16, 2025 6:34 pmI now have a pretty rudimentary in-play model that said there was a little bit of value to lay the draw at half time in the Spurs game. Question to Kai, WtFH, why have you both chosen halftime to enter, have you discovered this is the optimal time, why not the 60th minute, 80th etc? Does having some second half stats not improve the accuracy rather than relying on one half where a team can come out and play a totally different game in the second half?
Secondly the whole exiting thing, do you just simply always leave it as a value bet, the Spurs game could've finished anything from 1-0, 4-4, 7-0 or 1-6I left the bet in as a value bet but did have to sit on my hands a little. I'm assuming if you have a true edge in the market the variance plays out over time and not exiting is sub-optimal for PnL?
-------
The Spurs v Man Utd game, for me, didn't indicate any value pre-off, so left it alone, (My ZIP model odds tallied with the market odds). My approach is to focus on games that have value pre-off, and if the first half supports my pre-off findings, then make a decision for the 2nd half.
---------
The ZIP sheet, indicated correct scores, 1-1, 2-1, 1-0 with a squeak of an AOH. It was leaning towards more than one goal as well.
I've traded horse racing and greyhounds before, but with football, some games have a certain predictability about them, so letting the bet(s) run, realises the PnL Reckon it'll depend on how many games you get involved with, if it's every game, in every league, then trading out for green/red might be best. I'm only looking at the English & Scottish Prem for now, next year, will expand into the bigger euro leagues.
---------
Looking at the final stats. (i didn't watch the game), it looked quite lively, but my New xG mirrored the Sofa-Score xG. That's a good sign, as I can lean on this sheet to support 2nd half decision making.
You do not have the required permissions to view the files attached to this post.