Most, if not all forecasting models have limitations.  To make most of forecasting tools, it is better to understand the limitations and robustness of assumptions, so understand possible issues. Forecasts should be used to aid decision-making.

Following my previous article “Having a coffee and a Poisson to select team/captain”, I explained the power of the Poisson in football predictions and how to predict the points for a given week.  I have extrapolated this method to cover the whole season to become a forecasting tool.  I have updated some of the methodology, and can produce a further article if anybody is interested.

This model can be used for both the official FPL and Sky games.  It should be noted that the model forecasts points for goals, assists, clean sheets, goals conceded and yellow/red cards, for Sky it also includes bonus awards.  It doesn’t include points for appearances, MotM awards, number of saves, etc. so outputs are not directly comparable with points scored.

The model has just finished and is hot of the press.  This does mean there could be bugs or some odd outcomes.  If you see any, then let me know.

The model is linked here: Forecasting model link

User dashboard (main page in the spreadsheet)

Hopefully, this is quite intuitive. Column C is where the user can change the inputs as follows:

  • C2 select if forecasts are for Sky or official FPL game
  • C5:C6 for the start and end period of forecasts
  • C8:C9 select the price range of players you want to be displayed
  • C11 select the minimum number of games for a player to have played.
  • C13 include bonus points. Mainly only impacts on Sky game, but includes cards for FPL
  • C15 gives choice to include all clubs, if not then in C18:C37 indicate which clubs should be included.

Given the users selection above, cells F2:AB23 displayed the top 20 players for each position on forecast points scored.  F26:AB35 gives the top 10 players by forecast points per £m.

It should be noted that players that are excluded have their points set to zero.  This can lead to some odd situations.  For example, in week 5 Burnley was at Liverpool and I want to know their expected score.  I set game type to FPL and C5 and C6 to 5, C15 =”No” and Burnley (C21=”Yes”).  Burnley players are top of midfielders and strikers as expected, but not keeper or defenders, this is because they have a negative expected return so are ranked lower than players not.

Test/using model

This week Pogba got injured, so I decided to transfer him out of my FPL team. The question is what should I do?  Going to the model I set C2 = FPL, C5=5 (as this will be GW5) and C6=5.  Looking at midfielders Jese was the top midfielder I could afford.  So, what about over the next 5 weeks?  So, I set C6 = 10 to project over the next 5 weeks. Jese again is the top midfielder that is affordable.

First question I ask myself.  Why is he showing up and is it plausible? So, there is a test page.  I copy the players name and paste the value into cell B5 of the “Test” page.  Here it suggests that Jese will score 27% of goals when he is playing in the side and Stoke are expected to score 1.08 goals this week.  Using the Poisson and some basic probability on the right, cell F12 says he has a 25% chance of scoring this weekend, so a fair price to score anytime during the match is 3.96

At the time of making the transfer the best price available across bookies was 3.8, so I thought this seemed reasonable and made the transfer.

During the evening I surfed the net and noted that he had often been subbed off during the match, so maybe a giving a little red flag.  At the time of writing now, the best price for him to score anytime is 4 thought the range of all other bookies is 3.25-3.8

Next steps

I will update the model for new data as the season progresses and will write an article on more detail methodology if there is demand.

Hope you find this tool useful and please leave any comments below on things you like about the model and anything you’d find more useful.