Data Quality
34 seasons processed in the database
Seasons · Teams · Matches per Team
Season Summary
SeasonMatchesAvg Matches/TeamTeams
1992-9346242.022
1993-9446242.022
1994-9546242.022
1995-9638038.020
1996-9738038.020
1997-9838038.020
1998-9938038.020
1999-0038038.020
2000-0138038.020
2001-0238038.020
2002-0338038.020
2003-0438038.020
2004-0538038.020
2005-0638038.020
2006-0738038.020
2007-0838038.020
2008-0938038.020
2009-1038038.020
2010-1138038.020
2011-1238038.020
2012-1338038.020
2013-1438038.020
2014-1538038.020
2015-1638038.020
2016-1738038.020
2017-1838038.020
2018-1938038.020
2019-2038038.020
2020-2138038.020
2021-2238038.020
2022-2338038.020
2023-2438038.020
2024-2538038.020
2025-2638038.020
SQL Query Used
-- Season-by-season team counts and matches per team
copy (
    with team_counts as (
        select season_label, count(distinct team_id) as team_count
        from (
            select season_label, home_team_id as team_id from "premier_league"."main"."fct_matches"
            union all
            select season_label, away_team_id as team_id from "premier_league"."main"."fct_matches"
        )
        group by season_label
    )
    select
        m.season_label,
        tc.team_count,
        count(*) as matches_played,
        round(2.0 * count(*) / tc.team_count, 1) as avg_matches_per_team
    from "premier_league"."main"."fct_matches" as m
    left join team_counts as tc on m.season_label = tc.season_label
    group by m.season_label, tc.team_count
    order by min(m.kickoff_date)
)
to 'assets/data/season_quality.csv' (header, delimiter ',')