Skip to content

Populate TERM_CALENDAR so growth reports can tell term break from audience decline #33

Description

@lauurnce

Filed from the first real weekly growth report (VANTAGE, 2026-08-25 — evidence in gitignored docs/reports/growth/2026-08-25.md, figures deliberately not reproduced here).

What
lib/reports/academicCalendar.ts:39 defines TERM_CALENDAR as an empty array. The collector's termPhase therefore reports {"phase":"unknown"} — no seasonal explanation is ever available for weekly-active movement.

Why it matters
Weekly-active devices fell in six of seven week-over-week transitions across the eight complete PH weeks on record. With TERM_CALENDAR empty, a term break and a real audience decline are indistinguishable — and those need opposite responses. Every funnel metric is a share of this base; the report recommends populating the calendar BEFORE committing to any acquisition push.

Fix shape (from report)
Option B (minimal): populate TERM_CALENDAR with real term dates for the universities represented in profiles.university. One sitting, no code risk. Next week's report can then classify the decline.

Option C (only after B): treat as acquisition problem — tag shared links (currently 0 UTMs seen) and run distribution. Days of work; do not start against an unclassified curve.

Recommendation: B now, decide C next week.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageMaintainer needs to evaluate the issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions