What is FootballPace?

Football Pace is a version of the standings table that accounts for strength of schedule. It looks at historical data to see how a typical champion performs in each match, based on home/away and the opponent's finishing position. It then presents a new version of the standings table, that shows how each team is doing compared to typical championship pace, given their schedule so far.

Most specifically, for each match, we determine:

  • The opponent's Projected Finishing Position, based on the opponent's finish this year and last year.
  • The match's Expected Points, based on how historical league champions perform in matches against opponents who finished in that position.
  • The cumulative Championship Pace, based on the sum of all expected points for the season so far.

About FootballPace

FootballPace was made by Dan Schafer. The source code is available on Github.

The data pipeline is powered by Dagster, the front-end by Next.js and hosted on Vercel. The components library is Mantine. Data is sourced from Football Data UK and from Fantasy Premier League. Flags icons are from OpenMoji. Team color data is from jimniels/teamcolors.

The original inspiration for this is from the Reddit user AndrycApp's par table posts; the term "pace" is used here instead to clarify that teams want to be ahead of pace (whereas with par in golf, you generally want to be below par).

Updates

Football Pace checks for updates from our data sources every hour, but we have different data sources for different leagues.

  • The current English Premier League season is sourced from the Fantasy Premier League API. This updates nearly live, so English Premier League matches should appear on the site within an hour or two after they finish. This API also provides a full list of fixtures, allowing Football Pace to display those.
  • All other leagues (and all historical results) are sourced form Football Data UK. They tend to update a day or two after the matches take place, so other leagues results will appear with a day or two delay.

FAQ

  • Why is an opponent never expected to finish 1st in the league, even when they are top of the table?

    For each match, FootballPace determines expected points at championship pace – that is, how many points would a team expect to take from this match if they were on pace to finish champions of the league.

    But by definition, at championship pace, we expect the team to finish first... so their opponent will never finish higher than second! Hence, the opponents for a given team are given ranks in the table starting from second and ending in last, and we assume the given team finishes first.

  • Why does the expected points for a given matchup change from year-to-year, and league-to-league?

    FootballPace determines the expected points based on historical data for that league; so each league is expected to be different.

    FootballPace also only considers results from previous seasons when determining expected points. So if a league changes over time (for example; the number of points needed to win the English Premier League has increased from the mid-2000s to present), this will be reflected in the pace for current seasons, but will not change the pace for those historical seasons.

  • Why does the expected points for a given match change as the year goes on?

    To determine expected points for a match, FootballPace has to approximate where a given opponent will finish in the table this year. To do so, it looks at both their performance this year, and their performance in previous years.

    This means, though, that FootballPace might change its assessment of the difficulty of a match as the year goes on. Take, for example, Leicester's run to the title in 2015–2016. If you played Leicester in MD1 of 2015–2016 (as Sunderland did), at that time FootballPace would have expected Leicester to be the 14th best team in the league (as that's where they finished in 2014–2015). By the end of the season, though, FootballPace would have observed that Leicester was top of the table, and would now have assessed Leicester as the best team in the league. And indeed, if you look at FootballPace for that completed season for Sunderland, you will see MD1 listed as "Away to 2".

    Hence, that match would have much lower expected points at the end of the year than at the start. This is an example of why expected points for a given match change as the year goes on – though they are rarely quite this dramatic.

Contact

For feedback, comments, questions, or bug reports, please contact us.