System Status
ATTENTION NEEDED
| Domain | Status | Last attempt | Last success | Last error |
|---|---|---|---|---|
| SCHEDULE | HEALTHY | 12h ago | 12h ago | — |
| STARTERS | HEALTHY | 12h ago | 12h ago | — |
| ODDS | DEGRADED | 4m ago | 4m ago | — |
| LINEUPS | HEALTHY | 4m ago | 4m ago | — |
| BULLPENS | DEGRADED | 19m ago | 18m ago | — |
| ENVIRONMENT | HEALTHY | 4m ago | 4m ago | — |
| GRADING | HEALTHY | 14h ago | 14h ago | — |
| QUICK_ANALYSIS | DEGRADED coverage 12/12 games on 2026-09-24 | 1h ago | 1h ago | — |
| MARKETS | HEALTHY | 1m ago | 1m ago | — |
| CFB_MODEL | HEALTHY | 24m ago | 23m ago | — |
| SPLITS | HEALTHY | 4m ago | 4m ago | — |
| GAME_CONTEXT | HEALTHY | 39m ago | 39m ago | — |
| EXCHANGES | HEALTHY | 9m ago | 9m ago | — |
| MODELS | HEALTHY | 13d ago | 13d ago | — |
| NARRATIVE | HEALTHY | never | never | — |
Job kill watch — last 24h
A run that is still "running" long after it started was killed by the platform at its time limit — it never wrote an error. Grading was dead for two days this way (2026-09-10/11). "Slowest finished" is how close completing runs come to the route's budget (60 seconds, except Quick Analysis and the opportunities cache at 120); anything approaching it is the next one to be killed.
| Job | Runs | Killed | Last killed | Slowest finished | Avg finished |
|---|---|---|---|---|---|
| quick_analysis_refresh | 92 | 2 | 2h ago | 115.4s | 73.6s |
| opportunities_cache_refresh | 101 | 0 | never | 48.5s | 25.6s |
| relief_appearance_refresh | 12 | 0 | never | 46.7s | 22.2s |
| opportunity_snapshot | 46 | 0 | never | 39.9s | 27.9s |
| hr_radar_cache_refresh | 105 | 0 | never | 38.6s | 13.8s |
| game_officials_refresh | 96 | 0 | never | 36.5s | 2.0s |
| cfb_refresh | 2 | 0 | never | 34.6s | 32.4s |
| game_status_refresh | 718 | 0 | never | 33.7s | 2.2s |
| grading | 3 | 0 | never | 31.3s | 23.7s |
| postgame_data_refresh | 12 | 0 | never | 29.8s | 6.9s |
| weather_refresh | 24 | 0 | never | 15.1s | 3.4s |
| odds_refresh_event | 24 | 0 | never | 12.2s | 7.3s |
| exchange_odds_refresh | 6 | 0 | never | 4.4s | 3.8s |
| market_odds_refresh | 48 | 0 | never | 4.3s | 3.4s |
| lineup_refresh | 96 | 0 | never | 3.3s | 1.1s |
| odds_refresh_featured | 48 | 0 | never | 2.6s | 1.5s |
| game_context_refresh | 2 | 0 | never | 2.6s | 2.0s |
| slate_ingestion | 1 | 0 | never | 1.1s | 1.1s |
| splits_refresh | 12 | 0 | never | 0.3s | 0.2s |
| market_settlement | 24 | 0 | never | 0.3s | 0.2s |
| live_scores_refresh | 3 | 0 | never | 0.2s | 0.2s |
Admin session
Manual refresh buttons elsewhere in the app require this once ADMIN_PASSWORD or CRON_SECRET is configured on the server.