Run the pipeline

Build today's slate (2026-06-05 ET) without curl.

Tips — how this works
  • Order: ① Run slate → ② Fill Statcast (click until remaining: 0) → ③ View slate / prompt / analysis.
  • Run slate pulls everything except Statcast — schedule, pitcher stats (incl. real xERA), lineups, weather, bullpens, odds. ~30–90s; the summary turns amber if pitcher detail or lineups came back empty.
  • Fill Statcast is separate because it's the slow Baseball-Savant pull. It grabs ≤30 batters per click (politeness), so click again until remaining: 0. Run it after the slate.
  • Freshness: L7 metrics go stale after 6h. The meter below counts down; within that window, re-running just re-writes from cache (no new pulls).
  • Empty fill? If Statcast says it fetched nothing, the slate hasn't been run for today yet (or lineups aren't posted) — run the slate first.
  • Late in the day, games may already be started/final; the digest banner flags that. Run earlier for a live overs slate.
  • Odds (O/U, implied totals, both-under-4) stay until an ODDS_API_KEY is set.

1 · Run the slate

Schedule, probable-pitcher stats, lineups, weather, bullpens, odds for today (2026-06-05). Takes ~30–90s — leave the tab open.

2 · Fill Statcast (L7 / BvP)

One batch per click (bounded for Savant politeness). Click again until remaining: 0.

Reset:

3 · Refresh lineups & odds

Manual versions of the cron loops, for today. Lineups (schedule status + lineups + weather) is free; odds spends Odds API quota (1 request + props if enabled).

Statcast freshness

L7 data is re-pulled once it crosses the TTL. Within the window, re-running is a cheap no-op.

Statcast today (2026-06-05)never filled · run “Statcast today (2026-06-05)” above

Scheduled tasks — last fired

Each cron records its last run here. 🟢 ok · 🟡 stale/late · 🔴 errored · ⚪ never fired. The manual buttons above do NOT update these — only the Coolify crons do.

  • run-slate· 9 games · 18 SP · 162 bats · odds 2
  • refresh-statcast· fetched 3 · remaining 0 · 162 slots
  • refresh-lineups· 9 games · 162 bats · 18 confirmed sides
  • refresh-oddsnever fired