I created a betting system for football betting using expected goals (xG) data.

And I am also sharing it for free.

Here is a simple 5-step approach to predicting the upcoming Premier League matches.

[🧵 thread]
Step 1.

👉Create a Match Rating

You can create a match rating by subtracting the away team’s xG difference (xG - xG allowed) from the home team’s xGD over the course of their 3 most recent games.

Let's illustrate the idea using the 2021/22 Brentford-Leicester City game 👇
Step 1. [Example]

- Brentford entered the game with 4.7 xG scored and 4.1 xG allowed, or an xGD of 0.6 (4.7 - 4.1)
- Leicester entered the game with 7.4 xG scored and 3.4xG allowed, or an xGD of 4 (7.4 - 3.4)

👉 The #BRELEI match rating was therefore -3.4 (0.6 - 4).
Step 2.

👉Calculate the historical full-time results

Using 4 seasons of historical data, you can calculate how many games with a match rating of -3.4 finished with a home win, a draw or with an away win.

Let's continue with the #BRELEI illustration 👇
Step 2. [Example]

Since 2017/18, there have been a total of 110 Premier League games with a pre-game match rating of -3 (we rounded the match rating to the nearest whole number).

- The home teams won in 35 games
- A draw occured in 28 games
- The away teams won in 47 games.
Step 3.

👉Calculate each full-time result’s probability of occurring

You can calculate the share of each FTR by dividing the respective number of outcomes from Step 2 by the total number of games available for that match rating.

Let's calculate it for the #BRELEI game 👇
Step 3. [Example]

Using the data from Step 2, you can easily calculate that:

- the home wins represent 31.8% (35/110),
- the draws represent 25.5% (28/110) and
- the away wins 42.7% (47/110) of all available matches.

👉These will be your theoretical probabilities.
Step 4.

👉Calculate the fair odds

You can calculate the fair odds for each full-time result by simply inverting the relative shares calculated in Step 3.

Let's illustrate the idea using our favourite #BRELEI match 👇
Step 4. [Example]

By inverting the probabilities from Step 3, you can easily calculate the following fair odds:

- 3.14 for a home win (1/0.318)
- 3.93 for a draw (1/0.255)
- 2.34 for an away win (1/0.427)

👉These will be your points of reference when placing your bets.
Step 5.

👉Identifying value

You can compare the fair odds from Step 4 with the odds offered by the bookmaker and identify the outcome offering the highest value.

Let's continue with the #BRELEI illustration 👇
Step 5. [Example]

By comparing Pinnacle's prices with our fair set of odds, you can easily conclude that:

- PInnacle's away win odds offer a positive expected value of 9% ((2.55-2.34)/2.34).

👉You should look to place the away win bet.

Ok, but how reliable is this model? 👇
If you were to bet £100 on all positive-value predictions, then over the previous #PremierLeague season:

👉 You would have won £2927 based on 301 bets
👉 You would have correctly predicted 28.9% of your bets for a ROR of 9.7%.

Data: @12Xpert @StatsBomb via @fbref
@12Xpert @StatsBomb @fbref That's a wrap!

If you enjoyed this thread:

1. Follow me @AntoineJWMartin for more of these
2. RT the tweet below to share this thread with your audience

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Antoine JW Martin

Antoine JW Martin Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(