The strongest pattern is that users who come back are the ones using astrology that changes with time: the Moon, forecasts, today's transits, and their own chart read against them. They come back within the first two or three days. At the same level of early use, users who stayed had used these timing features far more. Users who left had spent their visits on readings that don't change, such as a full Matrix reading, a tarot spread or a generated report. Some of them may simply have got the answer they came for.
This is an association, not a demonstrated cause. The data can't yet show whether a new user who opens the Moon screen on day 0 comes back on day 1. That is the measurement gap to close (backlog #4).
Saving a second chart and exploring many sections both look like activation, but neither holds up as a lever once you control for how active someone already was. Most users who disappear do so abruptly and early: 78% of installs are not back the next day.
Ranked by how much of the user base each one touches and how strong the evidence is. Every percentage here is an association. None is shown to be causal.
| Stage | Android | iOS | Reading |
|---|---|---|---|
| Weekly installs (first open) | ~1,700 | ~1,650 | ~450 a day in total; 12,630 first opens in the last 28 days |
| Day 1 active | 18–23% | 24–32% | The largest single loss |
| Day 7 active | 7–10% | 9.5–22% | |
| Day 30 active | 4–6% | 5–15% | Mature cohorts only (27 Jul – 7 Sep) |
| Day 60 active | 2.6–3.7% | 3.7–7.7% | 27 Jul – 10 Aug cohorts |
| Active in week 1 / 2 / 4 / 8 | 26 / 19 / 15 / 10.5% | 38.5 / 31 / 23 / 16% | Pooled; complete weeks only (n₀ 5,400–17,800) |
The 7 Sep iOS cohort was unusually strong (D7 21.6%) across the US, UK and Canada. I could not find the cause in GA4; it isn't a source or country change.
| Measure | Value | Note |
|---|---|---|
| Daily / weekly / 28-day active users | ~12,100 / 39,200 / 81,500 | GA4 on 18 Oct. 28-day actives were 87,300 on 20 Aug, a gradual decline |
| Days active per monthly user | ~4 of 28 | DAU ÷ MAU ≈ 15%. The typical user is an occasional checker, not a daily one |
| Content views per active tracked account in the window | median 10 (p25 3, p75 33, p90 94) | ~23-day window |
Rows are lifetime content views at 24 Sep. Columns are what each account did in the next ~23 days. "Visitor" means opened the app but read no content. Counts first, row % after.
| Lifetime stage | Accounts | Dormant | Visitor | Light 1–4 | Regular 5–19 | Heavy 20+ |
|---|---|---|---|---|---|---|
| 0 views | 24,272 | 18,661 · 76.9% | 1,885 · 7.8% | 1,460 · 6.0% | 1,510 · 6.2% | 756 · 3.1% |
| 1–4 | 30,711 | 21,514 · 70.1% | 1,669 · 5.4% | 2,970 · 9.7% | 3,041 · 9.9% | 1,517 · 4.9% |
| 5–19 | 37,964 | 21,348 · 56.2% | 1,770 · 4.7% | 4,145 · 10.9% | 6,096 · 16.1% | 4,605 · 12.1% |
| 20–59 | 21,073 | 7,983 · 37.9% | 839 · 4.0% | 2,122 · 10.1% | 4,016 · 19.1% | 6,113 · 29.0% |
| 60+ | 10,176 | 1,730 · 17.0% | 226 · 2.2% | 633 · 6.2% | 1,444 · 14.2% | 6,143 · 60.4% |
| All | 124,196 | 71,236 · 57.4% | 6,389 · 5.1% | 11,330 · 9.1% | 16,107 · 13.0% | 19,134 · 15.4% |
| Same, by account age | Accounts | Dormant | Regular + Heavy | At 5–19 views: active |
|---|---|---|---|---|
| New (created 1 Aug – 23 Sep) | 24,276 | 70.9% | 19.1% | 27.5% |
| Mid (23 May – Jul, the Flutter switch-over) | 29,173 | 77.2% | 14.6% | 21.6% |
| Established (before 23 May) | 70,672 | 44.5% | 37.3% | 61.3% |
Established accounts still on the current app are survivors: they have already come back across the migration. So the gap partly reflects who is left, not only how the product treats them. Reactivation counts are under Dormancy & reactivation.
"Repeat" is the share of window users who used the feature 3 or more times in the ~23 days. "Same-depth association" compares new accounts (created 1 Aug – 23 Sep) that had used the feature with those that hadn't, within the same lifetime-depth band. It is shown as active-again % for users vs non-users at 5–19 and 20–59 views. Features marked † were only instrumented on 30 Aug or launched on 11 Sep, so their comparison still favours recently active users and is not a clean read.
| Feature | Ever used (tracked) | Used in window (of active) | Repeat ≥3 | Same-depth: 5–19 | 20–59 | Observed friction |
|---|---|---|---|---|---|---|
| Moon | 15.0% | 24.7% | 38.6% | 47 vs 25 | 64 vs 42 | Lunar notifications route here |
| Forecast calendars | 13.6% | 21.6% | 43.4% | 41 vs 26 | 60 vs 45 | Reached from a home tile or "see all"; ISSUE-387: ingress alerts fire ~6 h early |
| Transit / current-planets chart † | 8.3% | 24.3% | 46.2% | 50 vs 26 | 67 vs 44 | |
| Daily screen | 46.0% | 43.7% | 57.6% | 26 vs 30 | 49 vs 43 | What Matters Now unreleased (11.1.8); per the code, even the pending daily ranking keeps the same lead insight for weeks |
| Interpretation reads | 56.7% | 67.9% | 74.1% | 28 vs 24 | 48 vs 43 | Content view limit from session 4 |
| Chart switcher | 35.4% | 31.7% | 55.5% | 35 vs 25 | 56 vs 44 | |
| Birth chart view † | 21.5% | 52.0% | 61.6% | 40 vs 23 | 60 vs 40 | |
| Solar / lunar return, progressed, draconic † | 2–3% | 2–4% each | 28–44% | 35 vs 27 | 68 vs 47 | Two taps (Explore all) or chart dropdown |
| Synastry / composite chart † | 4.5% | 11–13% | 34–40% | 40 vs 27 | 61 vs 46 | ISSUE-743: black screen after adding a person |
| Astrocartography / relocation † | 1.3% | 8.1% | 30.0% | – | 72 vs 47 | ISSUE-374 (empty map counted as success), ISSUE-631 |
| Journal prompts tab † | 2.7% | 17.3% | 35.3% | 35 vs 27 | 61 vs 46 | English-only (fallback fix 462e2bd5); 80% of text is the transit list (UX-15) |
| Relationship Matrix | 20.4% | 15.7% | 55.2% | 26 vs 28 | 47 vs 48 | 72% of 2+-chart accounts never open it (modes doc §1.11) |
| Add person | 13.1% | 8.3% | 34.1% | 27 vs 28 | 46 vs 48 | Registration needed; more than 5 profiles needs a subscription |
| Tarot | 14.7% | 15.3% | 71.1% | 22 vs 29 | 46 vs 49 | ISSUE-511, ISSUE-611 (same cards repeat), ISSUE-730 (spread rotation never ran); traits English-only |
| AI reports screen | 8.4% | 9.2% | 58.6% | 21 vs 28 | 44 vs 49 | 5 free; English-only (FEATURE-37) |
| Journal | 28.0% | 19.3% | 36.5% | 21 vs 33 | 44 vs 53 | |
| Matrix / Facets | 58.7% | 50.6% | 56.9% | 25 vs 42 | 47 vs 57 | Counter mixes natal and transit categories (the query string is dropped) |
| Harmonizer | 2.4% | 3.0% | 9.5% | – | – | Very low repeat use |
Unavailable vs ignored. What Matters Now, Important Birth Aspects and Friends-in-search are in 11.1.8, which has not been released, so they are unavailable, not ignored. Every listed feature is reachable from Home in 1–2 taps in 11.1.7, and none is hard-paywalled.
The brief's five modes are mapped from screen use as follows. Self: birth chart, Matrix/Facets. Timing: daily, transit chart, Moon, forecasts, returns. Relationships: relationship Matrix, synastry, composite, harmonizer. Tarot/Reflection: tarot, journal. Growth: progressed, draconic, astrocartography, reports. "Newcomer" means fewer than 5 content views. This is not the same taxonomy as five-user-modes.md, which treats Relationship as a cross-cutting state rather than a mode. Both are shown where they disagree.
Rows are the dominant mode over the lifetime at 24 Sep. Columns are the dominant mode in the next ~23 days. "Light" means active with fewer than 5 content views.
| From \ to | n | Self | Timing | Relat. | Tarot | Growth | Light | Dormant |
|---|---|---|---|---|---|---|---|---|
| Newcomer | 64,965 | 7.3 | 3.1 | 0.6 | 0.9 | 0.3 | 15.1 | 69.6 |
| Self | 29,514 | 27.4 | 8.2 | 1.3 | 1.7 | 0.8 | 13.6 | 42.4 |
| Timing | 16,564 | 12.7 | 24.0 | 1.2 | 2.2 | 0.8 | 14.8 | 37.4 |
| Relationship | 4,122 | 13.4 | 7.7 | 9.1 | 2.2 | 1.4 | 11.7 | 50.7 |
| Tarot | 8,275 | 7.7 | 4.7 | 1.0 | 10.7 | 0.8 | 10.5 | 60.2 |
| Growth | 756 | 20.6 | 13.0 | 1.9 | 3.8 | 12.6 | 10.1 | 32.5 |
| Dormant share by starting mode | New (Aug–Sep 23) | Mid (May–Jul) | Established |
|---|---|---|---|
| Newcomer | 81.2% | 86.2% | 59.2% |
| Self | 60.8% | 66.7% | 25.3% |
| Timing | 52.5% | 57.9% | 27.2% |
| Relationship | 64.0% | 74.3% | 35.0% |
| Tarot | 70.5% | 79.0% | 37.6% |
| Growth | 51.8% (n=282) | 34.4% (n=64) | 19.0% |
Among accounts whose dominant mode changed (with 5+ views in the window):
Self and Timing get added to. The other three are dropped about half the time.
Among accounts active in the window, users of Relationship, Tarot and Growth almost all also used Self (90–96%) and Timing (90–92%). Self and Timing are the core; the other three are add-ons to it, not separate paths. Of active non-users, 53% tried Self in the window and 46% tried Timing, against 13–18% for each of the other three.
New accounts with 5–19 lifetime views at 24 Sep. Left: active with 5+ views in the window (n = 1,464). Right: dormant (n = 6,080).
| Had used, by 24 Sep | Stayed | Went dormant |
|---|---|---|
| Moon | 16.1% | 7.1% |
| Forecast calendars | 10.6% | 6.0% |
| Saved a piece of content | 9.2% | 4.7% |
| Chart switcher | 30.8% | 20.3% |
| Matrix | 44.6% | 64.9% |
| Journal | 30.5% | 47.6% |
| Tarot | 16.7% | 23.6% |
The typical retained path: birth chart → interpretations → the daily screen → Moon or forecasts → back within a few days to check what changed, sometimes switching to a second chart. The typical disappearing path: birth chart → a long Matrix reading, a tarot spread or a generated report in the first session(s) → no further visits. That may mean no timing hook, or simply that their question was answered. The counters store totals, not order, so these paths come from comparing who used what, not from per-user sequences. See measurement gaps.
| Segment (lifetime use at 24 Sep) | Accounts | Dormant in window | Share of all dormant | Realistic reconnection |
|---|---|---|---|---|
| Registered, never opened content | 24,272 | 76.9% | 26.2% | A single "your Moon this week" or today's transit, not another reading |
| Tried the birth chart / self only (<5 views) | 10,575 | 73.8% | 10.9% | Timing hook tied to their chart: "a transit to your Sun this week" |
| Other light use (<5 views) | 16,221 | 65.4% | 14.9% | Same |
| Mixed mid use (5–59) | 41,774 | 48.4% | 28.4% | Forecasts / calendar; what changed since they left |
| Relationship-focused (≥40% of use) | 8,507 | 67.5% | 8.1% | Relationship transits ("this week between you and X") |
| Tarot / reflection-focused | 6,979 | 66.5% | 6.5% | Fixing repeated cards and spread rotation first (ISSUE-611, ISSUE-730) |
| Timing users with repeat use (20–59) | 5,692 | 32.0% | 2.6% | Daily panel that actually changes (11.1.8+) |
| Former heavy users (60+) | 10,176 | 17.0% | 2.4% | Personal outreach; the Discord invite returned 5.35% (OUTREACH.md) |
Ordered as agreed in the 19 Oct review. bug = confirmed defect, opportunity = measured gap or built-but-unshipped work, experiment = mechanism not yet tested, so ship it only behind a holdout. Existing issues are cited so nothing is duplicated.
| # | Action | Type | Users affected | Evidence | Complexity | Behaviour that should change → how to measure |
|---|---|---|---|---|---|---|
| 1 | Release 11.1.8 (What Matters Now, Important Birth Aspects) after normal release checks and per-platform status verification. Do not hold it for #2. | opportunity | All ~81k MAU; the daily screen reaches 44% of active users | Strong association (finding 3) | Low: already built | More users open Daily on several separate days → GA4 daily_card_tap users; D7/W4 for post-release vs 11.1.7 install cohorts (a before/after, so confounded by season and sky) |
| 2 | Ship a Daily ranking that genuinely changes. The pending version keeps the same lead insight for weeks, so it needs an acceptance rule: the lead item changes when something in the user's sky actually begins, peaks or ends, and is never just rotated to look new. | opportunity | Same | Code reading of the pending ranking; finding 10 | Medium | Users see a materially new lead item on days when their sky changes → share of days with a new lead item per user (logged), and Daily return frequency |
| 3 | Fix notification delivery and routing: missing tokens, background crash, early ingress alerts, lost cold-start taps, taps opening the wrong notification | bug | 48,511 opted-in accounts with no token; every notification tap | Confirmed in the register and the code | Medium | Opted-in users receive alerts and land on the right screen → notification-open users, notification-started sessions; the ISSUE-171 count falls toward 0 |
| 4 | Close the measurement gap, alongside 1–3 rather than after them. (a) Record per account, per day, which screens were used, by diffing the screen counters the app already sends on every sync. This is a server-side change with no app release. (b) Register the ISSUE-621 GA4 dimensions once Admin API access exists. (c) Read setup-step drop-off from Grafana once access exists. | opportunity | ~138k instrumented accounts | Confirmed gap | (a) low–medium; (b, c) low once access is granted | Makes "opened Moon on day 0 → returned on day 1" measurable per account; per-account D1/D3/D7 joinable to first-session features |
| 5 | Experiment: give each new user a personalised reason to return tomorrow ("tomorrow the Moon enters your 7th house", "your Venus transit peaks Thursday") plus at most one well-timed next-morning alert | experiment | ~3,200 installs a week; 78% don't return on day 1 | Correlational (findings 1, 3, 7) | Medium | Day-1 return rises → randomised by install with a holdout: D1, D3, W1 by arm, read with #4(a) |
| 6 | Fix tarot repetition and run spread rotation | bug | ~15% of tracked accounts use tarot; 8,275 are tarot-dominant | Confirmed defects (ISSUE-511, ISSUE-611, ISSUE-730) | Low–medium | Tarot users repeat across weeks → tarot repeat rate, tarot-dominant dormancy in the next snapshot pair |
| 7 | Localise recurring content first: Daily panel, prompts, tarot traits, AI reports | opportunity | ~20% of installs are non-English | Large gap: D7 2.4–8.4% vs 12.5% English. Country also differs, so not all of it is language | Medium–high (FEATURE-45/50/37) | Non-English D7 moves toward English → GA4 cohort D7 by language, before vs after |
| Issue | Effect on this audit |
|---|---|
| No account id in GA4 (user id unset; the API cannot return it) | Install retention cannot be joined to features, charts or modes. All per-account work uses the tracked app base instead. |
| Per-screen counters are lifetime totals, with snapshots only on 24 Sep and 13–17 Oct | Only one activity window (~23 days, not calendar October) can be measured. Sequences and first-session actions are invisible. |
The sessions counter on each chart row is inflated ~20× (median 4.9 "sessions"/day vs ~0.23 in GA4) | Unusable for visit frequency or days between visits. Probably the same add-on-sync pattern as ISSUE-360. |
| ISSUE-360 counter doubling; ISSUE-433 implausible counters | 0.9% of accounts doubled exactly and 0.6% jumped by 2,000+ views. Values over 1M were excluded. "Active" (any increase) is robust to this; magnitudes are not. |
| Per-chart-type views from 30 Aug; prompts tab from 11 Sep | Those features' associations still carry recency bias (marked † in the scorecard). |
matrix/facets drop the category | Natal and transit Matrix use can't be separated per account. GA4 shows the transit category is the larger one. |
| Restore diagnostic volume fell ~70% from 13 Oct | A logging change in 11.1.6+ as users updated, not a usage drop. Don't read it as activity. |
| Onboarding steps: Prometheus only (per worker, reset on deploy); the web funnel is unjoinable (ISSUE-539, 0% joinable) | App onboarding step drop-off could not be measured. See blockers. |
| Web GA4 tag fires on unrelated sites (selectcuttimber.com, alodokter.com, …) | Web user counts are contaminated. Needs a hostname filter before any web retention read. |
| Platform and app version are only known for recently active accounts; the push-token comparison is near-tautological | Not used as findings. |
| Account creation dates rewritten for migrated rows | Chart-timing tests exclude migrated rows (data-trap rule). |