Exploring Value Betting in Football Match Odds – Exit Strategies

Football, Soccer - whatever you call it. It is the beautiful game.
User avatar
Kai
Posts: 7051
Joined: Tue Jan 20, 2015 12:21 pm

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
TupleVision
Posts: 74
Joined: Wed Feb 12, 2025 12:19 pm

Kai wrote:
Fri Feb 14, 2025 3:05 pm
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
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-match
You do not have the required permissions to view the files attached to this post.
TupleVision
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.
User avatar
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.

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)
You do not have the required permissions to view the files attached to this post.
sionascaig
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.
TupleVision
Posts: 74
Joined: Wed Feb 12, 2025 12:19 pm

:lol: I hadn't even considered to use the pre-match odds as an anchor point of which to then calculate in-play odds based on time decay and match stats, no wonder I struggling I was trying to calculate odds based solely in-running.

Ok, back to the drawing board

(Thanks to both the above two posters for this insight)
avs_kz
Posts: 9
Joined: Thu Jan 15, 2015 2:51 pm

wearthefoxhat wrote:
Fri Feb 14, 2025 11:38 pm
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.


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)
Hi! how you are calculate 0,69 and 0,83 in al algorithm and new xG? Thanks
Atho55
Posts: 678
Joined: Tue Oct 06, 2015 1:37 pm

Here is a different view of things based upon the timing of the first goal and actual outcomes in the Premier League.
Brighton v Chelsea 27m Goal.png
You do not have the required permissions to view the files attached to this post.
TupleVision
Posts: 74
Joined: Wed Feb 12, 2025 12:19 pm

Atho55 wrote:
Sun Feb 16, 2025 8:40 am
Here is a different view of things based upon the timing of the first goal and actual outcomes in the Premier League.

Brighton v Chelsea 27m Goal.png
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.
User avatar
wearthefoxhat
Posts: 3551
Joined: Sun Feb 18, 2018 9:55 am

avs_kz wrote:
Sun Feb 16, 2025 8:01 am
wearthefoxhat wrote:
Fri Feb 14, 2025 11:38 pm
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.


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)
Hi! how you are calculate 0,69 and 0,83 in al algorithm and new xG? Thanks

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.

xG1.png
xG2.png
xG3.png

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.
User avatar
wearthefoxhat
Posts: 3551
Joined: Sun Feb 18, 2018 9:55 am

TupleVision wrote:
Sun Feb 16, 2025 11:02 am
Atho55 wrote:
Sun Feb 16, 2025 8:40 am
Here is a different view of things based upon the timing of the first goal and actual outcomes in the Premier League.

Brighton v Chelsea 27m Goal.png
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.

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.


GPTLists.png
You do not have the required permissions to view the files attached to this post.
Atho55
Posts: 678
Joined: Tue Oct 06, 2015 1:37 pm

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.
Home And Away Goal Minutes.png



Cash Out.png
You do not have the required permissions to view the files attached to this post.
TupleVision
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 :lol: 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?
TupleVision
Posts: 74
Joined: Wed Feb 12, 2025 12:19 pm

Atho55 wrote:
Sun Feb 16, 2025 3:41 pm
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.

Home And Away Goal Minutes.png





Cash Out.png
"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?"
User avatar
wearthefoxhat
Posts: 3551
Joined: Sun Feb 18, 2018 9:55 am

TupleVision wrote:
Sun Feb 16, 2025 6:34 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 :lol: 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?

-------

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.

Tott v ManU.png
---------

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.

ZIP SpursvMUtd.png
---------

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.

FT.png
You do not have the required permissions to view the files attached to this post.
Post Reply

Return to “Football trading”