Sources and data

Where our data comes from

Our data arrives in automatic batches, not as live scores. Fixtures and results come from a sports media data feed, and every score is checked against an independent second source. Conflicting scores wait for review. Missing confirmation allows single-source grading, shown in the coverage figures. This page describes the data we use, how we check it and when it updates.

Latest data batch

Update modeBatchHourly batches, not live scores

Next update

Sources by type of data

DataSourceTypeLicenceLeagues
Fixtures, kick-off times and results (live season)Sports media data feedMediaFacts onlyTerms review pendingPremier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership, Serie A, Ligue 1, Eredivisie, Süper Lig, EFL Championship, Saudi Pro League
Premier League injuries and suspensionsSpecialist Premier League injury tableMediaFacts onlyTerms review pendingPremier League
Injuries and suspensions (second team news source)Independent injury tables by leagueMediaFacts onlyTerms review pendingLa Liga, Bundesliga, Serie A, Ligue 1, Primeira Liga, Scottish Premiership, Eredivisie, Süper Lig, EFL Championship
Results (90-minute score)Sports media data feed, cross-checked with an independent second source and later with open dataMediaFacts onlyTerms review pendingPremier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership, Serie A, Ligue 1, Eredivisie, Süper Lig, EFL Championship, Saudi Pro League
Results cross-check and injuries/suspensionsIndependent football data serviceMediaFacts onlyTerms review pendingPremier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership, Serie A, Ligue 1, Eredivisie, Süper Lig, EFL Championship, Saudi Pro League
Fixtures and kickoff timesSports media data feed (single source)MediaFacts onlyTerms review pendingPremier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership, Serie A, Ligue 1, Eredivisie, Süper Lig, EFL Championship, Saudi Pro League
Team news and injuriesTwo independent sources in ten leagues; one in the Saudi Pro LeagueMediaFacts onlyTerms review pendingPremier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership, Serie A, Ligue 1, Eredivisie, Süper Lig, EFL Championship, Saudi Pro League
Shots on targetNo active sourceMediaFacts onlyNot used yetPremier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership
Historical resultsOpenly licensed historical results (CC0)Open dataCC0 (public domain)Premier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership
ImagesIllustrations generated for this site, labelled on the pageOwnMade for this sitePremier League, La Liga, Bundesliga, Primeira Liga, Scottish Premiership

"Facts only" means we record facts such as a score or a kickoff time, not republished articles. Source responses are cached internally for processing.

Status by league

Times in your local time. A forecast locks 24 hours before kickoff, so the latest lock is usually a day before the next match.

LeagueLatest results batchLatest forecast lockNext updateMissing data
Premier League
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 4/4 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 10 upcoming matches
La Liga
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 7/7 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 10 upcoming matches
Serie A
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 7/7 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 10 upcoming matches
Bundesliga
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 3/3 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 9 upcoming matches
Ligue 1
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 5/5 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 9 upcoming matches
Primeira Liga
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 7/7 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 9 upcoming matches
Scottish Premiership
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 1/1 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 6 upcoming matches
Eredivisie
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 3/3 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 9 upcoming matches
Süper Lig
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 4/4 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 9 upcoming matches
EFL Championship
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 12/12 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 12 upcoming matches
Saudi Pro League—
  • Shots on target unavailable – model uses goals only
  • Last 30 days: no tracked results to cross-check yet.
Champions League
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 18/18 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
Europa League
  • Shots on target unavailable – model uses goals only
  • Last 30 days: 1/1 tracked results (100.0%) confirmed by at least two sources; 0 single-source.
  • Team news unverified for 17 upcoming matches
Conference League
  • Shots on target unavailable – model uses goals only
  • Last 30 days: no tracked results to cross-check yet.
  • Team news unverified for 18 upcoming matches

Source details

Fixtures, kick-off times and results (live season)
Used for
Fixtures, kick-off times, venues and 90-minute scores for the live season; results feed the model, the league tables and grading.
Update schedule
Every hour at minute 05 UTC. Full runs at 00:05, 06:05, 12:05 and 18:05 fetch the next 10 days; other runs fetch today and the previous two days.
Checks
Fixtures and kickoff times come from this feed alone; there is no second-source kickoff check. Scores are checked against an independent second source: disagreements are held, and a missing second source allows single-source grading. A checker failure skips all result imports for that run.
Licence
Facts onlyTerms review pending
Premier League injuries and suspensions
Used for
Premier League team news alongside our main team news source; a player both list with the same absence status is confirmed by two sources.
Update schedule
At most once an hour for team pages and match dossiers; cached between pipeline runs.
Checks
Player names and status as listed; status mapped to out, doubtful or suspended.
Licence
Facts onlyTerms review pending
Injuries and suspensions (second team news source)
Used for
Second team news source in nine leagues (not the Premier League, which has its own second source, or the Saudi Pro League). A player it lists that our main team news source also lists counts as a second source; players only it lists are shown as single-source.
Update schedule
League injury pages read at most every 6 hours during the hourly runs (nine requests, 1.5 seconds apart). If a read fails, the last successful read up to 12 hours old is used, with its own check time.
Checks
Team names mapped to our clubs; unmatched names are reported, not guessed. Player names matched one-to-one within a team, allowing initials and cut-off names. Its status labels are not used for confirmation. The share of main-source absences it also lists is tracked per league; a sudden drop, an unreadable page or an unknown label raises a data alert.
Licence
Facts onlyTerms review pending
Results (90-minute score)
Used for
Grading tracked forecasts from 90-minute league scores. Coverage statistics count tracked results, not every historical match.
Update schedule
Hourly check against the second source; open data checked after the history refresh (12-hour cache).
Checks
Disagreements are held. A missing second source allows single-source grading. Later matching sources are appended without regrading. Open-data disagreements on scored matches require review; no automatic correction. If the checker crashes, all result imports are skipped for that run and retried next time.
Licence
Facts onlyTerms review pending
Results cross-check and injuries/suspensions
Used for
Second results source, and the main team news source on match pages, team pages and in match dossiers.
Update schedule
Matches cached one hour (completed past days permanently); match details three hours. At least 0.5 seconds between requests.
Checks
Exact mapped teams and same home/away order, date within one day. Conflicting scores held; unavailable source explicitly reported. Player confirmation: in the Premier League, matching absence status from a specialist injury table; in nine other leagues, the player is also listed by a second injury table and this source reports out or suspended. A missing absence list is reported separately from a read error; neither confirms a fully available squad.
Licence
Facts onlyTerms review pending
Fixtures and kickoff times
Used for
Fixture selection, kickoff times, venues and the forecast lock time (24 hours before kickoff).
Update schedule
Every hour at minute 05 UTC. Full runs at 00:05, 06:05, 12:05 and 18:05 fetch the next 10 days; other runs fetch today and the previous two days.
Checks
Mapped teams and fixture fields are validated. Kickoff times are not cross-checked with a second provider.
Licence
Facts onlyTerms review pending
Team news and injuries
Used for
Squad availability on match pages, team pages and in match dossiers. The main source uses each team's nearest upcoming league fixture within 8 days; a second injury table is added in every league except the Saudi Pro League.
Update schedule
Collected during hourly model runs. Match details cached 3 hours; the Premier League injury table 1 hour; the other injury tables 6 hours. Dossiers use the same sources when that stage runs.
Checks
Observation times are recorded; a publication date is not always available. Two-source confirmation: in the Premier League, matching full names and absence status in both sources; in other leagues, the player listed by both sources with the main source reporting out or suspended. Pages show how many sources list each player. No list, no upcoming fixture and source read errors are distinct; none proves a fully available squad.
Licence
Facts onlyTerms review pending
Shots on target
Used for
Not collected or used by the current model; it uses goals and results.
Update schedule
No collection scheduled.
Checks
No shots-on-target checks are implemented.
Licence
Facts onlyNot used yet
Historical results
Used for
Historical results for Elo, Dixon-Coles and backtests. Our live-season data feed fills gaps separately under its own record.
Update schedule
Checked during hourly model runs. Past seasons cached once; the current season refreshed after 12 hours. The live-season feed fills configured gaps and recent results.
Checks
Team mapping, scores, duplicate fixtures and season coverage are checked. Conflicting historical scores are reported, with the open data preferred. Matching tracked results receive delayed confirmation without regrading; disagreements require review.
Licence
CC0 (public domain)
Images
Used for
Hero and article illustrations. Stadium reconstructions have recorded reference material and are labelled as AI reconstructions.
Update schedule
Added by an editor; no automatic collection schedule.
Checks
The image manifest records origins, references and display labels; media checks verify the displayed assets.
Licence
Made for this site

Source change history

  1. Changed

    Club crests removed from the whole site. Every club now appears with a plain shield badge drawn for this site, and no club crests or competition logos are used.

  2. Added

    A second, independent team news source in nine leagues (not the Premier League, which already has two, or the Saudi Pro League). A player both sources list counts as confirmed when our main source reports them out or suspended.

  3. Changed

    Club crests no longer shown for Premier League, LaLiga and Bundesliga clubs (plain shield badges instead). Crests added for every Primeira Liga club, from the official league website.

  4. Changed

    Content photos from an open image library replaced by AI illustrations made for this site and labelled on the page. Club crests unchanged.

  5. Added

    Club crests from the official websites of the five leagues, for identification only, with a switch to turn them off.

  6. Excluded

    Datasets licensed for private use only kept out of the production pipeline and the site. Historical results come from openly licensed (CC0) data.

Spotted a wrong score, kickoff time or name? Report a data issue; confirmed corrections are logged after review.

For information and entertainment only. Not betting advice. 18+. Predictions are probabilities, not certainties. Responsible gambling