Skip to content

Coverage

Golavo’s only forward forecasting surface is men’s senior full internationals, using retained snapshots of martj42/international_results under CC0-1.0. The source refreshes within days and carries upcoming fixtures as scheduled rows, so a real fixture can be sealed before its conservative day-proxy kickoff and scored from a later snapshot.

The English Premier League, La Liga, Bundesliga, Serie A, and Ligue 1 form a historical-only club backbone from one pinned openfootball snapshot (CC0-1.0). Only completed seasons that pass the per-league coverage audit are accepted. Every league is modeled independently, so there is no cross-league strength calibration and strengths are not comparable across leagues.

The UEFA Champions League, Europa League, and Conference League are also historical-only. Their main-competition editions come from a separately pinned openfootball/champions-league commit (CC0-1.0). Qualifiers are excluded, and each competition has its own explicit coverage ceiling. These matches power browsing plus competition-local strength and rest/congestion analytics, not report cards or season simulations.

The OpenFootball club packs are season-lagged captures with no verified live cadence, so a club forward loop is not shipped. The general international source publishes dates without kickoff times, so those seals close at a conservative 00:00 UTC day-before cutoff; the pinned World Cup 2026 overlay carries exact kickoffs for its fixtures. Snapshots are immutable, retained, and registered in packs/snapshots.json. See The Prediction Ledger.

Data type Coverage Engine use
Full-international results date, teams, score, tournament, city, country, neutral flag ✅ ingest, train, evaluate, seal, score
Former team names dated former/current name intervals ✅ canonicalize historical rows
International goalscorers scorer, minute, own-goal, penalty snapshot only; not used by the forecast model
Shootouts winner and first shooter snapshot only; 1X2 regulation model does not use shootouts
Club fixtures/results (English Premier League) 15 clean seasons 2010-11 → 2024-25 (openfootball, CC0) ✅ historical backtest (not live)
Club fixtures/results (La Liga) 12 clean seasons 2012-13 → 2023-24 (openfootball, CC0) ✅ historical backtest (not live)
Club fixtures/results (Bundesliga) 15 clean seasons 2010-11 → 2024-25 (openfootball, CC0) ✅ historical backtest (not live)
Club fixtures/results (Serie A) 11 clean seasons 2013-14 → 2023-24 (openfootball, CC0) ✅ historical backtest (not live)
Club fixtures/results (Ligue 1) 10 clean seasons 2014-15 → 2024-25 (openfootball, CC0) ✅ historical backtest (not live)
UEFA Champions League results 6 complete main-competition editions 2020-21 → 2025-26 (openfootball, CC0) ✅ browse + competition-local strength/rest analytics
UEFA Europa League results 5 complete main-competition editions 2020-21 → 2024-25 (openfootball, CC0) ✅ browse + competition-local strength/rest analytics
UEFA Conference League results 4 complete main-competition editions 2021-22 → 2024-25 (openfootball, CC0) ✅ browse + competition-local strength/rest analytics
World Cup 2026 fixture overlay exact knockout kickoffs and bracket context (openfootball, CC0) ✅ seal timing + exact four-team outlook; excluded from model training
Historical event research 1,941 matches / 3,251,294 events: 2017/18 big five, Euro 2016, World Cup 2018 (Pappalardo/Wyscout, CC BY 4.0) ✅ isolated team-only summaries; never train, seal, or simulate
Conditions context city, timezone, elevation, rest, travel routes (GeoNames + Natural Earth) ✅ display only; not a model input
Historical weather forecasts no accepted issued-before-kickoff source 🚫 blocked; observed weather is not substituted
Club half-time scores recorded on many rows across EPL/Bundesliga 2010-11 → 2025-26, La Liga 2012-13 → 2025-26, Serie A 2013-14 → 2025-26, and Ligue 1 2014-15 → 2025-26 ✅ descriptive comeback/lead facts only; missing HT rows are excluded
Men’s World Cup history tournaments, standings, team appearances, and individual awards, 1930–2022 (Fjelstul, CC-BY-SA-4.0) ✅ isolated descriptive facts only; never joined to the forecast index
Lineups / minutes no accepted open source 🚫 unavailable
Injuries / suspensions no accepted open source 🚫 unavailable
Live corners / shots / cards no accepted open source 🚫 unavailable; historical research shot rates are era-scoped separately
Observed xG no accepted open source 🚫 unavailable; Golavo’s historical research xT is not xG

Transfermarkt-derived and DataHub football datasets are rejected. Their downstream CC0/PDDL labels do not cure upstream ToS and database-provenance risk. European Soccer DB, eatpizzanot, Understat, FBref, Sofascore, FotMob, and unofficial FPL endpoints are also outside the accepted source set.

The men’s top-5 European leagues are accepted for completed seasons only, from one pinned openfootball snapshot (CC0-1.0), after the per-league coverage audit. A season is clean only if it is a complete double round-robin at the league’s constitutional size with every result present. Live in-season club forecasting is not certified — openfootball’s live cadence is unverified until a season is observed updating.

League Verdict Clean seasons Excluded, and why
English Premier League ACCEPT_HISTORICAL 15 (2010-11 → 2024-25) 2025-26 partial capture (27 unfinalized [0, 0]-encoded results)
La Liga ACCEPT_HISTORICAL 12 (2012-13 → 2023-24) 2024-25 missing its final matchday (10 results); 2025-26 partial capture
Bundesliga ACCEPT_HISTORICAL 15 (2010-11 → 2024-25) 2025-26 partial capture
Serie A ACCEPT_HISTORICAL 11 (2013-14 → 2023-24) 2024-25 missing its final matchday (10 results); 2025-26 partial capture
Ligue 1 ACCEPT_HISTORICAL 10 (2014-15 → 2024-25) 2019-20 abandoned in the COVID-19 pandemic (101 fixtures unplayed); 2025-26 partial capture

Missing results are excluded, never fabricated. Ligue 1 contracted from 20 to 18 clubs in 2023-24; the audit derives each season’s expected match count from its actual team count and also checks that count against the league’s constitutional size.

Golavo retains 2,271 declared main-competition rows from the pinned European source. The parser reconciles every row against the count embedded in its season file and fails closed on unrecognized match syntax. Two cancelled 2021-22 Europa League ties remain in the hashed source bytes for auditability but are excluded from the match index, leaving 2,269 complete results.

Competition Included editions Indexed results Not included
UEFA Champions League 2020-21 → 2025-26 878 qualifiers; future schedules beyond the pin
UEFA Europa League 2020-21 → 2024-25 815 2 cancelled ties; qualifiers; 2025-26 main competition
UEFA Conference League 2021-22 → 2024-25 576 qualifiers; 2025-26 main competition

Upstream supplies venue-local clock labels without timezones. Golavo therefore indexes these rows at a day-only 00:00 UTC proxy and does not present the local clock as an exact kickoff. Complete historical editions do not certify a future fixture feed, schedule difficulty, report card, or tournament simulation. Those capabilities remain partial, planned, or blocked in the competition catalog.

Half-time coverage is row-level, not season-complete. The openfootball files carry a recorded score.ht for many matches in every packed club season, but gaps remain — especially in older history, and also in partial recent captures. The Second-half story therefore counts only matches with two valid half-time scores. It never infers a half-time result from the final score.

The same five candidate models are backtested on each league’s three most recent clean seasons as strictly chronological folds (EPL, Bundesliga, Ligue 1: 2022-23 → 2024-25; La Liga, Serie A: 2021-22 → 2023-24). Every candidate beats the climatological baseline on log loss on every fold; the best model varies by fold and no model is crowned a champion. Each league is modeled independently — there is no cross-league strength calibration.

International evaluation uses strictly chronological World Cup 2022, Euro 2024, and World Cup 2026 tournament windows. These are test folds, not promises of a live fixture service.

See Sources & licenses for the source manifest contract and rejected-source rationale.