How to Build a Simple Football Betting Model

Build a simple football betting model using team goal data, Poisson probabilities and fair odds, then compare its estimates with bookmaker prices.

A simple football betting model can be built by estimating each team’s expected goals, converting those estimates into scoreline probabilities and then calculating fair odds for a home win, draw and away win.

One accessible starting point is a Poisson goals model. It uses historical scoring and conceding rates to measure team strength relative to the league average. Those ratings produce an expected-goals estimate for each team, which can then be converted into probabilities for different match outcomes.

This will not create a guaranteed betting edge. It is a transparent baseline that teaches the complete modelling process: define the market, prepare data, estimate probabilities, compare them with prices and test whether the method works on matches it has not previously seen.

What Does a Football Betting Model Do?

A football betting model is a structured method for estimating the probability of an outcome. It should produce probabilities rather than simply predict which team will win.

For a standard 1X2 market, the required outputs are:

  • The probability of a home win.
  • The probability of a draw.
  • The probability of an away win.

These probabilities must add up to 100%. Each can then be converted into fair decimal odds:

Fair odds = 1 ÷ estimated probability

If a model estimates a 50% home-win probability, its fair price is 2.00. This does not mean the home team will win. It means that 2.00 represents the break-even price if the probability estimate is accurate.

Before building a model, it is useful to understand how football betting models should be evaluated. A model that fits historical results is not automatically reliable. Its probabilities must remain useful on genuinely unseen matches.

Choose One Market and One Competition

A first model should solve a narrowly defined problem. Trying to predict every league and market immediately introduces unnecessary complexity.

A sensible initial objective is:

Estimate home-win, draw and away-win probabilities for matches in one football league.

Using a single league makes the model easier to interpret because scoring rates, home advantage and competitive balance can differ substantially between competitions.

Start with completed league matches containing:

  • Match date.
  • Home team.
  • Away team.
  • Home goals.
  • Away goals.

This is enough to build a basic goals model. More advanced versions might use expected goals, player availability, rest, tactical information or market prices, but additional data should be introduced only when it demonstrably improves predictions.

Step 1: Calculate the League Scoring Averages

Separate home and away goals when calculating league averages. This preserves the effect of home advantage instead of treating every venue identically.

Calculate:

  • Average home goals = total home goals ÷ number of matches.
  • Average away goals = total away goals ÷ number of matches.

Imagine a league has produced 310 home goals and 250 away goals across 200 matches:

  • Average home goals: 310 ÷ 200 = 1.55.
  • Average away goals: 250 ÷ 200 = 1.25.

These averages become the model’s baseline scoring environment. Every team’s attacking and defensive performance will be measured relative to them.

Step 2: Create Attack and Defence Strength Ratings

For each team, calculate separate home and away performance figures. A team’s home attack should be compared with the league’s average home scoring rate, while its away attack should be compared with the average away scoring rate.

Home-team ratings

For the team playing at home:

Home attack strength = team’s average home goals scored ÷ league average home goals

Home defence strength = team’s average home goals conceded ÷ league average away goals

Away-team ratings

For the team playing away:

Away attack strength = team’s average away goals scored ÷ league average away goals

Away defence strength = team’s average away goals conceded ÷ league average home goals

A rating above 1.00 indicates an above-average value for that measure. The interpretation depends on whether it concerns attack or defence:

  • An attack strength of 1.20 means the team scores 20% more than the relevant league average.
  • A defence strength of 0.80 means the team concedes 20% fewer goals than the relevant league average.
  • A defence strength of 1.20 represents a weak defence because it concedes 20% more than average.

Suppose the home team averages 1.86 goals scored and 0.96 conceded at home. Using league averages of 1.55 home goals and 1.25 away goals:

  • Home attack strength: 1.86 ÷ 1.55 = 1.20.
  • Home defence strength: 0.96 ÷ 1.25 = 0.77.

Suppose the away team averages 1.00 goal scored and 1.71 goals conceded away:

  • Away attack strength: 1.00 ÷ 1.25 = 0.80.
  • Away defence strength: 1.71 ÷ 1.55 = 1.10.

These ratings suggest that the home team has a strong attack and defence, while the away team scores below average and concedes more than average.

Step 3: Estimate Each Team’s Expected Goals

The attack and defence ratings can now be combined with the league scoring averages.

Expected home goals = league average home goals × home attack strength × away defence strength

Expected away goals = league average away goals × away attack strength × home defence strength

Using the illustrative figures above:

Expected home goals:

1.55 × 1.20 × 1.10 = 2.05

Expected away goals:

1.25 × 0.80 × 0.77 = 0.77

The model therefore expects approximately 2.05 home goals and 0.77 away goals.

These figures are not score predictions. They are the average scoring rates around which a range of possible scores can be distributed.

Step 4: Convert Expected Goals Into Scoreline Probabilities

The Poisson distribution can estimate the probability of a team scoring zero, one, two or more goals when its expected scoring rate is known.

The formula is:

P(X = k) = (e−λ × λk) ÷ k!

Where:

  • λ is the team’s expected-goals estimate.
  • k is the number of goals being evaluated.
  • e is the mathematical constant approximately equal to 2.71828.
  • k! is the factorial of the goal count.

A spreadsheet can perform this calculation without requiring the formula to be entered manually. In Excel or Google Sheets, use:

=POISSON.DIST(goal_count, expected_goals, FALSE)

For the home team, the expected-goals input is 2.05. For the away team, it is 0.77. Calculate the probability of each team scoring from zero to at least six goals.

Six is usually adequate for a simple model, although extending the matrix further reduces the small amount of omitted probability in unusually high-scoring matches.

Step 5: Build a Score Probability Matrix

To estimate an exact score, multiply the probability of the home team scoring a particular number by the probability of the away team scoring its corresponding number.

Probability of 2–1 = probability of home team scoring two × probability of away team scoring one

Create a matrix with home goals down one side and away goals across the top. Every cell represents one possible score.

Using the illustrative expected-goals estimates, some of the most likely scores are approximately:

  • 2–0: 12.6%.
  • 1–0: 12.3%.
  • 2–1: 9.6%.
  • 1–1: 9.4%.
  • 3–0: 8.6%.

The model does not need to select one correct score. The matrix allows all relevant scorelines to be combined into broader market probabilities.

Step 6: Calculate Home, Draw and Away Probabilities

Sum the appropriate cells in the score matrix:

  • Home win: every cell where home goals exceed away goals.
  • Draw: every cell where home and away goals are equal.
  • Away win: every cell where away goals exceed home goals.

For this example, the approximate probabilities are:

Outcome Model probability Fair odds
Home win 67.2% 1.49
Draw 19.8% 5.04
Away win 13.0% 7.69

Small differences may occur if the score matrix stops at six goals because a small amount of probability remains beyond the matrix. The probabilities should be normalised if they do not add exactly to 100%.

Step 7: Compare the Model With the Market

The model’s fair odds can now be compared with available bookmaker prices. This is the point at which a forecasting model becomes a pricing tool.

Suppose the market offers:

  • Home win: 1.60.
  • Draw: 4.20.
  • Away win: 6.50.

The home price is longer than the model’s fair price of 1.49. On the surface, this suggests that the model assigns the home team a higher probability than the market does.

However, bookmaker odds contain a margin. Market prices should therefore be converted into implied probabilities and adjusted so that the three outcomes add to 100%. GoalIQAI’s guide to calculating implied probability from betting odds explains this conversion.

A difference between the model and market is not proof of value. It could mean:

  • The model has identified information the market has underweighted.
  • The market contains relevant information missing from the model.
  • The historical team ratings are stale or based on a weak sample.
  • The apparent difference falls within normal estimation error.

A model should identify questions for further investigation, not automatically generate bets whenever its price differs from a bookmaker’s.

How to Structure the Model in a Spreadsheet

A basic spreadsheet can be divided into four sections.

1. Match data

Store one row per historical match with the date, teams and final score. Keep the matches in chronological order so the information available at each point in time can be reconstructed.

2. Team ratings

Calculate each team’s:

  • Average home goals scored.
  • Average home goals conceded.
  • Average away goals scored.
  • Average away goals conceded.
  • Home and away attack strengths.
  • Home and away defence strengths.

3. Match calculator

Select a home and away team, retrieve their ratings and calculate the expected goals for the match.

4. Probability matrix

Use POISSON.DIST to generate the goal probabilities, multiply them to create the score matrix and sum the cells into home-win, draw and away-win estimates.

This structure makes the method transparent. If a probability appears unreasonable, each intermediate calculation can be inspected.

How Much Historical Data Should Be Used?

There is no universal window that works for every competition and team. Using too little data makes ratings highly sensitive to recent variance. Using too much can make them slow to recognise genuine changes.

Possible starting approaches include:

  • Use the current season after a minimum number of matches.
  • Combine the current season with the previous season.
  • Use a rolling window, such as each team’s most recent 20 league matches.
  • Give recent matches greater weight than older matches.

Promoted and relegated teams require special treatment because their previous results were produced against a different standard of opposition. Managerial changes, major transfers and tactical shifts can also make older observations less representative.

Rather than choosing the window that produces the best historical profit, compare several reasonable approaches on later unseen matches. A setting that works only for one season may be capturing noise.

Goals or Expected Goals?

Goals are widely available and make the model easy to reproduce, but they are noisy. A team can score heavily from a small number of chances or concede several goals from low-quality attempts.

Expected goals may provide a more stable description of chance quality. A simple xG version can replace goals scored and conceded with non-penalty xG created and allowed.

However, xG is not automatically superior in every implementation. Data-provider definitions vary, historical coverage can be limited and the model may still miss finishing, goalkeeping, tactical and player-level information.

For a first model, goals provide a useful educational baseline. The next improvement should be tested against that baseline rather than assumed to be better.

Important Limitations of a Simple Poisson Model

The method makes several simplifying assumptions.

  • Past scoring and conceding rates are representative of current team strength.
  • Goals occur at a broadly stable rate throughout a match.
  • The two teams’ goal totals are treated as independent.
  • Home advantage is adequately represented by league averages.
  • All matches in the selected sample provide comparable information.

Real football does not satisfy these assumptions perfectly. A goal changes game state. Red cards alter both teams’ scoring rates. Teams protect leads, chase matches and adapt tactically. Low-scoring outcomes can also be misrepresented by a basic independent Poisson model.

The method also struggles to react automatically to injuries, rotations, transfers, managerial changes and uncertain line-ups. These are among the contextual variables football models find difficult to represent.

These weaknesses do not make the model useless. They define what the output means: a baseline estimate derived from historical team scoring performance, not a complete representation of the match.

Do Not Add Subjective Adjustments Without Recording Them

An analyst may decide that the baseline estimate needs adjusting because a key striker is absent or a team is expected to rotate heavily.

If subjective adjustments are used, record:

  • The original model probability.
  • The information prompting the change.
  • The size and direction of the adjustment.
  • The adjusted probability.
  • Whether the information was available before the market price was recorded.

This creates an audit trail. Without one, it becomes easy to remember successful adjustments and overlook unsuccessful ones.

Human judgement can complement a model, but undocumented changes make it impossible to determine whether the model or the adjustment process is adding value.

Test the Model Before Using It

Do not calculate ratings from an entire historical season and then claim to have predicted matches within that same season. That allows later results to influence earlier estimates.

A more credible test follows chronological order:

  1. Use only matches completed before the prediction date.
  2. Calculate team ratings from that information.
  3. Generate probabilities for the next set of fixtures.
  4. Record the probabilities before adding the results.
  5. Update the data and repeat.

Compare the model with simple baselines, including league-average outcome frequencies and margin-adjusted market probabilities.

Profit alone is not enough to establish model quality. Also examine whether:

  • The model’s probabilities are well calibrated.
  • It improves on simpler forecasts.
  • Performance survives across different periods.
  • Its prices move in the same direction as the closing market.
  • Results depend on one team, league or unusual winning sequence.

This article provides a construction framework rather than a completed profitable strategy. Building the spreadsheet is the beginning of the process. The harder task is demonstrating that its estimates remain reliable outside the sample used to create it.

How to Improve the Model Gradually

Once the baseline has been tested, possible improvements include:

  • Replacing goals with expected goals.
  • Adjusting performances for opposition strength.
  • Weighting recent matches more heavily.
  • Separating open-play and set-piece performance.
  • Adding promoted-team priors.
  • Estimating team strength through regression or rating systems.
  • Accounting for expected line-ups and player availability.
  • Using a correction for dependence between low-scoring outcomes.

Introduce one meaningful change at a time. Test whether it improves unseen predictions and understand why it should contain repeatable information.

The objective is not to make the spreadsheet look sophisticated. It is to improve probability estimates without adding unnecessary instability.

Key Takeaways

  • A simple football betting model can estimate match probabilities from league and team scoring rates.
  • Separate home and away performance to preserve the effect of home advantage.
  • Attack and defence ratings measure each team relative to its league’s scoring environment.
  • Expected goals can be converted into score probabilities using the Poisson distribution.
  • A score matrix produces home-win, draw and away-win probabilities.
  • Fair odds are calculated by dividing one by the model probability.
  • A disagreement with bookmaker odds is a research signal, not automatic proof of value.
  • Historical testing must preserve chronological order and use only information available at the time.
  • Goals models have visible limitations, including changing team strength, game state and player availability.
  • A transparent baseline should be tested before more variables or complexity are introduced.

Continue Learning About Football Modelling

Explore the GoalIQAI Football Betting & Analytics Knowledge Base for more guides to football models, probability, market prices and evidence-led decision-making.

Subscribe to GoalIQAI for new football analytics guides and data-driven analysis. The objective is not to promise certainty, but to improve how football probabilities and prices are evaluated.