Objective
Support the Earlybird/Community rollout by instrumenting Thunderbird Pro services with privacy-respecting usage metrics, so we can answer one question per service: are people actually using it? Success is a single PostHog dashboard that gives a daily bird's-eye view of Pro health across all services.
🟢 In Scope
- Aggregate daily snapshot metrics (subscription counts, waitlist, mail provisioning)
- Per-user activity signals (boolean flags and byte counts only — no message content, filenames, or calendar details)
- PostHog event emission following existing
telemetry.capture() patterns
- Instrumentation changes in Appointment and Send services
- Dashboard configuration in PostHog with escalation alerts
🔴 Out of Scope
- Reading or indexing email/file/calendar content
- Building custom analytics UI inside the accounts app
Technical and/or Business Requirements
- All
distinct_id values must be SHA-256 hashed; no raw UUIDs or emails reach PostHog
- All collection gated behind
POSTHOG_API_KEY — zero events without it
- Test accounts excluded from all counts
Proposed Metrics
Pro General
| Metric |
Source |
Cadence |
| Total active (paying) subscribers |
Subscription model, status=active |
Daily |
| Remaining waitlist users |
AllowListEntry where user is null |
Daily |
| Waitlist conversion rate |
Converted / total AllowListEntry |
Daily |
Thundermail
| Metric |
Source |
Cadence |
| Quota usage per user (bytes + %) |
Stalwart API usedQuota |
Daily |
| Users at storage extremes (<1%, >90%) |
Derived from quota data |
Daily |
| Active mail accounts provisioned |
Account model, active=True |
Daily |
| Email sending activity |
Stalwart metrics/logs |
Daily |
| Email reading activity |
Stalwart JMAP/IMAP session data |
Daily |
| Connected device / sync count |
Stalwart active sessions |
Daily |
Appointment
| Metric |
Source |
Cadence |
| Weekly active users (page views) |
Appointment service |
Per-event |
| % of users with availability configured |
Appointment service |
Daily |
| Bookings created by clients |
Appointment service |
Per-event |
| % of users receiving bookings |
Appointment service |
Weekly |
Send
| Metric |
Source |
Cadence |
| MAU / WAU |
Send service |
Per-event |
| Median storage usage |
Send service |
Daily |
| Users at storage extremes |
Send service |
Daily |
| File downloads by recipients |
Send service |
Per-event |
| Files reported (abuse) |
Send service |
Per-event |
Accounts
| Metric |
Source |
Cadence |
| Dashboard WAU |
accounts.login events (already tracked) |
Derived |
| Login frequency |
accounts.login events (already tracked) |
Derived |
| Login errors |
accounts.login_error events (already tracked) |
Derived |
Objective
Support the Earlybird/Community rollout by instrumenting Thunderbird Pro services with privacy-respecting usage metrics, so we can answer one question per service: are people actually using it? Success is a single PostHog dashboard that gives a daily bird's-eye view of Pro health across all services.
🟢 In Scope
telemetry.capture()patterns🔴 Out of Scope
Technical and/or Business Requirements
distinct_idvalues must be SHA-256 hashed; no raw UUIDs or emails reach PostHogPOSTHOG_API_KEY— zero events without itProposed Metrics
Pro General
Subscriptionmodel,status=activeAllowListEntrywhereuseris nullAllowListEntryThundermail
usedQuotaAccountmodel,active=TrueAppointment
Send
Accounts
accounts.loginevents (already tracked)accounts.loginevents (already tracked)accounts.login_errorevents (already tracked)