Updated: 2026-04-03
| Database | Path | Purpose |
|---|---|---|
| research-pipeline.db | /home/ubuntu/edgeclaw/data/db/research-pipeline.db |
Odds, edges, SBR, pregame, xG, team stats |
| soccer-metrics.db | /home/ubuntu/edgeclaw/data/db/soccer-metrics.db |
Elo ratings, form, H2H, enriched results |
| Table | DB | Rows | Schedule | Description |
|---|---|---|---|---|
| sports_edges (soccer) | research-pipeline | 316 | 4x daily | Edge scanner output — totals (189), ml (60), spread (43), btts (24) |
| sports_edge_summary (soccer) | research-pipeline | — | 4x daily | Aggregated edge summary per scan cycle |
| market_implied_curves (soccer) | research-pipeline | 3,612 | With scanner | Kalshi alt-line implied probability curves |
| Table | DB | Rows | Schedule | Description |
|---|---|---|---|---|
| kalshi_soccer_prices | research-pipeline | 8,058,845 | Every 30 min | Kalshi soccer market prices — 1X2, spreads, totals, BTTS |
| pinnacle_soccer_odds | research-pipeline | 15,594 | Adaptive | Pinnacle sharp odds — 1X2, AH, O/U |
| sbr_book_odds (soccer) | research-pipeline | 1,155+ | 4x daily | SBR multi-book — EPL + UCL moneylines (soccer only has 3-way ML on SBR) |
| soccer_odds_snapshots | research-pipeline | 4,019,290 | Continuous | Full odds history across all books |
| sports_odds_snapshots (soccer) | research-pipeline | 3,134,547 | Continuous | Shared schema — Kalshi (3.1M) + Pinnacle (12.9K) |
| Table | DB | Rows | Schedule | Description |
|---|---|---|---|---|
| soccer_team_stats | research-pipeline | 198 | Daily 11AM | W/D/L, GF/GA, xG, xGA, clean sheet rate, BTTS rate — 8 leagues |
| soccer_xg | research-pipeline | 1,384 | Daily 11AM | Understat match-level xG for Big 5 leagues |
| club_elo_ratings | research-pipeline | 1,687 | Daily 11AM | ClubElo power ratings — all European clubs |
| football_data_results | research-pipeline | 5,311 | Weekly | Match results + Pinnacle closing odds + referee + match stats (18 leagues) |
| Table | DB | Rows | Schedule | Description |
|---|---|---|---|---|
| soccer_results | soccer-metrics | 5,311 | Daily (after results) | Enriched results with xG overlay + referee + cards |
| soccer_elo | soccer-metrics | 342 | Daily (after results) | Current Elo per team (K=32, home advantage=65) |
| soccer_elo_history | soccer-metrics | 10,622 | Daily (after results) | Match-by-match Elo progression with goal diff multiplier |
| soccer_form | soccer-metrics | 342 | Daily (after results) | Rolling L5/L10 form, goals scored/conceded, clean sheets, BTTS |
| soccer_h2h | soccer-metrics | 3,166 | Daily (after results) | H2H records — total matches, wins, draws, goals, last meeting |
| soccer_league_params | soccer-metrics | 20 | Config-based | Per-league avg goals, home advantage, draw rate, BTTS rate, Dixon-Coles rho |
| File | Function | Status |
|---|---|---|
| scrape-soccer-team-stats.ts | Understat + ESPN + Sporting Life team stats | Running daily |
| scrape-understat.ts (shared) | Understat match xG for Big 5 | Running daily |
| scrape-clubelo.ts | ClubElo ratings for all European clubs | Running daily |
| scrape-football-data.ts | Football-Data.co.uk CSV results + Pinnacle closing | Running weekly |
| compute-soccer-metrics.ts | Elo, form, H2H computation from football_data_results | Running daily |
| soccer-calcs.ts | Dixon-Coles, Shin 3-way, schedule density, finishing persistence | Built (used by scanner) |
| Parameter | Value | Source |
|---|---|---|
| Dixon-Coles rho (EPL) | -0.13 | config.ts SOCCER_LEAGUES |
| Dixon-Coles rho (Bundesliga) | -0.10 | config.ts SOCCER_LEAGUES |
| Elo K-factor | 32 | compute-soccer-metrics.ts |
| Elo home advantage | 65 points | compute-soccer-metrics.ts |
| Elo default rating | 1500 | compute-soccer-metrics.ts |
| Goal diff multiplier | 1.0 (<=1), 1.5 (2), 1.75+ (3+) | compute-soccer-metrics.ts |
| Min net edge | 4 cents | edge-scanner config |
| Kalshi fee rate | 7% | edge-scanner config |
| Kelly fraction | 0.25 | position sizing |