The Movement Athlete · Growth Sprint

The sprint to grow MRR — your build plan, Nic

Short version: we make the funnel measurable, fix the biggest leaks, then turn paid back on. You own the plumbing; everything else runs in parallel so growth doesn't wait on you. Here's exactly what that means.

1Where we are (the honest picture)

The one number we're driving: lead → trial, per funnel, reconciled to RevenueCat — plus month-on-month new-MRR growth. If work doesn't move those, it's a distraction.

2What you own — the plumbing (start here)

This is the highest-leverage work in the whole plan, it needs no app-store release, and nothing else can be read until it's in. Phase 0 first:

1Wire RevenueCat → Amplitude (all 5 events, dedup on transaction_id). This is the constraint — everything downstream is unreadable until it reconciles to within 5% of the RC dashboard.2–3h
2UTM / click-ID capture on quiz load → localStorage → Stripe PI metadata → RC. Kills the 97%-unknown-source problem and unblocks the paid-restart later.1–2h
3Paywall/checkout coherence — annual-first, remove cold-lifetime, match the paywall to the checkout. (Directionally safe copy, not an experiment — ships on its own.)2–3h
4Walk the iOS onboarding flow yourself and tell us: does the "aha" moment land before the credit-card gate? Count the screens; check the injury flag shows up.1–2h
Update 10 Jul — ✅ T2 CONFIRMED LIVE: rc_initial_purchase + rc_cancellation now in Amplitude with the canonical names. Remaining: enable the other 13 lifecycle event toggles in RC→Integrations→Amplitude (rc_renewal ~6/day is the important one), then we reconcile ±5% vs RC.

Nic's source-prefix convention is agreed: rc_* = RevenueCat · af_* = AppsFlyer · unprefixed = web. Amplitude's AI-merge unifies same-meaning events (e.g. af_purchase + purchase + rc_initial_purchasePurchase), with the raw prefixed events kept unmerged for audit. API check same day: af_* flowing ✓ · rc_* = zero events in the taxonomy so far — item 1 counts as done when rc_* appears (should be within ~24h of the toggle; ~6 renewals/day) and reconciles within 5% of the RC dashboard.

Then Phase 1 — the keystone: one canonical user_id set across RevenueCat, Amplitude and AppsFlyer (+ passed through from web), so a trial ties back to the campaign that drove it. This is the most error-prone piece — lock the schema in writing on day one before any native code. The RN team can do the native side with you reviewing the two attribution-critical merges.

The one thing that sets our timeline

Before we commit to "~10 days," can the RN team produce a TestFlight build from the current production branch by tomorrow? If yes, the fast path is real. If it needs environment setup first, we'd rather know now and add that time up front.

3What's running in parallel (so you're not the bottleneck)

WorkstreamOwnerWhat
Organic growthLee + RiteshYouTube/reels/SEO/ManyChat aimed at one thing — email capture via the free 8-min assessment. Starts now, zero ad spend, no dependency on you.
Native buildRN team + you reviewThe SDK-level user_id + conversion events (T4–T7) + the app bug fixes behind the churn.
Retention emailsSeparate planWin-back (already live in AC) + churn triggers — run independently of the funnel build.
Paid adsPausedStays off until the funnel's measurable and a holdout proves it's incremental.

Your job is the plumbing. Growth (organic) and retention start moving this week without waiting on it — you're not the single thing the whole company is queued behind.

4How we'll both know it's working

One daily dashboard we both open every morning: MRR + trials + trial→paid from RevenueCat, funnel steps from Amplitude, spend paused. It starts mostly red and turns green as you land each fix — so it doubles as the progress tracker. "Done" = a number moving, not "it's deployed."

5The ask

  1. Kick off Phase 0 — the RC→Amplitude wire first. No spend, no release, ~a day and a half.
  2. The RN-team logistics — can they build from our production branch quickly, and their hours/rate for T4–T7.
  3. Two 10-minute checks — is AdServices.framework linked in the app? · is a competitor bidding on our App Store brand terms?
  4. Walk the iOS flow (item 4 above) and send back what you find.

Let's get on a quick call once you've had a read — I want us aligned on the sequence before you dive in. This is the core thing that moves MRR, so it's the whole focus.