Canonical source: docs/claude/growth-suite-scoping.md. This page is generated by docs/scripts/sync-handbook.mjs. Edit the source file in the repo; changes appear here on the next build.
Clinic Growth Suite — Scoping Doc
2026-07-12. Consolidates the Zeely/Viktor/Polsia research, the signal-architecture + 17-signals playbook (
growth-signals-playbook.md), GTM principles (gtm-principles.md), and a ground-truth audit of the existing growth modules. Dual-track doctrine applies: Ready Practice runs every piece on itself first (customer-zero), then productizes the proven version for clinics. Companion strategy line: Master Checklist "Clinic Growth Suite" + "Ads bandit" + "Expansion engine" items.
1. Positioning & why
For clinics: "Ready Practice grows your practice, not just runs it." AI generates the demand (ads/content), converts it (signals→plays→bookings), and keeps it (reviews/referrals/ win-back) — measured in booked clients, not clicks.
For Ready Practice: the expansion-revenue engine (Master Checklist: usage upsells ≥15% of revenue) AND the differentiation moat — Healthie/Practice Better run the practice; nobody credibly grows it. Structural edge over Zeely-class tools: we own the booking funnel + payment rails, so we can attribute ad → lead → booked → paid client end-to-end and price on outcomes they can't even measure.
2. Current state (ground-truthed 2026-07-12)
~8k lines across 9 modules — a real foundation with known broken parts:
| Module | State | Notes |
|---|---|---|
growth_leads (1116) + growth_crm (647) | Working | Lead lifecycle, comms log, referral tracking; feeds sales scribe/call center |
growth_conversions (611) | Working | HIPAA-friendly server-side conversion tracking — the crown jewel for ads attribution; ties to #178 |
growth_ads (677) | Partial | AI creative gen + campaign mgmt scaffolding; the "bandit" optimizer loop not live |
growth_website (3065) | Working, quality poor | Site generation exists; output not competitive (memory: "website poor") |
growth_sequences (546) | Broken | Drip campaigns — known broken (memory) |
growth_offers (559), growth_personas, growth_optimizer | Scaffolding | |
| Sales scribe + AI call center (#177) | Built, go-live pending | Inbound voice + CRM leads |
Implication: Phase 1 is fix + connect what exists, not build new.
3. Product architecture — three layers
DEMAND (Zeely-model) CONVERT (signal architecture) RETAIN/EXPAND
───────────────────── ───────────────────────────── ─────────────────
profile-in → AI creatives clinic growth_signals SSoT review engine
(UGC video #264, statics, lead intent scoring referral loop
framework copy) → Meta-first if/then plays: nurture SMS/email, win-back offers
launch → auto-optimization front-desk alert, booking nudge (churn-saves)
→ ROAS-to-BOOKINGS dashboard pre-visit enrichment
- Demand = Zeely blueprint with our twist: onboarding pulls services/brand/photos from the clinic's EXISTING Ready Practice profile (their "URL-in" moment is zero-input for us). Creative engine reuses #264 (Remotion video) for UGC-style clips. Meta-first; Google later.
- Convert = the #265 signal architecture re-tenanted per clinic: form fill +15, price-page +8, IG engagement +2, no-show risk −X → plays fire through channels we already own (chat, SMS, email, booking). This layer is where competitors stop at "leads" and we continue to "booked."
- Retain/Expand = reviews (drives local SEO + the ads' social proof), referral mechanics (product-baked "refer a friend" per gtm-principles), win-back — mostly existing platform features orchestrated by growth plays.
4. Compliance constraints (design-time, not afterthought)
- Meta health-and-wellness ad restrictions — Meta restricts health-condition targeting and (since 2025) limits pixel/CAPI data use for health-flagged advertisers. Our server-side conversions module must send only NON-health events (lead, booking-intent) with scrubbed payloads; audiences built on interest/geo, never conditions. ⚠️ RESEARCH ITEM before build: current Meta "health & wellness" data-source category rules and whether booked-appointment CAPI events are permissible per category.
- No PHI anywhere in the ads path — ad audiences, creative briefs, conversion events: marketing data only. Existing conversions module already designed this way; keep it.
- TCPA/consent for SMS nurture plays — nurture texts require captured consent at the form; plays must check a consent flag.
- Claims discipline in generated creatives — no medical outcome claims in AI copy; template guardrails + a Haiku claims-linter on every creative before publish.
5. Pricing & performance comp
Baseline (fits the one-plan pricing philosophy; numbers PLACEHOLDER until vendor costs set):
| Component | Model | Rationale |
|---|---|---|
| Hooks tier (CRM, booking link, personas, offers, directory, website) | Included in $999 | Near-zero marginal cost; lock-in wedge (decision §9.4) |
| Paid tier (ads, sequences, AI call assistant, chatbot) | Add-on/usage [PLACEHOLDER $] | Real COGS (vendors + inference) — must carry margin (§9.4) |
| Ad-spend fee | 6-10% of managed ad spend [PLACEHOLDER] | Zeely charges 12%; spend-indexed = simple, no attribution disputes |
| Performance option | per-booked-NEW-client fee (e.g. $25-75 by service value [PLACEHOLDER]), capped monthly | The moat pricing — booking+payment attribution is ours. Either/or with the spend fee, clinic's choice (§9.2) |
Performance-comp mechanics to design (the honest hard parts): attribution window (e.g. 30d click/7d view via our own funnel, not Meta's), "new client" definition (no prior visits in 12mo), dispute path (clinic sees the attribution chain in-product), clawback on refunds/ no-shows, and a monthly cap so bills stay predictable. Learnings feed from track A first.
Margin: COGS = creative-gen inference (bounded per campaign), no per-seat vendor costs; ad spend passes through clinic's own Meta account (never our balance sheet). Target ≥80% per the pricing doc.
6. Customer-zero sequencing (track A first — per George)
Every capability ships to RP's own growth before any clinic sees it:
- RP runs the signal SSoT + scoring + plays on its own clinic-acquisition funnel (#265).
- RP produces its own weekly videos via #264 and (optionally) runs its own Meta campaigns through the ads module → the ROAS-to-revenue dashboard is dogfooded on us.
- AI-visibility audit (#266) is RP's own demand-side measurement.
- Only proven pieces get the clinic-facing UI + pricing. Case study #1 (Master Checklist) can literally be "how Ready Practice grew Ready Practice," followed by a design-partner clinic.
7. Phased build
P0 — Repair + dogfood (unblocks everything)
- Fix
growth_sequences(known broken); QAgrowth_adscreative path end-to-end. - Stand up
growth_signalsSSoT + scoring for RP itself (#265 phases 1-2). - #264 video engine v1 (≤60s clips).
- Meta health-ads rules research memo (§4.1).
P1 — RP customer-zero campaign
- One real Meta campaign for RP through our own ads module: creatives → launch → server-side conversions → ROAS-to-demo dashboard. Bandit optimizer v1 under budget caps.
- Plays live on RP funnel: threshold Slack alert, nurture sequence, pre-call enrichment.
P2 — Design-partner clinic (1-3 clinics, manual-assisted)
- Clinic onboarding: profile-in → campaign live (target <1 hour, Zeely's bar is ~18min).
- ROAS-to-BOOKINGS dashboard per clinic; claims-linter on creatives; consent-gated SMS plays.
- Pricing pilot: add-on + spend fee; instrument per-booked-client attribution silently to validate the performance option before selling it.
P3 — GA + performance pricing
- Self-serve enablement in Growth tab; performance-pricing option live with the dispute view; retain layer (reviews/referral/win-back plays); Google Ads channel.
Dependencies: #265 (shared SSoT), #264 (creatives), #178 (attribution hardening for performance billing), #177 go-live (voice answers the demand the ads create).
8. KPIs
- Track A: PCPL, CAC payback (<12mo bar), demo→close rate, RP pipeline from owned campaigns.
- Track B (per clinic): ROAS-to-bookings, cost per booked new client, activation (first campaign live <1h), % clinics with a live play, suite attach rate + expansion revenue %.
- Guardrails: creative claims-linter pass rate 100%, zero PHI incidents in ads path.
9. DECISIONS (George, 2026-07-12)
-
Ad accounts — clinic-owned, Zeely-style, with embedded creation flows. Zeely's model confirmed: client's own Meta account connected via OAuth; spend billed by Meta to the client's card; service fee charged separately; auto-publish/edit via the Marketing API permissions granted at connect. We adopt that for Meta (guided Business-Manager + ad-account creation for clinics that lack one → partner access delegated to RP's BM), and go one better on Google: RP manager account (MCC) programmatically creates the clinic's Google Ads sub-account — clinic only adds billing. Spend never on our books; full programmatic publish/edit control. ⚠️ Build requirement: the account-creation onboarding flows are first-class product surface (P2), not documentation.
-
Performance pricing — either/or, clinic's choice: ad-spend % fee OR per-booked-new-client fee (with the §5 mechanics: attribution window, new-client definition, dispute view, clawback, monthly cap). No blend for v1 — simpler to sell and account for.
-
Design partner #1: Frontdoor Labs (
wamf-loge-csik). P2 pilots start there. -
Packaging split — hooks vs. margin lines (supersedes §5 assumption):
- Included in the $999 plan (hooks — near-zero marginal cost, drive lock-in): Growth CRM, booking link, personas, offers, directory listing, website.
- Paid / performance-based (real vendor+inference COGS — must carry margin): ads engine, email sequences, AI call assistant, chatbot. The included tier IS the acquisition wedge for the paid tier: the CRM/booking data the hooks generate is exactly what makes the paid signal/ads layer effective.