Problem: ANALYTICS_READ_CACHE is off by default and only wraps /stats + /timeseries (audit: src/handlers/lib/read-cache.ts).
Scope: sensible default-on with short TTLs; extend to breakdowns, comparison, insights, error grouping.
Done when: repeated dashboard polls hit cache instead of re-aggregating.