Most agencies already do maintenance work. Far fewer have maintenance revenue — predictable, monthly, compounding. The gap is rarely capability; it's that the work was never productized. Here's the playbook, from plan design to Stripe mechanics to the metrics that tell you it's working.

Step 1: design three plans, not ten options

Productizing means the client picks a box, not a scope. Three tiers cover nearly every agency:

PlanAnchor priceWhat's in the boxWho buys it
Essential$49–99/moWeekly safe updates, daily verified backups, uptime & SSL monitoring, monthly reportBrochure sites, nonprofits
Professional$149–299/moEssential + performance tracking, security hardening & vulnerability response, monthly form/checkout test, small content edits (30–60 min)Lead-gen sites, small ecommerce
Premium$399–799/moProfessional + priority response SLA, quarterly strategy call & restore drill, staging workflow, dedicated dev hoursStores and sites where downtime is measured in dollars per hour

Two design rules. First, price against downtime, not against your hours — a $299 plan is cheap insurance for a store doing $40k/month, and irrelevant to a hobby blog; segment accordingly. Second, put a visible deliverable in every tier (the monthly report), because retention lives or dies on visibility — the argument of our care-plan checklist piece.

Step 2: set up Stripe properly

The mechanics matter more than they look. The clean structure:

  • One Product per plan ("WordPress Care — Professional"), with a monthly Price and an annual Price at roughly two months free. Annual prepay is the single cheapest churn-reduction tactic that exists.
  • One subscription per client, even if they have several sites — use quantity or a per-site add-on Price rather than parallel subscriptions. One invoice per client per month; their bookkeeper will thank you, and fewer invoices means fewer payment failures.
  • Card on file, mandatory. Productized plans die when they're paid by "we'll transfer it this week." Collect the payment method at signup, before onboarding work starts.
  • Automatic tax if you're anywhere near thresholds — Stripe Tax pass-through beats discovering EU VAT obligations retroactively.

Step 3: let dunning chase the money

Failed payments — expired cards, exceeded limits — will quietly run at several percent of charges each month, and every one you chase personally converts you back from product company to collections agency. Configure the machine instead: automatic retries on a smart schedule, pre-dunning expiry reminders, firm-but-branded emails at each failure, and a defined suspension policy (for example: monitoring continues, hands-on work pauses after 21 days unpaid — you never want to be the agency that let backups lapse over an invoice).

Every payment failure email you write by hand converts you from a product company back into a collections agency.

Step 4: sell the switch to existing clients

Your first twenty subscriptions are already in your inbox — the clients you invoice ad-hoc today. The migration email that works is short: here's what we've been doing informally, here's the plan that formalizes it, here's the monthly report you'll now receive, price goes live on the 1st. Grandfather generously, raise on renewal. Expect the "what am I paying for?" objection exactly once per client — the first report usually retires it permanently.

Step 5: watch three numbers

  1. MRR, obviously — but especially its slope after month three, when early enthusiasm has worn off and the product has to retain on its own.
  2. Attach rate: care-plan clients ÷ active clients. Under 40% means your proposal process treats the plan as an optional extra rather than the default (fix: include it in every project quote, opt-out not opt-in).
  3. Involuntary churn: cancellations caused by payment failure rather than decision. If this isn't near zero, your dunning needs work — it's the most fixable churn there is.

Where your management tool fits

You can run this entire playbook with the Stripe dashboard and discipline. The friction is that billing and delivery live in different systems: the subscription is in Stripe, the work is in your management tool, and the report proving the work exists in neither.

Closing that loop is exactly why WPClientHub ships client billing connected to your own Stripe account: define the products and plans, attach clients and their sites, and invoices, subscriptions, dunning, and the MRR dashboard live next to the update logs and uptime data the monthly report is built from. One system of record, and — on paid tiers — 0% platform fee: your Stripe account, your money, only Stripe's standard processing rates.

However you tool it, the sequence is the same: three plans, cards on file, dunning that chases itself, a report that proves the work. Do that and maintenance stops being the thing you squeeze between projects — it becomes the reason your agency's revenue chart finally slopes the right way. See how the numbers work on our flat tiers →