Skip to main content
agency-reportingagency-report-templatedtcclient-reportingmarketing-dashboard

Agency Report Template: Free 21-Item Monthly Client Report

One rule shapes this template: nothing goes on the report that the client cannot interrogate. Every metric gets a footnoted or linked methodology, and anything that cannot survive a CFO asking what it means is cut.

Product Engineer, Marketing Bar
Updated
20 min read
A single frosted-glass report panel assembled from six smaller emerald-lit tiles, evoking a clean monthly client report built from required components.

This agency report template is a monthly client report in 21 items: six required panels that go in every report and three diagnostics that appear only when the problem is present. It is built for a DTC client running paid media on Meta, Google and TikTok (or some subset) plus Klaviyo for email and SMS, and it opens with a panel none of the six top-ranking templates we read includes: platform-reported revenue reconciled against Shopify.

Get the free Google Sheets template: no email gate, it opens a copy in your own Drive with the reconciliation, CAC, contribution-margin and tracking-health formulas already built.

TL;DR

Key takeaways

  • 21 items total: 12 required across 6 panels, 9 conditional across 3 diagnostic panels.
  • The report opens with reconciliation: Shopify net revenue, the raw sum of platform claims, and deduplicated platform revenue, side by side.
  • The template removes 8 metrics that look like results but can't be defended (impression vanity, blended ROAS without methodology, last-click revenue summed across platforms, and five more).
  • We read six of the top-ranking report templates (Oct 2026): none reconciles revenue against the store, deduplicates platform claims, or reports margin per channel.
  • Free Google Sheets version with example numbers and formulas: make a copy. It pairs with our why most agency reports lie article, which explains the failure patterns this template defends against.

How to use this client reporting template

In agency reporting, the monthly client report is the one document the client reads end to end. A client reporting template fixes its structure: every client gets the same panels in the same order, so a missing number shows up as a gap instead of quietly dropping out of the deck.

The template is structured as nine panels in a single dashboard or six-page deck. Panels 1-6 are required for every client. Panels 7-9 appear only when the underlying issue is present (audience saturation, creative fatigue, promotional period).

The implicit rule: nothing goes on the report that the client cannot interrogate. If a metric appears, the methodology behind it must be footnoted or linked. Vanity metrics get cut because they cannot be defended in a meeting when a CFO asks "what does this number mean."

What should a monthly client report include?

A monthly client report should include six required panels: revenue reconciliation against Shopify, a 13-week marginal CAC trend, contribution margin per channel, channel mix with saturation, cohort revenue at 90 and 365 days, and tracking health. Three diagnostics are added only when the problem is present. All 21 items at a glance:

#PanelItemWhen
1Revenue reconciliationShopify net revenueEvery month
2Revenue reconciliationSum of platform-reported revenueEvery month
3Revenue reconciliationDeduplicated platform revenueEvery month
4Marginal CACNew-customer CAC, 13-week trendEvery month
5Contribution marginRevenue − COGS − spend − fulfillment, per channelEvery month
6Channel mixSpend allocation by channelEvery month
7Channel mixMarginal return at current spendEvery month
8CohortsRevenue per customer at 90 and 365 daysEvery month
9Tracking healthMeta Event Match Quality on PurchaseEvery month
10Tracking healthGA4-to-Shopify order match %Every month
11Tracking healthCAPI event volume gap %Every month
12Tracking healthServer-side tagging statusEvery month
13–15Audience saturationFrequency, CPM trend, new-audience reach %When a channel saturates
16–18Creative fatigueTop-5 creative CTR trend, creative age, refresh rateWhen CTR drops or frequency climbs
19–21Promotional flagsEvent, dates, estimated lift vs baselineWhen the period had a promo

No top-ranking report template checks platform claims against store revenue

Google's US desktop results for "agency report template" (2026-10-24) and "client reporting template" (2026-10-26), as captured by DataForSEO, hold 8 organic results each, 16 in total. Ten come from reporting or analytics software vendors (AgencyAnalytics appears twice), four from design-template galleries (Visme, Template.net, Pinterest twice), one from an agency and one generic Word/Excel template. Both queries showed an AI Overview with no cited sources returned.

We then read six of them in full (Oct 2026) and checked what a DTC client would need:

PageFormatStore revenue reconciliationPlatform dedupMargin / COGS per channelTracking health (EMQ, CAPI)
DashThisDashThis accountNoNoNoNo
AgencyAnalyticsPreview in the appNoNoNoNo
DataboxDatabox account (free plan)NoNoNoNo
XtensioXtensio accountNoNoNoNo
SemrushGoogle SheetsNoNoNoNo
PromodoGoogle SheetsNoNoNoNo

The pages cover channel KPIs well: revenue, transactions, AOV, ROAS, cost per conversion. What none of the six covers is the step that decides whether those numbers can be trusted: comparing what the platforms claim with what the store booked. That gap is why this template starts where it does.

Panel 1: Net revenue reconciliation (required)

Three numbers side by side:

  1. Shopify net revenue for the period (the source of truth)
  2. Sum of platform-reported revenue across Meta + Klaviyo + Google + TikTok (raw, before dedup)
  3. Deduplicated platform-attributed revenue (each order counted once)

The gap between #2 and #3 is the platform double-count. Show it. The gap between #1 and #3 is the organic + direct + returning + email-flow revenue not attributed to paid. Show that too.

Here is how it reads on the template's example brand (fictional numbers, one month):

LineValue
Shopify net revenue$250,000
Sum of platform-reported revenue (Meta $142K + Google $88K + TikTok $21K + Klaviyo $74K)$325,000
Deduplicated platform revenue$168,000
Platform double-count (#2 − #3)$157,000, 48% of the platform sum
Revenue not attributed to paid (#1 − #3)$82,000, 33% of Shopify

Bar chart: platform claims sum to $325K, Shopify net revenue is $250K, deduplicated platform revenue is $168K

Summed platform claims exceed the whole Shopify ledger; deduplicated paid revenue is a third lower than Shopify. Source: Level free monthly client reporting template, tab 1 Reconciliation (example numbers).

The platforms together claim 30% more revenue than the store booked. A report that opens with platform ROAS hides that; a report that opens with reconciliation shows it before any other number is read. The same Shopify-anchored logic, extended to the metrics that decide profitability once reconciliation is in place, is what we walk through in our ecommerce analytics breakdown.

Panel 2: Marginal CAC, 13-week trend (required)

New-customer acquisition spend divided by new customers acquired, weekly. Trend line. Marked with promotional events.

Do not include blended CAC (which includes returning customers in the denominator): it makes the agency's spend look more efficient than it is. Marginal CAC is the number that tells the founder if the new-customer economics are improving or eroding. In the template's example, weekly new-customer spend rises from $9,000 to $12,000 while new customers fall from 180 to 144, so CAC climbs from $50 to $83 over 13 weeks. Spend went up 33%; the cost of a new customer went up 67%.

Panel 3: Contribution margin per channel (required)

For each major paid channel: revenue (deduplicated) minus COGS minus channel spend minus fulfillment cost. Negative values shown in red.

This panel requires knowing the client's COGS, and none of the six templates we read asks for it. If the agency doesn't know COGS, it cannot show contribution margin, and the client cannot tell whether a channel is profitable. The template's example:

ChannelDedup revenueCOGS (32%)SpendFulfillmentContribution marginCM %
Meta$92,000$29,440$38,000$9,200$15,36017%
Google$51,000$16,320$17,000$5,100$12,58025%
TikTok$9,000$2,880$6,500$900−$1,280−14%
Klaviyo (email/SMS)$16,000$5,120$1,800$1,600$7,48047%
Total$168,000$53,760$63,300$16,800$34,14020%

For multi-product brands, weight COGS by product mix per channel if the data exists. If not, use blended COGS and footnote the limitation. If every channel shows a positive margin every month, check the inputs before celebrating: platform-reported revenue instead of deduplicated, or a channel left off the table, are the usual reasons.

Panel 4: Channel mix and saturation curves (required)

Two halves to this panel:

  • Spend allocation (where the money actually went, percentage by channel)
  • Marginal return curve (for each channel, marginal revenue per dollar at the current spend level)

The saturation curve is what tells the founder whether to keep scaling a channel or to redeploy spend. If Meta's next $10K returns $4K of revenue, Meta is at saturation. The deck should say so. In the template, a channel whose next $1 returns less than $1 gets the verdict "Saturated: hold or cut"; above $1 it reads "Room to scale".

Panel 5: Cohort revenue (90/365) (required)

New-customer cohorts plotted against their 90-day and 365-day revenue. Acquisition month on the X-axis, cumulative revenue per customer on the Y-axis.

This is where retention quality shows up. If the agency drove a 4.0x acquisition ROAS but the 90-day cohort spent half as much as last quarter's, the LTV trajectory is broken and the agency-blamed channel mix shift might actually be a product or retention issue. The cohort panel surfaces it. For the 30/60/90/180/365-day table structure and the three mistakes that most inflate this number, see our LTV by cohort breakdown. If you want an outside reference point, Common Thread Collective's DTC Index tracks store CAC, MER and AOV weekly (a paid product, $99/month, checked Oct 2026), and Klaviyo's ecommerce benchmarks give email revenue share by store size, from Q4 2016 data, so treat them as dated.

Panel 6: Tracking health (required)

Four indicators, with the template's working thresholds:

IndicatorGreenAmberRed
Meta Event Match Quality on Purchase (0–10)≥ 86–8< 6
GA4-to-Shopify order match (GA4 purchases ÷ Shopify orders)≥ 90%80–90%< 80%
CAPI purchase volume gap (1 − CAPI purchases ÷ Shopify orders)≤ 10%10–20%> 20%
Server-side tagging: Meta CAPI, Google Enhanced Conversions, Klaviyo eventsLivePartialOff

The thresholds are our working defaults, not platform rules; Meta reports EMQ per event in Events Manager on a 0–10 scale. If any tracking indicator is red, every revenue number above it is suspect. The tracking health panel is the report's audit trail.

Panel 7: Audience saturation diagnostic (conditional)

Appears only when a channel is at or near saturation. Shows:

  • Frequency by audience segment for the last 14 days
  • CPM trend week over week
  • New-audience-reach percentage of total spend

Skip this panel when channels are healthy. It's a diagnostic, not a vanity slide.

Panel 8: Creative fatigue indicators (conditional)

Appears when CTR is dropping or frequency is climbing on top creatives. Shows:

  • Top 5 creative units by spend with their CTR trend over 28 days
  • Days since each top creative was first published
  • Creative refresh rate (new variants tested per week)

Use it to inform the next creative sprint decision, not to fill space.

Panel 9: Promotional period flags (conditional)

Appears when the period covered includes a sale, launch, or other non-evergreen event. Flags:

  • What promotional event ran (sale, launch, sweepstakes, influencer campaign)
  • Dates of the event
  • Estimated revenue lift attributable to the event vs. baseline

This panel prevents the YoY comparison error where last year's sale week is compared against this year's evergreen week as if they were equivalent.

Reporting cadence vs depth: what goes in each report

Reports get worse when cadence and depth are traded in the wrong direction: weekly reports grow to monthly-report depth, monthly reports grow to quarterly-business-review depth, and nobody reads any of them closely.

The depth of a report should be capped by the decisions it drives. The cadence should be capped by the speed those decisions can move at.

Marketing Bar
  1. Weekly report → tactical layer only. Pacing against monthly budget, account-health flags (tracking degradation, policy enforcement, audience saturation triggers), top-3 changes shipped this week, top-3 changes planned next week. No reconciliation, no contribution margin, no cohort math. Level covers the pacing piece with targets and pacing. Our rule of thumb: if the weekly takes more than 30-45 minutes to assemble, it has grown into a monthly.
  2. Monthly report → strategy + reconciliation layer. The full 21-item template above. This is the cadence at which big spend-shift decisions and channel-mix arguments should be settled against reconciled data. If the paid-channel panels live in Level, scheduled reports can send them on this cadence.
  3. Quarterly business review → policy + bet layer. What the brand commits to over the next 90 days, what is being retired, what new channels or programs are being tested, and the success criteria set in advance. The QBR is where the brand revisits its CAC ceiling, channel-saturation thresholds and retention investment. Monthly reports answer "what happened"; QBRs answer "what are we going to commit to."
  4. Hot-incident report → triggered, not scheduled. When tracking breaks, when a platform enforces against the account, or when CPM on a primary channel stays more than ~50% above its trailing average for over a week (our trigger, adjust to the account), a same-day or next-day incident note goes to the founder. Don't hold these for the next monthly. Automating that trigger is part of the reporting and alert work a marketing automation agency builds for DTC brands.
  5. The depth ratchet. Panels get added in response to founder questions ("can we also see X?") and rarely get removed. The discipline: at every QBR, prune at least one panel from the monthly. If a panel has not driven a documented decision in two quarters, drop it.

What this template removes from typical agency reports

The 21 items above are the structure. The template also explicitly removes:

  1. Impression count as a headline metric. Cost-free to inflate, weak link to revenue.
  2. Engagement rate as a business KPI. Platform-internal score, not a business outcome.
  3. Blended ROAS without methodology. Meaningless without attribution-window and channel-pool disclosure.
  4. Last-click revenue summed across platforms. Inflated by the dedup gap: $157,000 in the example above.
  5. "Top performing ad" callouts without spend context. A $50/day ad with 12x ROAS is not the same business event as a $5K/day ad with 4x.
  6. YoY comparisons without promotional event flags. Calendar artifacts framed as performance changes.
  7. "Industry benchmark" comparisons without source citations. Benchmarks are often compiled by a company selling the data or a tool (the DTC Index above is a subscription product). If you cite one, link the source and state its date and sample so the client can interrogate the methodology.
  8. Agency self-promotion slides. A monthly deck is the client's data, not the agency's trophy case.

Download the free client reporting template (Google Sheets)

Make a copy of the template. No form and no email: the link opens a copy in your own Google Drive (you need to be signed in to Google). It has nine tabs:

TabWhat it does
Start hereHow to use the template and the one rule behind it
Report checklistAll 21 items in deck order, with data source, method, this month, last month
1 ReconciliationShopify net revenue vs platform sum vs deduplicated revenue; double-count and unattributed share computed
2 Marginal CAC13 weeks of new-customer spend and new customers; CAC per week, promo weeks flagged
3 Contribution marginRevenue − COGS − spend − fulfillment per channel; negative channels turn red
4 Channel mixSpend share and revenue from the next $1, with a scale / hold verdict
5 CohortsRevenue per customer at 90 and 365 days by acquisition month
6 Tracking healthEMQ, GA4-to-Shopify match, CAPI gap with green / amber / red thresholds
Cut listThe 8 metrics to keep off the report, and why

Green cells hold example numbers from a fictional DTC brand. Replace them and the formulas update. The Looker Studio version with dedup logic in calculated fields is shared on request through our custom reporting service, because it needs your data sources connected.

A fictional brand's numbers and six vendor templates, read October 2026

The reconciliation, CAC trend, contribution margin, channel verdicts and tracking thresholds in this article are the template's own example data, a fictional DTC brand. They illustrate the math and are not a benchmark. The six-page comparison draws on two DataForSEO snapshots of Google organic results (US, desktop): "agency report template" on 2026-10-24 and "client reporting template" on 2026-10-26, 8 organic results each. We read six of the 16 pages on 2026-10-26 and checked them for store reconciliation, deduplication, margin/COGS and tracking-health items; "No" means the page does not mention it. Vendor pages change, so recheck before you quote them.

Where this template fits in the broader Marketing Bar approach

The template is the artifact. The deeper article is why most agency reports lie, which explains the five failure patterns this template is built to defend against. The product version of paid-channel reporting is Level: it connects Meta Ads and Google Ads (its docs also list Microsoft Ads) and syncs hourly on paid plans, daily on Free. Shopify and Klaviyo deduplication stays in the template's Sheets/Looker layer. If you'd rather buy the assembly automation than build it, our automated reporting tools comparison ranks six options by how much of the manual work they actually remove.

If you'd rather run the paid-channel panels yourself, book a Level demo and see them on your own Google Ads and Meta accounts. If you're building your own version of this template and want help customizing it for your specific channel mix, our custom reporting service covers scoped implementations.

How long it takes to migrate to this template

For an in-house team or agency adopting the template against an existing reporting setup, a four-week plan:

Week 1 — Data layer review

Confirm Shopify net revenue is accessible, COGS data is current, channel-level spend feeds are working.

Week 2 — Build the trust panels first

Panel 1 (reconciliation) and Panel 6 (tracking health) built first. Everything else gets read with skepticism until these work.

Week 3 — Build on the reconciled foundation

Panels 2-5 (marginal CAC, contribution margin, channel mix, cohort revenue) built on top.

Week 4 — Ship the first monthly

First full monthly report ships against the template, with the prior format archived for comparison.

Copying the template without the data work in weeks 1-3 gives you a cleaner layout over the same unreconciled numbers.

FAQ

Written by

Product Engineer, Marketing Bar

Builds across the full stack — from the interfaces clients use every day to the systems running behind them, with a focus on reliability at scale.

Share