How To: Kicktipp strategy simulation

I don’t know, how many of you know Kicktipp. Kicktipp is a very popular betting game in Germany, where everybody can start an own small betting community and can invite people to this community. This is very popular with friends and in companies especially during the big tournaments like the world cup. My company has also a yearly betting game for the German Bundesliga. The rules are very simple: You have to tip every match and you get 4 points for the correct result, 3 points for the correct goal difference and 2 points for the correct trend. In this post I will show you different betting strategies for Kicktipp and test, whether they are useful to win your personal Kicktipp betting game.

Kicktipp rules

As mentioned, the rules of Kicktipp are really easy. Before the beginning of a new season you have to bet some bonus tips. They include the league winner at the end of the season, the relegated teams, the first trainer sacking and some other things. These tips will not be part of this post. For the bonus tips you need a little bit knowledge about the league and some luck to gain a maximum number of points. As soon as the league starts, you have to bet every single match. With the default settings you gain following points for the correct prediction of a match:

  • Correct score: 4 points
  • Correct goal difference: 3 points
  • Correct trend (Home win, Draw, Away win): 2 points

The points you gain for each result can be configured for your personal betting game. All simulations in this post are based on the default configuration.

Basic Kicktipp strategies

If you search the internet for some basic tips to improve your Kicktipp results, you often find the same hints. These can be followed by everybody, who do not want to use any statistical calculations for their Kicktipp games:

Draws are not worth it

This is something, what you also learn, while developing predictive models for football. Draws are really unpredictable. And draws do not happen really often in football. Just about 25% of all games in the German Bundesliga end with a draw. Furthermore, there is a big disadvantage regarding the gained points, when betting on a draw: If you bet 0:0 as the final result and the match ends 1:1, you do not receive 3 points for the correct goal difference. Instead you just receive 2 points for the correct trend. So, draws are really not worth it.

Bet on a goal difference of 1

Often teams are very equal regarding the team strength. This leads to the fact, that nearly 48% of all games end with a goal difference of 1 goal. Next are games with a goal difference of 2 goals, which happen about 30%.

1:0 and 2:1 are the most common results

As you now know, that a goal difference with one goal is most common, what should you bet? 1:0? Or 2:1? This does not really matter. The historic results show, that they are nearly equal. The result 1:0 happens in about 41% of all matches with goal difference of 1. 2:1 is a little bit more common with 44%.

By following these basic rules everybody can improve their betting result, regardless you have some football knowledge or not.

Advanced Kicktipp strategies

But of course, I do not just want to improve my Kicktipp results. I want to use the knowledge of my analytical system to win a Kicktipp community. Which predictive model could be used for a Kicktipp betting game? The predictive model must be able to calculate the probability for exact results. Knowing, that team A will win with a probability of 67% does not help, when you have to bet on an exact outcome. So my Poisson prediction model could be the way to go.

I also searched the internet for some information about strategies used by other people. Thereby, I have found the website This website claims, that they provide the best Kicktipp bets. They also explain, how they calculate the probability for a result, which they recommend as a bet. So, what is the main element of their predictive model: the Poisson distribution! So they have chosen a similar strategy like I did.

Now I will explain and test a simple and some more complex models trying to gain a maximum number of points during the last Bundesliga seasons. As claims, that they offer the best results, I will use their results as the reference value. So I am able to measure the usability of my tested models.

Fixed 2:1 betting

The first model, I want to test, is a real simple one. This one is often used by a friend. As he is too lazy to think about the exact results of every single match, he bets just a 2:1 victory for every favoured team. The displayed betting odds for every match indicate him, which team is favoured by the bookies. If the probabilities are even, the home team will be favoured.

The SQL statement to simulate this model looks like this:

GitHub – Fixed 2:1 model simulation

The inner select delivers all games for the Bundesliga season 2013 – 2017 (lines 67-120). The Bet365 odds get cleaned by the margin and are used to identify the favoured team (lines 75-77). It is assumed that the favoured team will always win 2:1. If the betting odds do not show a favoured team, it will be assumed that the home team will win (line 79). The gained points are calculated by comparing the selected bet and the final outcome of the match (lines 90-103). In a second step the gained points get aggregated per season (lines 63-64) .

Poisson model

The second model is based on my Poisson prediction model. As the Poisson distributions provides the probabilities for every number of goals, which the home or away team are able to score, you can easily calculate the probability of each possible outcome and identify the most likely result. This result will be bet. Draws get ignored, as one basic rule for Kicktipp betting suggests this.

The SQL statement to simulate this model looks like this:

GitHub – Poisson model simulation

When calculating the Poisson probabilities to beat the Bookie, you have to sum the single probabilities of the different match outcomes – Home, Draw, Away. For the Kicktipp betting game the single results are interesting – e.g. 1:0, 1:2. The first part of the statement creates the different numbers of home and away goals, which can be scored in every match (lines 166-254). Based on this, the probabilities for the different results can be determined (line 292). By using the analytical rank function, you are able to identify the most likely outcome (line 305). The calculation for the gained points and the their aggregation looks the same for each model simulation.

Expected goals model

The expected goals model is just a variation of the Poisson model. As mentioned in previous posts, the Poisson distribution does not exactly fit the goal distribution in football match. Therefor I tried to suppress this disadvantage by directly using the expected goals feature used by the Poisson model. The expected goals are calculated based on the attack and defence strength of each team. The rounded expected goals are then used as the result, which should be bet.

The SQL statement to simulate this model looks like this:

GitHub – expected goals model simulation

The model just selects the expected goal feature for every historic match (lines 79-80). The round number of expected goals is used as the predicted match outcome (lines 81-92). If the rounded number of exp. goals would result in a draw, the number of home or away goals gets increased by one, dependent which team got the higher not rounded expected goals number. Based on this, the gained points are calculated and aggregated.


The following table shows the results of the model simulations. The results of were used from there website. The simulations showed some surprising results:

Results for simulated models (*missing games supplemented with avg gained points)

The biggest surprise are the results of the fixed 2:1 model. The model on average performs the best. This was something I clearly did not expect. The Poisson model performed worst on average. The exp. goals model was able to beat every other model in the seasons 2015/16 and 2013/14. But it is not consistent and reaches only 407 points on average. The difference between my models and is caused by underlying values for expected goals. uses the betting odds to determine the expected goals for a match. I use the calculated attack and defence strength of a team to identify the expected goals. This indicates clearly that the bookie odds are superior to my expected goals regarding the betting of final outcomes.

Last year the winner of the Kicktipp betting game at my company reached 422 points. So there was no model, which would have beat him. But you need always some luck to win a Kicktipp betting game.

If anyone got another model, which I should simulate and add to the results, please leave a comment.



If you have further questions, feel free to leave a comment or contact me @Mo_Nbg.

2 Replies to “How To: Kicktipp strategy simulation”

  1. Thanks for the nice read. Really interesting that to find someone who looked into Mahler Poisson model and beyond. (Well I should also admit that I am not deep into football prediction community)
    We, with a couple of friends, are also building a website that would be a competitor to Kicktipp actually. The main unique selling point is we are scoring predictions more fairly. Unlikely predictions are valued better so, this will devaluate all three suggestions you made above. 🙂
    If you want to get tester access, let me know. We are aiming to release an MVP by February.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: