Stories · Pool Health

d

Pool Health

Spec §5.5 — runway snapshot across the three pool flavors. Numbers refresh on every page load (no snapshot table).
Last refreshed
2026-05-14 01:20:22 IST
What is this page?
Pool runway = how many days of content you have queued up. Below the threshold, refill the pool by authoring more drops or running a bulk import.
Thresholds (from internal/stories/config.go): evergreen ≥ 60 days · monthly ≥ 15 days · current affairs ≥ 3 days.
Cadence assumes 1 publish per IST day per surface (spec §3). The 06:00 IST cron emits the same numbers via slog (search stories.pool_health).
Evergreen pool
Drops
refill soon
0
in pool
0 day runway at 1/day
⚠ refill soon (< 60d)
Evergreen pool
Articles
refill soon
0
in pool
0 day runway at 1/day
⚠ refill soon (< 60d)
Monthly pool
Drops
refill soon
0
in pool
0 day runway at 1/day
⚠ refill soon (< 15d)
Monthly pool
Articles
refill soon
0
in pool
0 day runway at 1/day
⚠ refill soon (< 15d)
Current Affairs pool
Drops
refill soon
0
in pool
0 day runway at 1/day
⚠ refill soon (< 3d)
Current Affairs pool
Articles
refill soon
0
in pool
0 day runway at 1/day
⚠ refill soon (< 3d)
How runway is computed: count of rows with status='pool' for each (surface, flavor) tuple. The daily cron emits the same numbers via slog (search stories.pool_health in the log stream).
Why no snapshot: architect decision A2 — counts are cheap (WHERE status='pool' GROUP BY pool_flavor hits idx_drops_pool + idx_articles_pool); a snapshot table would double-bookkeep without value.