Every field in the foot.io schema, with its live fill-rate. No marketing averages — this page pulls the raw numbers every time it loads. If a column says 23% coverage, it's because 77% of rows have it null. We'd rather show you the real floor than promise a ceiling.
≥ 70% coverage
Fill-rate table-stakes. You can safely rely on this field being present when building against our API.
20% – 69% coverage
Populated for most well-documented entities (top leagues, famous players) but sparse on the long tail.
1% – 19% coverage
Narrow-source fields (open event data, top-5 league advanced stats, FPL Premier League only). Expect gaps.
< 1% coverage
Schema exists, ingester scaffolded or running. Check back soon — or subscribe to the changelog.
| Loading… |
| Loading… |
| Loading… |
| Loading… |
| Loading… |
GET /rest/v1/competition_season_coverage| Loading… |
| Loading… |
| Loading… |
| Loading… |
| Loading… |
shot_events.xg (published) and xg_modeled (foot.io v1)For every shot with location coordinates, we either have a published xG value or fill the gap with our own model. The split below shows how much of the table is currently in each state.
| Loading… |
This page reads from data_coverage_snapshot, a materialized view refreshed nightly by our scheduled data-quality pipeline. If you want to know exactly what the DB holds right this second, use the query below.
GET /rest/v1/data_coverage_snapshot?select=*
↳ live fill-rate per (entity, field) pair — the source of this page
POST /rest/v1/rpc/refresh_data_coverage
↳ force a coverage refresh (service-role only)