Data sources and coverage

Two upstream providers supply everything on this site. Neither covers everything, and the gaps are not evenly spread, so this page states what each one supplies and how much of the archive it actually reaches.

The figures below are counts from the database, not estimates. They describe the archive as it stands, and they are the same figures the per-page copy is built from.

Where the data comes from

API-Football supplies the competition, season, fixture and club spine: scorelines and match status, league tables, squads by season, managers, grounds, injuries, and — where the provider has them — lineups, match events and per-player match statistics.

Transfermarkt supplies transfer histories and player market values. Those two feeds are scraped rather than served through an API, which is why their coverage is the thinnest on the site and why a fee is shown only when the source states one.

Named rivalries are ours. Which clubs constitute a derby, what it is called, and which meetings count towards its record are curated here, not taken from a feed.

How often each feed refreshes

Refresh is scheduled, not continuous. The live loops are gated on the fixture schedule: they poll only from fifteen minutes before a tracked kickoff until four hours after it, and stand down entirely the rest of the time. Everything else runs on a fixed cadence whether or not anyone is reading.

  • Live scores: every 20 seconds, but only while a tracked fixture is in its live window
  • Match events and in-play player stats: every 60 seconds and every 3 minutes, under the same gate
  • Today's fixtures every 5 minutes; the surrounding fixture window every 30 minutes; full season fixtures daily
  • League tables every 30 minutes; top scorers hourly; injuries every 6 hours
  • Managers, competition metadata and derby head-to-head records: daily
  • Transfers and market values: backfilled continuously through a background queue, never on the request path

Measured coverage, and where it is thin

The spine is dense and the detail is sparse. Being specific about that is the point of this page: several of these figures are low enough that a page promising the data would be lying on most of its URLs, which is why the page copy is generated from what each record holds.

  • Scorelines and status: all 84,561 matches
  • Starting lineups: 5,649 matches. Match events (goals, cards): 7,985. Per-player match statistics: 7,288
  • League tables: 14 of 1,224 competitions have standings for a current season
  • Player market values: 35 of 188,526 player records carry a current value
  • Transfers: 521,304 rows, but roughly a third arrive with no usable fee or move type and are shown without one
  • Grounds: 4,856 venues, though most individual fixtures carry no venue of their own and the ground shown is inferred from where the home club usually plays

Accuracy and corrections

Nothing here is independently verified against a second source. Where the providers disagree with the record books they will disagree here too, and where a provider backfills a fixture late the page will be wrong until the next sync picks it up.

A page never fills a gap with a placeholder. If a value is missing the sentence, the row or the whole section is omitted, so an absent number on this site means "not held", never "zero".

Corrections are welcome at hello@derbydatahub.com — include the URL and the value you believe is right.

Who runs this archive and how the pages are produced is on the about page. Start browsing from every competition we track or the derby index.