← AstroMatrix Reports — all pages AstroMatrix Retention Audit Engagement & retention audit · read-only · 19 Oct 2026 AstroMatrix Retention Audit Install cohorts 27 Jul – 11 Oct (GA4, ~37,000 installs) 124,196 tracked accounts followed 24 Sep → 13–17 Oct No code, data or production changes The central question, answered from the data 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. Review decisions · 19 Oct Central experiment: the first-session Daily experience and the 72 hours after it. Measurement is built alongside the product work, not after it. 11.1.8: release once readiness and per-platform status are verified. Don't hold it for the daily-ranking rework. Grafana: provide read-only viewer access through an approved method, so setup abandonment can be measured. GA4 Admin API: enable with restricted permissions and an explicit measurement plan (registering the ISSUE-621 dimensions). Not prioritised: pushing users to save more charts, or to explore as many features as possible. The audit is evidence against both as retention levers. Kept as-is: the existing five user modes. This audit's mode mapping is an analysis lens, not a replacement. Review decisionsA · FindingsB · Lifecycle funnelC · Feature scorecardD · Journeys & modesDormancy & reactivationFrictionE · BacklogMeasurement qualityBlockersMethod A · Ten findings 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. The biggest loss is the first night. Nothing else comes close. Of each week's ~3,200 new installs, about 22% are active on day 1, 11% on day 7, 6% on day 30 and 4–5% on day 60. Counting activity any time in the week, 26% of Android and 38% of iOS installs come back in week 1, and 15% / 23% in week 4. GA4 cohort report, weekly cohorts 27 Jul – 5 Oct, n ≈ 37,000 installs; only complete weeks pooled. The register's earlier "59% last seen within an hour of install" (ISSUE-621) fits this shape. Depth predicts staying, and the effect holds within every account age. Among accounts created 1 Aug–23 Sep, the share active again in the next ~3 weeks rises from 17% (1–4 lifetime content views) to 28% (5–19), 48% (20–59) and 72% (60+). The table in the brief reproduces with the same shape: 13.7 / 22.2 / 35.4 / 55.4 / 80.6%. Stat snapshots of 24 Sep and 13–17 Oct, 124,196 accounts. "September visits" in that table is a lifetime total at 24 Sep, and "October active" means any new activity between the two snapshots (a 20–23 day window), not calendar October. Timing features have the strongest association with returning. That is not proof they create the habit. Comparing new accounts at the same depth, Moon users were active again 39 / 47 / 64 / 82% across the four depth bands, against 16 / 25 / 42 / 65% for non-users. Forecast-calendar users show +14 to +17 points. New users whose dominant mode was Timing stayed active 47.5% of the time, against 39% (Self) and 29.5% (Tarot). 24,276 new accounts, compared within depth bands to remove "heavier users touch more screens". Other differences between users are not controlled, so this does not predict what nudging someone to the Moon screen would do. Once active, 70–76% of Self and Timing users repeat those modes, against about 40% for Relationship, Tarot and Growth. Reading-heavy, one-off features are associated with not returning at the same depth. Among new accounts at equal depth, users of Matrix/Facets (−10 to −17 points), Journal (up to −12) and AI reports (−5 to −7) were less likely to come back. Tarot-dominant accounts go dormant most often: 60% overall and 70.5% of new ones. This does not mean the readings are bad or need more engagement mechanics. People who came for one specific answer may leave satisfied once they have it, and the data can't tell those two cases apart. Same depth-banded comparison. At 5–19 views, new users who went dormant had used Matrix 65% (vs 45% for those who stayed) and Journal 48% (vs 31%). Breadth is not activation. Sampling many sections shallowly predicts leaving. At 5–19 lifetime views, accounts that touched 1–2 of the five intents were active again about 50% of the time. Those that touched 3–4 were active 35–36% of the time. At 20–59 views, two intents gave 71% against 56% for four. This looks like the "tourist" pattern already described in the modes doc. 124,196 accounts, breadth × depth. So "engagement with multiple categories predicts better retention" is false here once depth is held fixed. Saving a chart marks engagement. It does not cause it. Among accounts at least 45 days old, a chart made in the 14 days before 24 Sep went with 67% later activity (1–4 views). Any journal action alone went with 69%. Neither went with 32%. For new users, a second chart in the first 24 hours adds only 3 points (28.5% vs 25.2%). The steep "charts held" gradient is partly caused by active users adding charts during the window: 7.5% of active accounts did, against 0.2% of dormant ones. Age-controlled precedence test, n = 102,824. 52% of second charts are added within one hour of the first, during setup. This agrees with STRATEGY §6.1, which already flagged reverse causation for purchases. Coming back within 72 hours is the clearest early marker. We can only see it for a small minority. New accounts with a saved action 24–72 h after signup were active later 46% vs 17% (1–4 views) and 42% vs 28% (5–19 views). But only 777 of 20,231 new accounts (3.8%) leave any saved trace in that window. Plain app opens can't be tied to an account at all. Chart and journal timestamps. This is a lower bound, because reading without saving leaves no per-account record. See measurement gaps. Dormancy is abrupt and mostly shallow. 57% of tracked accounts did nothing in the window. 52% of these had fewer than 5 content views ever, and former heavy users are only 2.4%. Of dormant users with journal history, just 8% were declining month on month. 61% were flat or rising into September and then stopped. Their last saved action was more often a full transit report (60% vs 53%) and less often a saved piece of content (17% vs 27%). 71,236 dormant accounts. Journal-based shape uses 3,184 dormant and 6,584 retained accounts with 3+ rows. The free-report cap is not a cliff: activity rises steadily from 0 to 8+ reports with no drop at #5. Non-English and South Asian installs retain at a fraction of the core. D7: English 12.5%, Spanish 8.4%, French 6.9%, Arabic 5.8%, Russian 2.4%. By country: US 14.1%, UK 14.6%, Australia 17.1%, India 2.4%, Pakistan 2.8%. Journal prompts, tarot card traits and AI reports are English-only (ISSUE-379, ISSUE-406, FEATURE-37). About 20% of installs are non-English. GA4 cohorts 17 Aug – 27 Sep, ~20,000 installs. The account-level data agrees: at 5–19 views, English 43% active vs French 28% and Turkish 17%, on small samples. Notifications reach many users but rarely bring them back, and the daily surface barely changes. In 28 days, ~29,800 Android users received ~1.05M notifications (≈35 each). 3.3% were opened and 46% dismissed. Notification taps start at most ~10% of sessions (53k of 533k). Users with transit alerts on were active 5–11 points more at low depth. The new daily "What Matters Now" panel is in 11.1.8, which is not released, and the rework that makes it change every day is in no build. Even that rework, read from the code, keeps the same lead insight for weeks. GA4 events (iOS does not log receipts). The opt-in comparison is correlational. Release state is from the Flutter repo history. B · Lifecycle funnel New installs (GA4, every platform user, by week of first open) | 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. Whole active base | 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 Stage movement, 24 Sep → 13–17 Oct (tracked accounts) 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. C · Feature scorecard "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. D · Journeys and mode transitions 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. Transition matrix, all tracked accounts (row %) 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% Mode change is mostly not abandonment Among accounts whose dominant mode changed (with 5+ views in the window): Self: 83% still used Self. Timing: 81% still used Timing. Relationship: only 52% still used it. Tarot: 54%. Growth: 47%. Self and Timing get added to. The other three are dropped about half the time. Which modes go together 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. Retained vs disappearing new users, matched on early depth 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. Dormancy and reactivation | 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) Reactivated (account-level): 5,198 accounts created before 1 Aug had no activity on the current app until 24 Sep and then appeared by mid-October. They return shallow: 57% are still at Newcomer depth (median 4 views). They are also more often past payers (17% vs 7% of the dormant pool). Reactivated (saved actions): 12,398 accounts saved something in July. 9,073 (73%) saved nothing from 1 Aug to 23 Sep, and 727 of those (8%) came back after 24 Sep. Those who came back held more charts (median 3 vs 2), had saved content more often (34% vs 24%) and were more often payers (35% vs 15%). Their first action back was an All Transits report (37%), saving content (22%), or relocation (12%), which had just launched. New features pull lapsed users back. Campaigns: return dates are spread evenly (12–49 a day) with no spike on the 3 Oct win-back send. Earlier campaign "return" rates used a last-accessed field that bulk edits inflate (ISSUE-764), and had no holdouts until 13 Oct (ISSUE-646). Reactivation from campaigns is not established. UX and technical friction Confirmed defects (register) ISSUE-171: 48,511 accounts opted in to alerts with no push token, so they can't receive any. ISSUE-283: background-message crash; ISSUE-387: ingress alerts ~6 h early. Code reading: a notification tap on cold start is dropped if the app opens on setup or the chart picker. A tap on an older notification can open the newest one. ISSUE-743: black screen after adding a person; ISSUE-420: Android back does nothing. ISSUE-374: an empty astrocartography map is counted as success; ISSUE-631: map report tap shows nothing. ISSUE-511 / ISSUE-611 / ISSUE-730: daily tarot repeats cards, and spread rotation has never run. Untranslated: prompts, tarot traits, AI reports (ISSUE-379, ISSUE-406, ISSUE-757, FEATURE-37, FEATURE-45). Design hypotheses (untested) Notification permission is requested with no explanation the moment Home first loads, right after setup (ISSUE-621 is already designed to measure this). ≈35 Android notifications per receiver per 28 days with a 3.3% open rate suggests volume is drowning relevance. The content view limit (from session 4, after 7 items) may end sessions for the users who are just forming a habit. 18,280 users saw a paywall in 28 days. This can't be tested per user until 11.1.8's close events ship. Onboarding is short (name and date required, time optional), so setup is not the barrier. Per the modes doc, stalled accounts already hold charts. Web to app: 3,808 web users clicked an app link in 28 days, against ~123,000 web first visits. Most web traffic is low-engagement "Direct" (11% engaged). E · Prioritised backlog 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 Run only as holdout experiments, not assumed improvements Ask for notification permission after the first useful moment, with a reason (ISSUE-621 already scopes the measurement). A frequency cap on Android notifications (≈35 per receiver per 28 days, 3.3% opened). Win-back sends: holdouts required (ISSUE-646), measured by actual app return, never by last-accessed (ISSUE-764). Not prioritised Pushing users to save a second chart (FEATURE-16 / FEATURE-74). Chart saving tracks recent activity; it is not shown to cause it (finding 6). Encouraging users to explore as many features as possible. Breadth at equal depth goes with lower return (finding 5). Adding engagement hooks after one-off readings. Readers may leave because their question was answered, and this needs the #4 data before anything is built. Measurement quality and instrumentation gaps | 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). Blockers (reported, not worked around) Grafana 90-day history. App onboarding step counts and notification counters live there. No viewer token is available to this session, so onboarding step drop-off is unmeasured. GA4 Admin API is not enabled on the project, so custom dimensions can't be registered or listed. This blocks splitting retention by permission status or first-session features. Android and web release state of 11.1.7/11.1.8 is unverified. iOS 11.1.7 is live. Who triggers scheduled pushes in production is unverified. GA4 shows they arrive, but nothing in this repo schedules them. Method and definitions Install retention: GA4 native cohorts by first-session date, iOS/Android app property. Day N means active on that exact day; week N means active at any point that week. Only complete periods are pooled. This is the same method as the 18 Oct stats commit. Tracked accounts: 124,196 accounts with per-screen stats on 24 Sep (of 574,096 accounts; the rest have never used the current app or never synced). They skew toward engaged users. "Active in window" means any screen count increased between the 24 Sep and 13–17 Oct snapshots. Content views: chart-type views, Matrix/Facets, interpretations, daily, Moon, forecasts, relationship screens, tarot, journal and reports, excluding navigation, settings and sub-timers. Account age: earliest profile creation date. The 24 Sep bot/guest burst (ISSUE-764) falls after the cohort cut-off. Saved actions: charts created (non-migrated rows only) and journal rows (reports, saved content, prompts, tarot readings, relocation) since 1 Jul, resolved to accounts. 104 of 152,166 rows could not be resolved. All figures are provisional, from read-only queries on 19 Oct 2026. The canonical active-user number remains GA4 active users. Mongo-derived counts apply to the tracked base only.