Playbook
Playbook/Sales mastery

Monthly Client Report — Template & Cadence

126 min read1,155 words

The monthly report is the single biggest churn-prevention tool you have. Clients don't cancel because the work is bad — they cancel because they forgot what they're paying for.

Send a report every month. Same day, same format. Even when there's nothing to report.


The cadence

  • Send by the 5th of every month for the prior month
  • Email format. NOT PDF (too formal, takes longer for them to open)
  • Plain text or lightweight HTML
  • Subject line: [BusinessName] — [Month] report
  • Always end with a question that invites a reply

The standard report (everyone gets this)

Stackd ships a single $197/mo plan, so every client gets the same report shape. Adjust the depth based on what data you actually have for that client (some won't have GA4 set up at first; some won't have GBP managed by you yet).

Subject: [BusinessName] — March report

Hey [FirstName] —

Here's where things stand this month:

📈 Site this month
• Visits: 412 (vs February: 348, +18%)
• Top page: /menu — 247 views
• Top traffic source: Google organic (61%)
• Avg load time: 1.4s ✓
• Bounce rate: 38% (industry avg ~50%)

✏️ Changes I shipped
• Updated holiday hours for March
• Added new menu item: Spicy Teriyaki Bowl
• Replaced the team photo with the one you sent
• Compressed all photos (page size down 22%)
• Security patches applied (March 8, March 22)

🌐 Google Business Profile (if managed)
• Profile views: 1,847
• Direction requests: 89 (vs February: 73)
• Calls from listing: 34
• New reviews this month: 4 (avg 4.7★)
• I responded to 3 of them; one is waiting on a quick reply from you (link below)

🎯 Suggestion this month
Your Sunday hours show "closed" on Facebook but "10am-5pm" on Google — Facebook is wrong. I'll fix it this week. Bigger thing: you've gotten 4 5-star reviews mentioning the açaí bowls. **Worth featuring those more on the site.** I can mock up a small "fan favorite" section if you want, 30 min of my time, included.

Want any of that, or want me to dig into something specific?

— [YourFirstName]

The minimal report (when data is sparse)

If a client doesn't have analytics set up yet, or just signed up and there's no MoM comparison, run this lighter version. Send it anyway. The point of the report is contact, not data.

Subject: [BusinessName] — March report

Hey [FirstName] —

Quick monthly check-in:

✅ This month
- Site loaded fast (avg 1.3s on mobile, target <2s)
- 100% uptime
- Backups running daily, all good
- Security patches applied (March 8, March 22)

✏️ What I shipped
- Updated your Easter hours
- Replaced the team photo per your request
- Compressed all photos (page weight down 22%)

🎯 One suggestion
You should respond to that 4-star review from "Anna B" — quick reply, takes 2 min, looks great to future searchers. Want me to draft it?

That's it. Anything you want me to look at this month?

— [YourFirstName]

What to include vs. exclude

Always includeSometimes includeNever include
Site uptime / load timeConversion rate (if you have form data)Vanity metrics with no business meaning
Visits MoMBranded vs. non-branded search splitBounce rate without context
What you actually did this monthDetailed SEO ranking changes"Engagement" numbers
One concrete recommendationA/B test resultsEmpty platitudes ("things are looking great!")
GBP metrics (if managed)Top performing contentCharts they have to interpret themselves

The rule: every number you include should answer a question they'd ask. If they wouldn't ask it, don't include it.


What to do when there's nothing to report

This will happen. Quiet months. No traffic spikes, no major changes, no fires.

Send the report anyway. Format:

Subject: [BusinessName] — March report

Hey [FirstName] —

Quiet month. Quick recap:

• Site running clean — 1.3s loads, 100% uptime
• Updated [hours / one small thing]
• 287 visits, 3 calls from the site
• No critical issues

Honestly the most valuable thing I'd do this month is [specific thing]. Want me to?

— [YourFirstName]

Quiet reports are powerful. They prove you didn't forget about them, and they invite the next conversation.


How to source the metrics

MetricWhere it comes from
Visits, sources, top pagesGoogle Analytics 4 (free), Cloudflare Web Analytics (free), or Plausible/Fathom
Avg load time, performancePageSpeed Insights API or Lighthouse CLI
GBP views/calls/directionsGoogle Business Profile insights (free)
Search rankingsFree tier of Ahrefs Webmaster Tools or SerpRobot
ReviewsManual count, or Birdeye/Podium at scale
Site healthLighthouse, broken-link checker

Time investment per report: ~15 minutes once you have a template. At scale, that's 1–2 hours of reporting per week for 20 clients. Worth every minute — it's your retention insurance.


The annual review

Once a year per client, do a longer 30-min call instead of just an email report. Prep:

  1. YoY comparison — visits, leads, calls
  2. What worked — list specific wins
  3. What didn't — what we tried that flopped
  4. Recommendation for next year — 2-3 strategic moves
  5. Pricing review — bring this up if you're going to raise prices

If they're up for it, this is also when you ask for:

  • A written testimonial
  • Permission to use their site as a case study
  • Referrals to similar businesses

Annual reviews close ~80% of paid add-ons (e.g., a managed-ads add-on, a photo shoot, a multi-location expansion) when timed right.


A note on dashboards

You'll be tempted to build a fancy client-facing dashboard with real-time metrics.

Don't, for at least 12 months.

The reasons:

  • Most owners never log in (industry data: <10% of dashboards get checked monthly)
  • Building one costs you a week of dev time
  • The monthly email achieves the same goal with 1% the effort
  • It anchors them on "tools" instead of "results"

When you have 50+ clients and reporting becomes a bottleneck, build a dashboard or use a white-label tool (Whatagraph, AgencyAnalytics). Until then, send the email.


Tracking that you sent it

Add a column to your CRM:

  • "Last report sent" (date)
  • "Last report opened" (yes/no — if you have email tracking)
  • "Reply received" (yes/no)

If a client hasn't replied to 2 reports in a row → send a check-in email or schedule a quick call. They're either too busy (fine), getting ready to cancel (act now), or not actually reading (problem to solve).