BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Football prediction with AI
翻訳待ち
Loading the full README.
Read the full README ↗Football prediction dashboard in the spirit of BetMines: probabilities for every goals-based market across 38 leagues, a screener, value bets, a matchup predictor, and a public track record that compares the model with the bookmakers.
pipeline/ Python: data ingest, Dixon-Coles model, backtest, JSON export
web/ Next.js app that renders the exported JSON as static pages
data/ Prediction ledger + backtest (committed, so the track record is auditable)
data/ledger.csv before kick-off and
are settled when results arrive. backtest replays the season week by week,
using only data that existed at the time. /lookback shows every prediction from the
past seven days next to its result, with ESPN final scores filling in until
football-data publishes.# pipeline
cd pipeline
python -m venv .venv && .venv/Scripts/activate # or source .venv/bin/activate
pip install -r requirements.txt
python -m pytest -q
python -m footballseer backtest --start 2025-08-01 # one-off, ~10-20 min on first download
python -m footballseer run # daily
# web
cd web
npm install
npm run dev
The same product for basketball lives under /basketball (sport switch at the top of the sidebar),
with every football page mirrored: games, live scores, lookback, value bets, daily bets, previews,
favourites, filters, generator, scanner, trends, team and league stats, predictor, leagues and track record.
pipeline/footballseer/basketball/model.py): weighted ridge regression on each side's
points (offence, defence, home advantage, neutral sites, time decay). Margin and total are normal
around the expected values, with spreads measured from residuals; overtime resolves level scores.
Decay and shrinkage are tuned per league (NCAA's sparse schedule needs much less shrinkage).data/basketball/ledger.csv.python -m footballseer basketball backtest # one-off, ~3 min on first download (NCAA is ~450 scoreboard days)
python -m footballseer basketball run # daily, writes web/public/data/basketball/
Live basketball comes from /api/basketball/live (ESPN and EuroLeague feeds, same caching as football).
web.
Every page is static, so it serves from the CDN. The one exception is live scores: /api/live and
/api/live/[league]/[event] are serverless functions that proxy ESPN with 15–20 s caching, so
however many browsers poll, upstream sees a few requests a minute..github/workflows/predict.yml runs twice a day on GitHub Actions,
commits the refreshed JSON, and the push triggers a redeploy.