Pipeline

Where the numbers come from, and what they have been worth so far.

{{ feed.live ? 'Live prices' : 'Simulated prices' }}

Every price on this site is generated by the built-in simulator over real fixtures. The board looks live and is not. Any edge it reports is a property of the simulator, not of a market.

Set {{ LIVE_FEED_ENV }} in your environment and the next run switches to the real feed on its own.

{{ relativeAge(feed.lastRunAt) }}
Last price run

Track record

Nothing has settled yet.

The model has priced {{ record.pendingPredictions.toLocaleString() }} {{ record.pendingPredictions === 1 ? 'event' : 'events' }} that have not finished. Until one does there is no Brier score, no CLV, and no basis for believing any edge on this site.

Independent evidence

Everything else here is derived from bookmaker prices, so it can only ever agree with them. These are the reads that can disagree.

{{ coveragePct }}%
Teams with form
{{ coverage.teamsWithStanding.toLocaleString() }} of {{ coverage.teamsTotal.toLocaleString() }}
{{ coverage.injuriesTracked.toLocaleString() }}
Teams with availability
Who is out, and how badly.
{{ coverage.clubsValued.toLocaleString() }}
Clubs valued
{{ coverage.clubsValued ? 'Squad value and tier from retained Transfermarkt DOM snapshots.' : 'Transfermarkt DOM backfill has not completed yet.' }}
{{ relativeAge(coverage.lastCapturedAt) }}
Last captured
Appended, never overwritten.

Signal scorecard

Each signal against the closing line. Beating the close is the fastest evidence that an estimate carried real information, long before a win rate says anything.

No signal has been scored yet.

A signal is scored once a market it argued about has closed. Until then every weight in the model is an assertion, including the ones that look most reasonable. {{ MIN_MEANINGFUL_SAMPLES }} scored decisions is roughly where a hit rate stops being a coin flip.

Sources

The pipeline has never run.

Start the scheduler and the first run lands within five minutes.