How Touchline Tips works
Short notes. Visible evidence.
Every fixture, every week
We check each round’s schedule against published fixture lists and cover every match, normally all ten. If a match has already kicked off when we publish, it is marked as having no prediction and never gets one afterwards.
The model
Version tl-poisson-v1.1 is a deliberately simple baseline: each team gets an attacking and a defensive rating, fitted to every Premier League result since August 2020, with recent games weighted more (half-life 240 days). Teams with little top-flight data are pulled towards a cautious prior. From the ratings we get expected goals for each side and the probability of every scoreline, which prices each market.
Choosing one Super Tip
We price fifteen markets. Only those where the model clearly beat a simple base rate on the 2022/23 and 2023/24 validation seasons can be chosen: match result, double chance and team goals. Among those, the Super Tip is the market whose probability sits furthest above how often that outcome happens in a typical match, as long as it reaches 55%. Confidence is Strong from 68%, Moderate from 60% and Lean from 55%, capped at Lean when one team has little recent Premier League data. Anything else is a Pass.
Locking and grading
Predictions are written to a database that refuses edits and deletions and rejects anything stamped after kickoff, using the database’s own clock. A revision before kickoff is a new version; earlier versions stay visible. Each prediction carries a SHA-256 fingerprint and the whole round is committed to a lock file.
Settled on the final score after 90 minutes plus stoppage time. Postponed, abandoned or cancelled matches are void. Final scores are entered only with a source link.
Testing without fooling ourselves
The backtest is walk-forward: to predict a match day, the model only sees results from before that day. Settings were chosen on 2022/23 and 2023/24, then checked on 2024/25 onwards. We record our changes openly: v1.1 (used live from 2026/27 Matchweek 9) requires at least 3% validation skill. This change was made AFTER seeing the v1 test results, so the 2024/25–2026/27 figures are no longer a clean holdout for v1.1. The live weekly record is the clean test.
Patterns such as kickoff time or head-to-head records are shown with their sample sizes and plausible ranges. They do not change any probability until they improve prediction quality out of sample.
What powers our forecasts
The live model is tl-poisson-v1.1. Only the families marked “Used in the active model” change a probability. Everything else is shown as context or is being tested, and says so. Challenger: tl-v2-candidate-1: keep v1.1 live (model comparison).
Team strength ratings
Used in the active modelAttack and defence ratings from every Premier League result since 2020/21, recent games weighted more (half-life 240 days). Recent form enters only through this weighting, so it is never counted twice.
Home advantage
Used in the active modelOne league-wide home advantage, estimated from the same results.
Clubs with little data
Used in the active modelRatings are pulled towards a cautious prior until a club has enough recent top-flight matches; confidence is capped at Lean.
Promoted-club and Championship priors
Candidate-model experimentSeparate starting ratings for promoted clubs, optionally informed by their Championship season. Tested in the challenger and rejected: no reliable improvement out of sample.
Low-score correction
Candidate-model experimentDixon–Coles adjustment of 0–0, 1–0, 0–1 and 1–1 probabilities. Tested in the challenger and rejected: no reliable improvement out of sample.
Fixture congestion and real rest
Context onlyDays since each club's last known competitive match and games in the last 7/14/21 days (10 fixtures in the next 8 days). Complete cup and European schedules are declared for 0 of 20 clubs involved; for the rest only league games are known, so their rest is labelled partial. Tested in the challenger and rejected: no reliable improvement out of sample.
Team news and confirmed line-ups
Not yet availableNo fresh team news for the clubs with 10 fixtures in the next 8 days. "No report" means unknown, never "everyone available". Reports need a source URL; only official sources may confirm an absence.
Weather
Not yet availableNo fresh kickoff forecast for 10 fixtures in the next 8 days. Forecasts need stadium coordinates with attribution (npm run v2:stadiums, then check each match) and an opt-in collection run.
Betting odds
Not yet availableBenchmark only. No licensed, timestamped prices for upcoming fixtures, so we report accuracy and calibration, never value or profit.
Expected goals and shot quality
Not yet availableNo lawful, documented, archived source has been connected; nothing is estimated in its place.
Kickoff time and head-to-head
Context onlyShown as low-priority patterns with sample sizes. A kickoff-slot adjustment was run as a negative control. Tested in the challenger and rejected: no reliable improvement out of sample.
Sources
Historical results: openfootball/football.json (public domain, CC0). Fixtures for each round are checked against the Premier League and broadcaster listings. Premier League results are checked by a scheduled source-reconciliation process; a final score is accepted only when two verified independent feeds agree or a reviewed manual entry cites sources. Unconfirmed results stay pending, never receive a fabricated grade.
Football-data.org is not configured as a live results source; automatic two-source verification may therefore be unavailable.