Silver Reyes
On view: 11, 8 live
EX-003.4 Back end: Soccer All exhibits The prediction back ends
Opened 2026-04-01 Live

SoccerPredictionAPI

Six European leagues. It ingests fixtures, expected-goals and odds data, builds rating and form features, and runs a gradient-boosted match-winner model nightly in a scheduler container. Its probabilities feed sharps.gg/soccer. Every scheduled run writes an audit row; a watchdog, plain-language alerts and an external dead-man check cover silent failure. Live since 2026.

predicted observed ideal
Figure: a calibration plot; the public ledger shows the hit rate matching the stated probability. Points illustrative; the figures are on sharps.gg.
Status Live since 2026
RoleDesign, architecture, testing and operation; built with AI coding agents.
StackPython, PostgreSQL, CatBoost, Docker
LeaguesSix European leagues
Boardsharps.gg/soccer

The decision

Problem, decision, measured result

Problem

Probabilities every night for six leagues, flowing unattended to a live site.

The site reads the prediction table directly, so a pipeline that fails silently is a user-facing outage nobody notices.

Decision

One scheduler container whose every run leaves a row, with three layers watching for silence.

Fixtures, expected-goals and odds data are ingested nightly; rating and form features feed a gradient-boosted match-winner model. Every scheduled run writes an audit row; a watchdog reads the rows, alerts are written in plain language, and an external dead-man check fires if the scheduler itself goes quiet.

Result

15,728 picks graded in public at a 52.8% hit rate, matching the 52.8% average stated probability.

Lifetime, as of 2026-10-25, on sharps.gg. Trailing 30 days as read on 2026-10-29: 54.8% on 188 picks.

Evidence

Each number with its source
  • Picks graded, lifetime 15,728 Source: sharps.gg/api/results?sport=soccer&range=lifetime, as of 2026-10-25, read 2026-10-29.
  • Hit rate, lifetime 52.8% Source: the same route; the average stated probability is also 52.8%.
  • Trailing 30 days 54.8% on 188 picks Source: sharps.gg/api/performance, read 2026-10-29.
  • Leagues Six European leagues Source: sharps.gg/soccer.
  • Operation Every scheduled run writes an audit row; a watchdog, plain-language alerts and an external dead-man check Source: project record.
  • Opened 2026-04-01 Source: project record.
  • Live Since 2026 Source: sharps.gg/soccer.

Stack and links

Everything that runs it, as stickers
PythonPostgreSQLCatBoostDocker
EX-004

chalkbook

Live