How to Make a Sports Betting Model

Sports betting is all about probabilities. In order to estimate probabilities, you either need a lot of time and some serious knowledge – or you need to implement a model that is able to calculate the rough chances of each possible outcome.

Bookmakers are already using sports betting models when they make their odds. And so are the top betting syndicates in the world.

So why shouldn’t you? Here’s a quick guide on how to make a sports betting model. We will show the simple way to make a model, and then you can always add additional depth to it as you go along. In the example we are making further down in the article, we are describing the basics of making a soccer/world football betting model, but the principles can also be used in many other sports.

What is the purpose of a betting model?

The purpose of creating a sports betting model is simple – you want to beat the bookies and you want to estimate what the true odds should be.

Instead of working all the numbers in the head, a model can do it for you.

The key principle of sports betting is to find value. If you can spot odds that are not priced correctly, you can take advantage of it, and you will win in the long run.

With statistical inputs, a betting model is able to estimate the rough probabilities of certain outcomes. With your own knowledge, you can make small adjustments, and you can estimate probabilities. These probabilities will be compared to the probabilities set by the bookies in the form of their odds, and if something doesn’t match, you pull the trigger.

Our tipsters have been working successfully with betting models for years.

But if it is the first time you create a model, we advise you to start out simple and to keep building on your model as you go along.

Tools you need

To create a good sports betting model, you need a few things:

  • – A spreadsheet
  • The spreadsheet will be hosting the model and it will have all the formulas. You can use Microsoft Excel. You can use Numbers if you’re on a Mac. Or you can use Google Sheets which is free. They will all work just fine.
  • – Data source
  • The model will have to use data to give you the output you’re looking for. In other words, you have to find a data source. If you are betting soccer, it could be any statistical website that shows goals, expected goals, shots, and so on. If you are betting American football or basketball, you can get your data from,, ESPN, or any of the sites that keep overviews of points and various other stats.
  • – Time
  • It takes time to create a model. It needs to be updated regularly. When you put it into use, that can also be a bit time-consuming.

Creating the model

We will now give an example of how to create a model. In this example, we will make it a soccer model, since it is arguably the sport that requires the least amount of data and since the data is easily available.

In a soccer model, you would focus on one specific league. It could be the English Premier League.

The goal of the model is to estimate each team’s offensive strength compared to the average, each team’s defensive strength compared to the average, and the average amount of goals scored for home teams as well as away teams.

When you have estimated the strength of each team, it is possible to put them up against each other and get a prediction for the number of goals that each team is expected to score in a match against each other. This will then be put up in a Poisson distributor, which you can also make in your spreadsheet, and it will then give you probabilities for each possible outcome – and you can see the probabilities for 1X2, handicaps, totals and specific scores.

But let’s take it from the start.

Offensive and defensive strengths

In your spreadsheet, make a list of all the teams in the league. Then fill in the number of goals each team has scored so far in the season, and fill in the number of goals that have been scored against each team. Only with this, you can make a simple model based on goals. (If you want to make the model better and more precise, you can also use expected goals (xG) or stats like shots per game and goals based on dangerous possession.)

But let’s assume you just want to make a model based on goals at first. Take each team’s goals and divide it by the average. Do the same with goals against each team. This will give you the value of each team’s estimated offensive and defensive strength. 1.00 will be the average. If the value for a team is above 1.00, it means they are scoring more than the average team, and if it is below, they are scoring fewer goals. In other words, offensively, being above 1.00 is good. Let’s say after 10 rounds, Manchester United has scored 2 goals per game, but the average team has only scored 1.40. United’s offensive strength would then be estimated at 1.428 (2/1.4=1.428). On average, the value will be 1, but each team is unique and some teams will be above 1, while others will be below.

Defensively, you would do exactly the same. However, here it is not good to be above 1, but rather below 1 since that means a team is allowing fewer goals than the average. Imagine Manchester United has allowed 1.35 goals per game. The league average will still be 1.40. By calculating United’s defensive strength, we would once again compare the team’s data to the league average: 1.35/1.40=0.964. Since this number is below 1, it means United has a slightly better defense than the average team by allowing fewer goals.

In your spreadsheet, make sure you have all the data typed in and the formulas that can process the information to estimate each team’s offensive and defensive strength compared to the average.

Goals scored per game

Some more data should also be added: Goals scored per game by home teams and away teams.

You can easily find it online. You take the total number of home goals so far in the league and divide it by half the games that have been played so far. Do the same for away goals.

Let’s imagine that the average amount of home goals scored in the Premier League is 1.50 and the average amount of away goals scored is 1.30.

Putting the teams up against each other

You then need to find the expected number of goals scored in a matchup.

Imagine we have a match between Liverpool and West Ham. Your model has calculated the offensive and defensive strengths of each team.

West Ham1.000.98

We see that Liverpool has a very strong attack and a defense that is better than average. West Ham has a completely average attack, but a slightly better defensive on average.

Create a formula in the model that takes Liverpool’s offensive strength, multiply it by West Ham’s defensive strength and multiply again with the average amount of goals scored for a home team in the Premier League. It should look like this: 1.55*0.98*1.50=2.2785. We will round it up to 2.28.

Do the same for West Ham. OFF*DEF*Away goals. 1.00*0.91*1.30=1.183.

In other words, in their match, if the data input is correct, the predicted result is 2.28 goals to Liverpool and 1.18 goals to West Ham.

But… we can’t use this for much. It shows us Liverpool is a clear favorite. But we still don’t know the exact probabilities. For that we need…

Poission distribution

If you don’t know what a Poisson distribution is, read this article before you continue.

When you make a Poisson spread in your spreadsheet, you can type in the expected number of goals scored by each team, and the model will then show the probabilities for every single outcome. For instance, if Liverpool is expected to score 2.28 goals and West Ham is expected to score 1.18 goals, the chance of a 2-1 win to Liverpool will be 9.6%.

But most people don’t bet on exact scores. So you need to have some fields in your spreadsheet that add up several scores to give you probabilities for 1X2, handicaps, totals, whether both teams score, etc.

For instance, you can make a field in your spreadsheet that adds up all the scenarios in which Liverpool wins. So take the probabilities from your Poisson distribution and add it all up. Take all the 1-0, 2-0, 3-0, 2-1, 3-1, etc. results and add it up. Do the same for the draw and for the West Ham win. Your model should now show an estimation of 62.1% chance of Liverpool winning the match, 21.3% chance of a draw, and 17.6% chance of West Ham winning. Now, this is something we can use. Compare this probability to the market odds, and if there is value somewhere, you can consider placing your bet.

You can also add up numbers and find probabilities for other scenarios. For example, find all the outcomes where there are over 2.5 goals. It will be 67.2%. You now have an estimation of the over/under line as well.

Keep in mind that this is all statistical. And in fact, a Poisson model can never be completely accurate. For example, it will underestimate the chance of a draw since most teams are holding back and playing comfortably when the score is even.

You can make some adjustments to make it more precise. The Dixon Coles adjustment is a popular adjustment to make. You can also just take a half or a whole percentage away from each team and add it to the draw.

In this example, we have used soccer/world football. But the model can also work for other team sports. Also, remember that this is just one way to make a model – not the only way.

Keep making adjustments

You have to keep making adjustments to your model. There is always something to improve.

Making a model based on goals is very simple. It is unlikely that such a simple model can beat the bookmakers and the market. But if you add expected goals, shots, possession, and other stats into your model (in a similar way where you compare with the league average), it should get much more precise. And these are just a few of the additions you can make! The model can be as simple or as in-depth as you like.

Remember to update your stats – and find a trustworthy source for all of your stats. Depending on your spreadsheet stats, it can be a very automated affair or a lot of manual work. But in any case, keep making adjustments and keep making your model more and more precise!

Inspiration – not blind trust

We do have one more piece of advice. It is to use your model for inspiration. Don’t lean on it completely, and don’t trust it blindly. When you bet on something, you should have knowledge about the sport, the league, the teams and the players.

A model is a tool that will help you estimate probabilities. It will give you a rough overview. And that is incredibly helpful. But most models are not 100% correct. There can be things in real life that are impossible to plug into a model.

Remember there are many factors in sports – referees, weather, scheduling, motivation, mood, injuries, and much more. Not everything can be measured statistically. A lot can, and that’s great – that helps us. But ultimately, you need to use the information from your model as inspiration. And then, based on the knowledge you have prior to each game, you can make your own adjustments if necessary.


A model is a very helpful tool to beat the market. It can help you estimate the probabilities, and it can do so in a quick and efficient manner. There is a reason why bookmakers, brokers, syndicates and sharps all use betting models. It helps them massively.

We hope you are ready to make your own model after reading this article. Remember that the work is never done and that improvements can always be made to any model. We have equipped you with the basic knowledge, and you should be capable of building a simple sports betting model. Now, your job is to test the waters, play around in your spreadsheet, and make your model more precise and sophisticated with time. This is something that can improve your results a lot – but remember that the model should not be followed blindly. You always need to make your own analysis on top of what the model tells you.

Let us know if you have any inputs or questions!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top