Recurring Revenue: Subscriptions, Care Plans, Costs & Time
How the monthly-fee side of the business actually runs β what we sell, what it costs us, and how much of Daniel's week it eats. Operational playbook β derived from BUSINESS-MODEL.md + DECISIONS.md (settled) + BRAND-STRATEGY.md.
Read this as the answer to three questions Daniel keeps asking: what will the monthly subscription look like, what are our costs, and how much time will it take? The honest one-liner that governs everything below: recurring is the FLOOR, not the rate leader. A Care Plan nets R771/h β below the Repaint project rate (R848/h SA). Recurring exists to smooth revenue against project lumpiness and cover roughly half the R20k floor in dry months, not to beat project economics. Pricing/deposits/discounts on the one-time build fees live in Pricing & payments; this doc is only the recurring layer.
1. The recurring menu
Every recurring line we offer. Prices ZAR-first, USD/Β£ alongside; planning math uses the R16.0/$ buffer. Client-facing language stays outcome-led β the stack names here are internal only.
| Line | SA price/mo | INTL price/mo | For | Status |
|---|---|---|---|---|
| Care Plan β Basic | R900 | $60 / Β£45 | ICP-A/B after any build; "keep it alive" | Sell now (best-effort) |
| Care Plan β Standard | R1,500 | $95 / Β£70 | Clients who want regular small changes + monitoring | Sell now (best-effort) |
| WhatsApp Receptionist (flagship) | R1,800 | β | ICP-A SA health/professional practices | Sell now; substrate light (see Β§4) |
| WhatsApp Receptionist β Busy tier | ~R3,500 | β | Busy retail / e-comm (~2,000 convos) | Sell now; watch margin (Β§2) |
| Web-chat variant (cart-recovery) | R1,500 | $150 | ICP-B UK/EU/US e-comm | Sell now; near-pure margin |
| Voice Agent retainer | R2,500 | $250 | ICP-A/B, phone-first | DEFERRED to Q3 β see Β§4 |
Voice is deferred and stays deferred until (a) the metering + monitoring substrate exists (Q3) and (b) β₯2 paying voice leads are in hand. It carries an implicit real-time SLA a day-job cannot honour. Note it, quote it only when both gates are met, and move on.
1a. Care Plan β what's IN vs NOT
Care Plan is best-effort, async, NO hard SLA. That honesty is what protects the day job β never promise an uptime number or a response-time guarantee.
| Basic R900 | Standard R1,500 | |
|---|---|---|
| Hosting + domain/SSL kept live | β | β |
| Dependency/security patching | β | β |
| Uptime/error monitoring (once Β§4 Q2 ships) | β | β |
| Small content edits (text/images/hours) | up to ~2 small changes/mo (Proposed) | reasonable-use, batched monthly (Proposed) |
| Monthly "still healthy" check + note | β | β |
| Best-effort response window | async, ~2 business days (Proposed) | async, ~2 business days (Proposed) |
Explicitly NOT in any Care Plan: new pages/features, redesigns, new integrations, e-comm/catalogue work, guaranteed response or uptime SLA, emergency/after-hours. All of those are new scope β quote as a build or bill at the change-order rate (R900/h Β· $110/h). Rule: upsell to the next package, never bend the current one.
1b. WhatsApp Receptionist β what's IN vs NOT
| IN scope (the R1,800 tier) | NOT in scope (separate line / not offered) |
|---|---|
| Transactional booking, rescheduling, FAQ, lead capture | Broadcasts / marketing / reminder blasts β separate line item (see below) |
| Calendar write-back (Google/Outlook sync = MVP; GoodX where a dental prospect runs it) | General-purpose "ask-me-anything" chat (Meta-banned; bot must refuse off-topic) |
| Payment via hosted link + webhook confirmation back in chat | True in-chat checkout (no WhatsApp Pay merchant rail exists in SA) |
| 600 conversations/mo included | Overage above 600 β ~R3/conversation |
| POPIA-aware handling (opt-in, minimisation, human-in-loop for health-adjacent) | Voice/phone (that's the deferred Voice Agent) |
Broadcasts are always a separate, metered line item β never folded into R1,800. Meta marketing messages run ~R1.40/msg; 5,000 msgs/mo β ~R7,500 in Meta fees alone. Price broadcasts at Meta cost + margin, billed on actual volume, quoted per campaign.
2. Costs β what each plan costs us
The whole point of the lean stack: self-built orchestration (Daniel's existing agent-infra pattern) + pay-as-you-go BSP (Twilio, ~$0.005/msg, no monthly). Do not use a bundled platform β WATI alone is ~R1,400/mo and eats the entire retainer before a single Meta fee. 360dialog (β¬49/mo flat) only wins at high volume.
| Plan | Monthly infra cost | LLM tokens | Margin (infra only) |
|---|---|---|---|
| Care Plan (Basic/Std) | ~R150 | negligible | ~85β90% |
| WhatsApp Receptionist (β€600 convos) | ~R250β650 (Meta fees + Twilio PAYG) | <$5/mo at ~1,000 convos | ~64β86% |
| WhatsApp Busy tier (~2,000 convos) | ~R2,400 | ~$10β15/mo | ~30%+ |
| Web-chat variant | ~R150β200 (no Meta/BSP fees) | <$5/mo | near-pure margin |
| Voice (Q3, if sold) | R330β490 (β€600 min) | small | ~80% at cap |
The two Meta clocks β price against them from day one, not against today's free-window economics:
- Oct 1, 2026 β Meta meters the free service window. Every competitor's blog price assumes free in-window replies; that ends. All figures above are already the post-October regime β quote on these, or margin quietly evaporates on live clients in Q4.
- Aug 1, 2026 β Meta's native "Business Agent" starts billing (~4β5c/msg). Meta itself commoditizes the generic bot. Never pitch "we have a WhatsApp bot." Pitch what native can't do: real calendar/PM-system integration, SA payment-provider choice, CRM push, POPIA-aware health handling, bespoke multi-step flows.
Margin discipline: the β€600-convo tier is the healthy one (64β86%). The busy 2,000-convo tier is ~30%+ and thin β at that volume infra alone approaches the fee before counting Daniel's time. Qualify prospects toward the low-volume end; if a client consistently runs high, move them to the Busy tier or reprice. The build fee (R15k) β not the retainer β is what earns the setup effort back.
3. Time β how much of the week
Budget 1.5β1.75 h/mo per recurring client. No real per-client data exists yet, so this is a deliberately conservative measurement target for clients 1β3 (time-tracking is on from client 1).
| Plan | Budgeted h/mo | Effective rate |
|---|---|---|
| Care Plan (Standard) | 1.75 | net R771/h (below project rate) |
| Chat / WhatsApp retainer | 1.5 | net ~R867/h |
| Voice (if/when sold) | 2.0 | net ~R1,005/h |
Hard KPI ceiling: β€2 h/mo per client. This is the M6 checkpoint. If measured support exceeds it:
- >2 h/mo β warning; tighten scope, batch requests to a monthly window.
- >2.5 h/mo β the retainer is underpriced/over-scoped β reprice (per the M6 pivot: Care to R1,200 Basic / R1,800 Std) and cap scope harder.
Portfolio reckoner (for "how much of my week"): support time β clients Γ ~1.75 h/mo.
- 6 recurring clients β ~11 h/mo support (the R20k-floor scenario).
- 9 recurring clients β ~16 h/mo support (the steady m9β12 scenario).
Framing to hold onto: recurring floors at ~R9β14k/mo net by Q4 β about half the R20k floor β before any project closes. It does not clear R20k on its own. It is ballast against dry months, bought with hours that earn less per hour than a build. Don't over-attach recurring at the expense of the project pipeline, which is where the rate actually lives.
4. Substrate β what must EXIST before selling each tier
Reuse Daniel's existing pattern (VPS + systemd + Discord + event-log + SQLite) β the monitoring muscle is genuinely de-risked. Stage the build; don't sell ahead of the substrate.
| Tier | Can sell when⦠| Substrate needed (quarter) |
|---|---|---|
| Care Plan | Now β honestly best-effort, no SLA | None beyond hosting namespaces (Q1) |
| WhatsApp / Web-chat | Now (light); scale after Q2 | Q2: monitoring/uptime + error alerting (reuse Discord/event-log) + recurring billing (Paystack SA / Stripe INTL) + one-click chat template |
| Overage enforcement, Busy tier at scale | Q3 | Q3: usage metering + overage billing + per-client isolation + status page β built only if scale/voice demand justifies |
| Voice Agent | Q3+, and only if β₯2 paying leads | All of Q2 and Q3 metering must ship first |
No hard SLA until Q4 (and only "SLA-lite" then). Best-effort retainers are the interim state by design β that is Daniel's stated constraint, not a gap to apologise for.
Interim overage gap (Proposed β not yet in DECISIONS.md): the R1,800 tier sells with a 600-convo cap + ~R3/convo overage now, but automated usage metering + overage billing is a Q3 substrate milestone. Until Q3, handle overage manually: read the Twilio/Meta dashboard once a month, flag the client at ~80% of cap, and bill overage on the next invoice by hand. Don't advertise hard real-time metering before it exists.
5. Billing & onboarding ops
5a. Onboarding a Care Plan retainer
- Retainer starts at handover of the build it attaches to (Care Plan is a build convert, not a standalone sale).
- Set up recurring billing: Paystack (SA) / Stripe (INTL), monthly, month-to-month.
- Add the site to monitoring once Q2 alerting is live; log the client in
clients/. - Send the one-paragraph "what your plan covers / what's extra" note (mirrors Β§1a) so scope is written down before the first request arrives.
5b. Onboarding a WhatsApp Receptionist β set expectations PRE-SIGNATURE
There is no same-day go-live. Say this before the client signs, so the lead time and the number requirement don't surface as post-signature surprises (this belongs in the Sales & intake conversation too).
- Meta Business verification: 2β14 business days (needs business-registration docs, 2FA/PIN) β the long pole.
- A dedicated phone number the client is not already using on personal WhatsApp (common objection β surface it early).
- Template message review β a separate Meta queue on top of verification.
- Display-name approval.
- Confirm the integration path in the audit/scope: Google/Outlook Calendar sync (psychologist MVP) or GoodX (dental, proven writable diary); Healthbridge = gated ~60-day partner process, expect friction.
- Payments: hosted link (Yoco / Paystack / PayFast) + webhook confirmation. Demo honestly as "tap, pay, get confirmed here" β never "in-chat checkout."
- POPIA: implement real opt-in, minimisation, deletion, human-in-loop for health-adjacent flows (it's hygiene, not a selling point β incumbents ship it).
Budget a 1β2 week buffer per client in the sales-to-live timeline. The R15k build fee covers this setup effort, so the retainer can stay honestly month-to-month.
5c. Term, cancellation & continuity
- Month-to-month, no lock-in β this is a settled brand promise (soft risk-reversal; the client owns everything). Do not introduce a minimum term or lock-in; the build fee β not the retainer β earns back setup, so no minimum is needed.
- Cancellation: month-to-month, 30 days' notice (Proposed β not yet in DECISIONS.md; docs say "month-to-month / no lock-in" but set no notice period). On cancel: hand over code/accounts, remove from monitoring/billing, archive in
clients/. - The continuity pitch for non-technical buyers (from BRAND-STRATEGY, order matters): lead with "a person on the other end, month-to-month" β then code/account ownership and written handover as the supporting detail. Code-ownership language reassures only technical buyers; the human-on-retainer line is what converts ICP-A.
5d. Destination hygiene (hard rules)
- Client-site submissions go to the CLIENT's inbox, never to Daniel's Discord (POPIA β berlein especially). The Discord/outbox pipeline is for Daniel's own funnel, not client customer data.
- NO hospitality clients, ever. No recurring line is ever routed to a hospitality lead; the restaurant app is anonymised capability proof only, never a referral seed.
Open decisions (β DECISIONS.md)
Flagged Proposed above β new operational choices not yet in the settled log; Daniel to ratify or amend:
- Care Plan tier scope split β Basic = ~2 small content changes/mo; Standard = reasonable-use batched monthly + a monthly health check. (Docs set the prices R900/R1,500 but don't differentiate what each tier includes.)
- Best-effort response window β state "async, ~2 business days, no guaranteed uptime SLA" as the published habit. (BRAND-STRATEGY says "stated response habit" but names no number.)
- Interim overage handling (before Q3 metering) β manual monthly dashboard read + ~80%-of-cap heads-up + hand-billed overage.
- Cancellation notice period β month-to-month with 30 days' notice. (Docs settle "no lock-in" but no notice period.)