Sources and licences
Where the data comes from
A layer-by-layer truth table: which source owns each number, what is a fallback, what is computed or curated, and where the licensed source does not cover the data. A source is never called primary for a layer it does not supply.
Generated 27 Oct 2026 · season 2026-27 · manifest 2026-10-27T12:06:31+00:00-c598315.
Layer truth table
What owns each layer
| Layer | Primary | Fallback | Status | Rows | Scope |
|---|---|---|---|---|---|
| League results, current season | football-data.co.uk | API-Football | active | 231 | current season, all four SPFL tiers |
| League results, historical | football-data.co.uk | — | active | 9,623 | 2013-14 to the season before the current one |
| League team match stats | football-data.co.uk | — | active | 231 | 2013-14 to current |
| League tables | Computed on site | — | active | — | current and historical seasons |
| League Cup and Scottish Cup fixtures | API-Football | — | partial | 159 | current season |
| Aberdeen club fixture list | SPFL official club feed | API-Football | active | 12 | current season |
| Lineups, formations and starting roles | API-Football | — | active | 489 | Aberdeen fixtures, current season |
| Player match ratings and stats | API-Football | — | partial | 400 | Premiership, current season |
| Named matchday squads | API-Football | — | partial | — | Aberdeen competitive fixtures, current season |
| Scouting league tables for team context | API-Football | — | partial | — | current table for every enabled scouting league |
| Current club resolution for the scouting pool | API-Football | — | partial | — | transfer feed for every team represented in the scouting pool |
| European league-phase player appearances | API-Football | — | partial | — | 2026-27 league phases of the Champions League, Europa League and Conference League |
| Scouting player pool and starting-XI roles | API-Football | — | partial | — | configured scouting leagues, current season |
| Event-derived Aberdeen stats | API-Football | — | active | 489 | Aberdeen fixtures with lineups and events |
| Official squad roster | Aberdeen FC men's team roster | API-Football | active | — | current men's team, one listed page per refresh |
| Current squad identity and statistics | API-Football | — | active | 34 | current season |
| Preferred foot | Sportmonks | Aberdeen FC men's team roster, Wikipedia | gated | — | current squad |
| Transfer candidate feed | API-Football | — | active | 170 | Aberdeen full transfer history |
| Published transfer register | Curated register | — | active | — | 2019-20 to current |
| Loan register | Curated register | — | partial | — | current and historical |
| AFC news headlines | Aberdeen FC news | — | active | 24 | current |
| Injuries and availability | Aberdeen FC news | API-Football | partial | 2 | current squad and next opponent |
| Curated rumour register | Curated register | — | active | — | current |
| Fan signal | AFC Chat — The Rumour Mill | — | active | 83 | sampled first pages |
| Cormack-era historical record | Mixed sources | — | active | — | 2019-20 to current |
| Inferred transfer values | Curated register | — | active | — | transfer register |
| Former-player record | API-Football | Wikipedia | active | — | 2019-20 to current |
| Sell-on event evidence | Curated register | — | active | — | 2019-20 to current |
| Medium and long-term themes | Derived on site | — | active | — | current season + Cormack era |
| Squad needs | Derived on site | — | active | — | current squad |
| fitba expected goals | Computed on site | football-data.co.uk, API-Football | experimental | — | current-season league matches with shot-zone inputs |
| Betting odds | Not published | — | not_published | — | n/a |
A source is listed as primary only for the layers it actually supplies. Row counts are primary contributions only; curated and derived layers are labelled as such.
Active sources
Registry and attribution
| Source | Lane | Primary layers | Rows | Last checked |
|---|---|---|---|---|
| football-data.co.uk | derived_display | league_results_current, league_results_history, league_team_stats | 10,085 | 2026-10-21 |
| API-Football | derived_display | cup_fixtures, event_layer, former_player_record, lineups_roles, player_match_stats, player_squads, scouting_current_clubs, scouting_europe, scouting_pool, scouting_team_context, squad_identity, transfers_candidate | 1,741 | 2026-10-23 |
| AFC Chat — The Rumour Mill | derived_display | forum_signal | 83 | 2026-10-21 |
| Aberdeen FC news | derived_display | availability, news | 26 | 2026-10-21 |
| SPFL official club feed | derived_display | club_fixtures | 12 | 2026-10-21 |
| Wikipedia | derived_display | corroboration / gated | 0 | 2026-10-21 |
| Sportmonks | derived_display | preferred_foot | 0 | 2026-10-21 |
| Aberdeen FC men's team roster | derived_display | squad_roster | 0 | 2026-10-24 |
A row count belongs to the source only where it is the primary contributor. Curated transfer rows are not counted as API-Football rows; a gated source can appear with zero rows.
Current-season league migration
Gate status
Active league-results source: football-data.co.uk.
Gate: fail. Gate failed: SC0: fixture_count (198); SC1: team_match_stats (metadata False; sample fixture 1556828: 0 team blocks); SC2: team_match_stats (metadata False; sample fixture 1557006: 0 team blocks)
Report: reports/league-migration/2026-27.json
The gate requires all four leagues, complete fixtures, exact scores for played matches and the team match stats the style layers need. A partial pass does not migrate.
Availability
Team news is a special case
Curated official AFC team news is the primary availability source. Provider injury snapshots are optional and labelled separately.
Provider snapshot: unavailable. provider declares injuries false.
A provider injury flag is not team news. Unknown stays unknown; no injury status is inferred from the provider boolean.
Excluded
Sources we do not publish
- bbc sport — Terms prohibit scraping or republication; manual finding aid only.
- transfermarkt — Scraping prohibited; not used for public data.
- fotmob — Terms prohibit scraping or republication.
- sofascore — Terms prohibit scraping or republication.
- fbref — Scraping prohibited; written permission required.
- pannadata — No licence stated; local research only, never published.
What is published
Derived, not raw
League tables, cup groups and rounds, aggregates, percentiles, curated fee bands and AFC headlines. Raw payloads and full event feeds stay in gitignored caches.
Roles come from the licensed starting-XI grid. Preferred foot carries its source id, URL, revision and verification date; unknown is explicit. The rumour mill publishes curated links, an advisory profile and derived fan-signal aggregates. X is embedded, not ingested.
What is not
No raw redistribution
No full event feed, no source-shaped table, no raw market-value feed, no unlicensed tracking data and no betting odds. A source can be disabled and the site rebuilt from the remainder.
← About fitba · Methodology · Season overview
Provenance
How this page is sourced
Dataset 2026-10-27T12:06:31+00:00-c598315. Sources and coverage are listed below; the page keeps its own source and uncertainty labels.
The source truth table describes the layers; it is not itself a derived fact surface.
Definitions: provenance.layers
Corrections and changes are recorded on Corrections and contact.
Cite this page
Sources and provenance. Dataset 2026-10-27T12:06:31+00:00-c598315, as of 2026-10-27T12:06:31+00:00. Source: published fitba record. Definitions: provenance.layers.