Ever wondered what would happen if you just bet on the same team every week for the entire season? I admit it doesn’t sound like the best strategy for making money, however when you look at the data you might not actually be out of pocket as much as you think, and you could actually make some cash.
I decided to use the 18/19 Premiership season to test out the theory. In the screenshot below you can see that I create a Pandas dataframe containing all 18/19 match results (FTR=1,2,0 for home win, away win or draw), with their corresponding bookmaker odds taken from Bet365, and then filtered it by team. I’m going to use the 18/19 champions Man City as the first example.
If we iterate through the list of games and work out how much we would win or lose with the same unit bet we can achieve this with some simple python code.
def team_won(row, team): if row['HomeTeam'] == team and row['FTR'] == 1 : return 1 if row['AwayTeam'] == team and row['FTR'] == 2 : return 1 return 0 def team_odds(row, team): if row['HomeTeam'] == team : return row['B365H'] if row['AwayTeam'] == team : return row['B365A'] return '0' stake = 10 df_city['TeamOdds'] = df_city.apply (lambda row: team_odds(row, team), axis=1) df_city['TeamWon'] = df_city.apply (lambda row: team_won(row, team), axis=1) df_city['Winnings'] = (df_city["TeamOdds"]-1)*df_city["TeamWon"]*stake df_city.loc[df_city["Winnings"]==0, "Winnings"] = -stake df_city['RunningTotal'] = df_city["Winnings"].cumsum() df_city
The Pandas cumsum() function is handy here to keep a running total of the winnings.
Date | HomeTeam | AwayTeam | FTR | B365H | B365D | B365A | BbAv>2.5 | TeamOdds | TeamWon | Winnings | RunningTotal |
12/08/2018 | Arsenal | Man City | 2 | 4 | 3.8 | 1.95 | 1.55 | 1.95 | 1 | 9.5 | 9.5 |
19/08/2018 | Man City | Huddersfield | 1 | 1.1 | 13 | 26 | 1.32 | 1.1 | 1 | 1 | 10.5 |
25/08/2018 | Wolves | Man City | 0 | 11 | 6.5 | 1.28 | 1.54 | 1.28 | 0 | -10 | 0.5 |
01/09/2018 | Man City | Newcastle | 1 | 1.11 | 11 | 26 | 1.37 | 1.11 | 1 | 1.1 | 1.6 |
15/09/2018 | Man City | Fulham | 1 | 1.12 | 10 | 26 | 1.26 | 1.12 | 1 | 1.2 | 2.8 |
22/09/2018 | Cardiff | Man City | 2 | 23 | 8 | 1.16 | 1.45 | 1.16 | 1 | 1.6 | 4.4 |
29/09/2018 | Man City | Brighton | 1 | 1.1 | 12 | 34 | 1.3 | 1.1 | 1 | 1 | 5.4 |
07/10/2018 | Liverpool | Man City | 0 | 2.54 | 3.6 | 2.8 | 1.62 | 2.8 | 0 | -10 | -4.6 |
20/10/2018 | Man City | Burnley | 1 | 1.08 | 13 | 34 | 1.28 | 1.08 | 1 | 0.8 | -3.8 |
29/10/2018 | Tottenham | Man City | 2 | 4.75 | 4.1 | 1.75 | 1.58 | 1.75 | 1 | 7.5 | 3.7 |
04/11/2018 | Man City | Southampton | 1 | 1.11 | 11 | 29 | 1.3 | 1.11 | 1 | 1.1 | 4.8 |
11/11/2018 | Man City | Man United | 1 | 1.4 | 5.25 | 8.5 | 1.48 | 1.4 | 1 | 4 | 8.8 |
24/11/2018 | West Ham | Man City | 2 | 13 | 6.5 | 1.25 | 1.43 | 1.25 | 1 | 2.5 | 11.3 |
01/12/2018 | Man City | Bournemouth | 1 | 1.11 | 11 | 26 | 1.25 | 1.11 | 1 | 1.1 | 12.4 |
04/12/2018 | Watford | Man City | 2 | 11 | 6 | 1.3 | 1.5 | 1.3 | 1 | 3 | 15.4 |
08/12/2018 | Chelsea | Man City | 1 | 4 | 3.8 | 1.95 | 1.69 | 1.95 | 0 | -10 | 5.4 |
15/12/2018 | Man City | Everton | 1 | 1.22 | 7.5 | 13 | 1.38 | 1.22 | 1 | 2.2 | 7.6 |
22/12/2018 | Man City | Crystal Palace | 2 | 1.14 | 10 | 21 | 1.35 | 1.14 | 0 | -10 | -2.4 |
26/12/2018 | Leicester | Man City | 1 | 9.5 | 5.25 | 1.36 | 1.6 | 1.36 | 0 | -10 | -12.4 |
30/12/2018 | Southampton | Man City | 2 | 10 | 5.25 | 1.3 | 1.54 | 1.3 | 1 | 3 | -9.4 |
03/01/2019 | Man City | Liverpool | 1 | 2.04 | 3.8 | 3.6 | 1.54 | 2.04 | 1 | 10.4 | 1 |
14/01/2019 | Man City | Wolves | 1 | 1.18 | 8 | 17 | 1.47 | 1.18 | 1 | 1.8 | 2.8 |
20/01/2019 | Huddersfield | Man City | 2 | 21 | 8.5 | 1.16 | 1.49 | 1.16 | 1 | 1.6 | 4.4 |
29/01/2019 | Newcastle | Man City | 1 | 19 | 8 | 1.18 | 1.46 | 1.18 | 0 | -10 | -5.6 |
03/02/2019 | Man City | Arsenal | 1 | 1.33 | 6 | 9 | 1.35 | 1.33 | 1 | 3.3 | -2.3 |
06/02/2019 | Everton | Man City | 2 | 10 | 6.25 | 1.3 | 1.49 | 1.3 | 1 | 3 | 0.7 |
10/02/2019 | Man City | Chelsea | 1 | 1.5 | 4.75 | 7 | 1.62 | 1.5 | 1 | 5 | 5.7 |
27/02/2019 | Man City | West Ham | 1 | 1.16 | 9 | 19 | 1.34 | 1.16 | 1 | 1.6 | 7.3 |
02/03/2019 | Bournemouth | Man City | 2 | 13 | 7.5 | 1.22 | 1.39 | 1.22 | 1 | 2.2 | 9.5 |
09/03/2019 | Man City | Watford | 1 | 1.16 | 9 | 19 | 1.32 | 1.16 | 1 | 1.6 | 11.1 |
30/03/2019 | Fulham | Man City | 2 | 21 | 11 | 1.12 | 1.29 | 1.12 | 1 | 1.2 | 12.3 |
03/04/2019 | Man City | Cardiff | 1 | 1.06 | 17 | 34 | 1.22 | 1.06 | 1 | 0.6 | 12.9 |
14/04/2019 | Crystal Palace | Man City | 2 | 11 | 6 | 1.3 | 1.6 | 1.3 | 1 | 3 | 15.9 |
20/04/2019 | Man City | Tottenham | 1 | 1.3 | 6 | 11 | 1.43 | 1.3 | 1 | 3 | 18.9 |
24/04/2019 | Man United | Man City | 2 | 7.5 | 5 | 1.44 | 1.52 | 1.44 | 1 | 4.4 | 23.3 |
28/04/2019 | Burnley | Man City | 2 | 23 | 9 | 1.14 | 1.41 | 1.14 | 1 | 1.4 | 24.7 |
06/05/2019 | Man City | Leicester | 1 | 1.12 | 8.5 | 17 | 1.31 | 1.12 | 1 | 1.2 | 25.9 |
12/05/2019 | Brighton | Man City | 2 | 19 | 8.5 | 1.16 | 1.41 | 1.16 | 1 | 1.6 | 27.5 |
At the end of the season we’re a full £27.50 up based on our £10 unit bet! Not exactly rolling in it, but then better than nothing! and also, we were never much down during the season, the most being £12.40 in the red in December after they were beaten by Leicester.
Here are some more examples of what you would have won betting just betting on a single team in the 18/19 season. Remember that this was how the league table ended up:
Here are the winnings of the teams who finished in the Top 10.
- Man City +£27.50
- Liverpool +£30.80
- Chelsea -£44.70
- Tottenham +£18.30
- Arsenal -£1.60
- Man United -£50.30
- Wolves +£97.40
- Everton -£31.30
- Leicester City +£132.30
- West Ham +£71.60
The Leicester winnings are highest, much of that is due to them beating Man City mid season at high odds. Definitely interesting that you could make money betting on the same team to win each week (at least for 6 teams out of the top 10), especially the “unfashionable” teams such as Wolves, Leicester and West Ham.
0 Comments