-- Index for the Analysis trend-chart series, which buckets terminal page -- analyses by `analyzed_at` (date_trunc) over a recent window. Without it the -- bucketed GROUP BY falls back to a full scan of page_analysis (one row per -- page in the library). Partial to the rows the series query actually reads -- (terminal status with a timestamp), keeping the index small. CREATE INDEX IF NOT EXISTS page_analysis_analyzed_at_idx ON page_analysis (analyzed_at) WHERE status <> 'pending' AND analyzed_at IS NOT NULL;