Longest Gap Between Wins
For each team, the longest time between two consecutive wins — spanning seasons, not games
Time Between Wins
Bars are to scale · longest gap at top · hover for dates
Every Team's Longest Gap
| # | Team | Gap | Last win | Next win | Days | League matches between |
|---|---|---|---|---|---|---|
| 1 | Nottingham Forest | 23 years and 90 days | 16 May 1999 | 14 Aug 2022 | 8,491 | 1 |
| 2 | Ipswich Town | 22 years and 200 days | 24 Apr 2002 | 10 Nov 2024 | 8,236 | 12 |
| 3 | Leeds United | 16 years and 162 days | 10 Apr 2004 | 19 Sep 2020 | 6,006 | 7 |
| 4 | Queens Park Rangers | 15 years and 115 days | 27 Apr 1996 | 20 Aug 2011 | 5,593 | 2 |
| 5 | Sheffield United | 12 years and 153 days | 30 Apr 1994 | 30 Sep 2006 | 4,536 | 8 |
| 6 | Leicester City | 10 years and 128 days | 08 May 2004 | 13 Sep 2014 | 3,780 | 4 |
| 7 | Norwich City | 9 years and 245 days | 20 Mar 1995 | 20 Nov 2004 | 3,533 | 21 |
| 8 | Crystal Palace | 8 years and 130 days | 23 Apr 2005 | 31 Aug 2013 | 3,052 | 5 |
| 9 | Watford | 8 years and 130 days | 05 May 2007 | 12 Sep 2015 | 3,052 | 5 |
| 10 | Sunderland | 8 years and 102 days | 06 May 2017 | 16 Aug 2025 | 3,024 | 3 |
| 11 | Southampton | 7 years and 145 days | 30 Apr 2005 | 22 Sep 2012 | 2,702 | 6 |
| 12 | Middlesbrough | 7 years and 132 days | 11 Apr 2009 | 21 Aug 2016 | 2,689 | 7 |
| 13 | Wolverhampton Wanderers | 6 years and 209 days | 04 Feb 2012 | 01 Sep 2018 | 2,401 | 17 |
| 14 | Derby County | 5 years and 185 days | 16 Mar 2002 | 17 Sep 2007 | 2,011 | 13 |
| 15 | Cardiff City | 4 years and 191 days | 12 Apr 2014 | 20 Oct 2018 | 1,652 | 12 |
| 16 | Reading | 4 years and 190 days | 11 May 2008 | 17 Nov 2012 | 1,651 | 10 |
| 17 | Burnley | 4 years and 183 days | 09 May 2010 | 08 Nov 2014 | 1,644 | 10 |
| 18 | Fulham | 4 years and 136 days | 12 Apr 2014 | 26 Aug 2018 | 1,597 | 6 |
| 19 | Manchester City | 4 years and 118 days | 27 Apr 1996 | 23 Aug 2000 | 1,579 | 2 |
| 20 | Aston Villa | 3 years and 198 days | 06 Feb 2016 | 23 Aug 2019 | 1,294 | 15 |
| 21 | Hull City | 3 years and 150 days | 27 Mar 2010 | 24 Aug 2013 | 1,246 | 8 |
| 22 | Bolton Wanderers | 3 years and 108 days | 02 May 1998 | 18 Aug 2001 | 1,204 | 1 |
| 23 | West Bromwich Albion | 2 years and 222 days | 04 Feb 2006 | 13 Sep 2008 | 952 | 16 |
| 24 | Blackburn Rovers | 2 years and 158 days | 20 Mar 1999 | 25 Aug 2001 | 889 | 10 |
| 25 | West Ham United | 2 years and 102 days | 03 May 2003 | 13 Aug 2005 | 833 | 1 |
| 26 | Bournemouth | 2 years and 11 days | 26 Jul 2020 | 06 Aug 2022 | 741 | 0 |
| 27 | Birmingham City | 1 year and 128 days | 19 Apr 2006 | 25 Aug 2007 | 493 | 6 |
| 28 | Charlton Athletic | 1 year and 103 days | 08 May 1999 | 19 Aug 2000 | 469 | 1 |
| 29 | Newcastle United | 1 year and 103 days | 15 May 2016 | 26 Aug 2017 | 468 | 2 |
| 30 | Huddersfield Town | 205 days | 14 Apr 2018 | 05 Nov 2018 | 205 | 14 |
| 31 | Everton | 178 days | 07 May 1994 | 01 Nov 1994 | 178 | 12 |
| 32 | Tottenham Hotspur | 176 days | 03 May 2008 | 26 Oct 2008 | 176 | 9 |
| 33 | Brighton and Hove Albion | 175 days | 28 Dec 2019 | 20 Jun 2020 | 175 | 9 |
| 34 | Stoke City | 175 days | 07 Apr 2012 | 29 Sep 2012 | 175 | 11 |
| 35 | Wimbledon | 157 days | 03 Mar 1999 | 07 Aug 1999 | 157 | 11 |
| 36 | Liverpool | 144 days | 08 May 2012 | 29 Sep 2012 | 144 | 6 |
| 37 | Portsmouth | 144 days | 08 Apr 2008 | 30 Aug 2008 | 144 | 7 |
| 38 | Coventry City | 140 days | 27 Apr 1996 | 14 Sep 1996 | 140 | 6 |
| 39 | Sheffield Wednesday | 139 days | 16 May 1999 | 02 Oct 1999 | 139 | 9 |
| 40 | Arsenal | 133 days | 07 May 2006 | 17 Sep 2006 | 133 | 3 |
| 41 | Wigan Athletic | 132 days | 18 Apr 2010 | 28 Aug 2010 | 132 | 5 |
| 42 | Manchester United | 131 days | 06 May 2014 | 14 Sep 2014 | 131 | 4 |
| 43 | Chelsea | 130 days | 13 Apr 1996 | 21 Aug 1996 | 130 | 4 |
| 44 | Swansea City | 117 days | 07 May 2013 | 01 Sep 2013 | 117 | 4 |
| 45 | Brentford | 105 days | 10 May 2025 | 23 Aug 2025 | 105 | 3 |
| 46 | Bradford City | 102 days | 01 Jan 2001 | 13 Apr 2001 | 102 | 10 |
| 47 | Oldham Athletic | 102 days | 08 May 1993 | 18 Aug 1993 | 102 | 1 |
| 48 | Swindon Town | 84 days | 05 Feb 1994 | 30 Apr 1994 | 84 | 12 |
| 49 | Blackpool | 81 days | 22 Feb 2011 | 14 May 2011 | 81 | 9 |
| 50 | Luton Town | 67 days | 30 Jan 2024 | 06 Apr 2024 | 67 | 10 |
| 51 | Barnsley | 54 days | 27 Aug 1997 | 20 Oct 1997 | 54 | 6 |
SQL Query Used
-- Longest calendar gap each team went between consecutive wins, across all seasons
copy (
with team_games as (
select
match_id,
kickoff_at,
kickoff_date,
home_team_id as team_id,
home_team_name as team_name,
home_team_abbr as team_abbr,
result = 'home_win' as is_win
from "premier_league"."main"."fct_matches"
union all
select
match_id,
kickoff_at,
kickoff_date,
away_team_id as team_id,
away_team_name as team_name,
away_team_abbr as team_abbr,
result = 'away_win' as is_win
from "premier_league"."main"."fct_matches"
),
games_ranked as (
select
*,
row_number() over (
partition by team_id
order by kickoff_at, match_id
) as game_rank
from team_games
),
wins as (
select
*,
lag(game_rank) over (
partition by team_id
order by kickoff_at, match_id
) as prev_win_game_rank,
lag(kickoff_date) over (
partition by team_id
order by kickoff_at, match_id
) as prev_win_date
from games_ranked
where is_win
),
gaps as (
select
team_id,
min(team_name) as team_name,
min(team_abbr) as team_abbr,
prev_win_date as start_date,
kickoff_date as end_date,
datediff('day', prev_win_date, kickoff_date) as gap_days,
game_rank - prev_win_game_rank - 1 as matches_between
from wins
where prev_win_date is not null
group by
team_id,
prev_win_date,
kickoff_date,
game_rank - prev_win_game_rank - 1
),
ranked as (
select
*,
row_number() over (
partition by team_id
order by gap_days desc, end_date desc
) as rn
from gaps
)
select
team_name,
team_abbr,
start_date,
end_date,
gap_days,
matches_between
from ranked
where rn = 1
order by gap_days desc, team_name
)
to 'assets/data/longest_winless_gaps.csv' (header, delimiter ',')