- updater: group by report_period_id (YYYYmm), current month capped to
yesterday symmetrically for both years; per-year cumulative reset each Jan;
adsl CTE now date-bounded for equal-period comparison
- JSON adds months/month_labels + per-metric cur_cum/prev_cum
- page: per-card cumulative sparkline (2025 dashed vs 2026 solid) + legend
- new page app_stats/index.html (login-gated, same style/nav)
- app_stats/app_metrics.json data (year-over-year comparison, NEW badges)
- updater/update_app_metrics.py: adaptive SQL (Jan 1 -> yesterday vs prev year)
- run both updaters from run_update.bat; refactor shared git push