Signups — last 30 days
daily new accounts
Reviews — last 30 days
spaced-repetition answers submitted
Users by platform partial
profiles.platform, synced on app open
Users by country partial
device region, synced on app open
Net position this month
real revenue − estimated spend
Signups — last 30 days
Onboarding funnel
of total users
By country partial coverage
By platform partial coverage
Why "partial coverage"
Country/platform are set by the app the moment a user opens it (device region + OS, no geolocation). Existing accounts backfill the next time they launch. For precise IP-based geography and OS/version breakdowns, see the Real analytics tab (PostHog).
Reviews — last 30 days
Streak distribution
users by current streak length
Translations — last 30 days
every word lookup, cache hits + fresh AI calls
Cards created vs learned
7d / 30d
Retention proxies cohort estimate
no session log exists — these infer activity from created_at / last_reviewed_on, not real D7/D30 retention
| Still reviewing 1wk after signup (7–37d old cohort) | — |
| 30d+ users active in the last 7 days | — |
Subscriptions & revenue RevenueCat
Gross / net-of-taxes / proceeds — last 28d
Funnel — last 28d
new customers vs active users vs active subs
Spend calculator you fill in
No API gives real Gemini $ automatically (see Product health tab) — paste what AI Studio's Usage tab actually shows you. Everything else is whatever your real bills say. All remembered in this browser.
Spend vs revenue
No Android revenue tracked yet
RevenueCat only has one app configured — Metis (App Store), iOS. Add the Android app + key in the RevenueCat dashboard to close that gap.
Exact Google/Gemini spend instead of the per-request estimate
Needs a one-time console setup: enable BigQuery billing export on the GCP project behind your Gemini key, then a service account with read access to that dataset. Tell me the project ID + dataset name and I'll wire it into /api/metrics.
AI generation requests — last 30 days
generate-card edge function calls
Notification opt-in
of profiles with preferences set
Push tokens by platform
At plan caps
free-tier limits reached
Translation cache word_cache
Cache hit rate — last 30 days
% of lookups served from word_cache without a fresh AI call
Hits vs misses — last 30 days
Friends & challenges
Shared cards & collections
Source: PostHog HogQL real
—
Activation funnel
distinct users per step, all-time
Real country mix
IP-geolocated, users who authenticated at least once
Real platform mix
device OS at event time