KPI report: a template and examples for marketing
What a marketing KPI report contains, a copyable template with targets and status rules, two illustrative examples, and how often to send it.
A marketing KPI report is a short, scheduled document that compares five to seven agreed KPIs with their targets, gives each one a status (on track, at risk, off track), explains the one or two that moved, and ends with an action or a decision. The target column is what separates it from a generic analytics report: without targets, nobody can tell whether a 6% rise is good news.
Below: what goes into one, a template you can copy into a doc or a spreadsheet, two illustrative examples, and the cadence that keeps it useful.
Why most KPI reports don’t get acted on
Search for “KPI report template” and many of the top results are template galleries and design tools: a cover page, a summary, then a section per channel or topic. They look complete, yet rarely answer the reader’s question: are we on track, and does anything need to change?
Three things usually go missing:
- Targets. A report that compares this month with last month shows direction, not performance. Down 4% can be fine if the target allowed for a seasonal dip.
- Status rules decided in advance. If “at risk” is a judgment call made while writing, the colour depends on the writer’s mood.
- A next step. A table of numbers hands the analysis back to the reader.
The format below works the same in a doc, a spreadsheet, Data Studio (formerly Looker Studio) or a Slack message.
What a KPI report should include
Five parts, in this order.
- The verdict. One or two sentences: are you on track for the goal this period, and what is the one thing to know?
- The scorecard. One row per KPI with target, actual, gap to target, change versus the previous period, and status. Five to seven rows. Which KPIs to pick is covered in the 10 marketing KPIs worth checking every week; this article is about the report around them.
- What moved and why. Only the rows that changed status or moved past your threshold. One short paragraph each, with the breakdown that explains it (the channel, the landing page, the campaign).
- Actions and decisions. What you are doing about it, who owns it, and any decision you need from the reader.
- Caveats. Tracking changes, holidays, campaigns that ended, and the processing delay: Google says GA4 data can take 24 to 48 hours to process, so a report pulled first thing Monday may undercount Sunday.
Structure the scorecard as a funnel: one goal KPI at the top (leads, sales or revenue), then the leading indicators that explain it (sessions by channel, key event rate, cost per key event). When the goal KPI goes red, the rows below it should already point to the cause. GA4 now calls the events that measure important actions “key events” (Google’s explanation), and “conversions” now refers to the Google Ads side, so the template uses key events.
A KPI report template you can copy
Copy the block below into a doc, an email or a Slack message. Everything in square brackets is a placeholder to replace with your own numbers.
KPI REPORT: [Client or site name], [period, e.g. October 2026]
Goal this period: [e.g. 120 qualified leads]
Overall status: [On track / At risk / Off track]
VERDICT
[One or two sentences: where you stand against the goal and the one thing to know.]
SCORECARD
KPI | Target | Actual | vs target | vs prev. period | Status
[Goal KPI, e.g. leads] | [ ] | [ ] | [ ]% | [ ]% | [ ]
[Sessions, paid search] | [ ] | [ ] | [ ]% | [ ]% | [ ]
[Sessions, organic] | [ ] | [ ] | [ ]% | [ ]% | [ ]
[Key event rate] | [ ] | [ ] | [ ] pts | [ ] pts | [ ]
[Cost per key event] | [ ] | [ ] | [ ]% | [ ]% | [ ]
WHAT MOVED AND WHY
- [KPI]: [what changed, the breakdown that explains it, confidence level]
ACTIONS
- [Action], owner [name], by [date]
DECISION NEEDED
- [The one question for the reader, or "None this period"]
CAVEATS
- [Tracking changes, holidays, data delays, ended campaigns]
Status rules to agree before the first report
Write these down once and reuse them every period. The thresholds below are a starting point, not a standard: tighten them for stable KPIs, loosen them for small numbers.
| Status | Rule (example thresholds) |
|---|---|
| On track | At or above target, or less than 5% below it |
| At risk | 5% to 15% below target |
| Off track | More than 15% below target, or at risk two periods in a row |
For KPIs where lower is better, such as cost per key event, flip the comparison. For rates, apply the thresholds to the relative gap: 0.9% against a 1.1% target is 18% below, even though it shows as -0.2 pts.
Pace the target if you report mid-period
A weekly check against a monthly target needs pacing, otherwise every Monday looks off track. Compare the month-to-date actual with the share of the month that has passed. In Google Sheets, with the month-to-date actual in B2 and the monthly target in C2, this formula returns the pace through yesterday (1 means exactly on pace; it stays blank on the 1st, when no full day has passed yet):
=IFERROR(B2/(C2*(DAY(TODAY())-1)/DAY(EOMONTH(TODAY(),0))),"")
Then colour the status cells with conditional formatting (Format, then Conditional formatting, then “Custom formula is”), using the thresholds from your table. If you build the report in Data Studio instead, a scorecard chart can show the change versus the previous period or the previous year through its comparison date range, but the target and status logic is still yours to add.
KPI report examples
The two examples below are illustrative. The site, client and every number are made up to show the format; none comes from a real account.
Example 1: a monthly KPI report for a services site (solo)
KPI report, September (illustrative). Goal: 60 quote requests. Overall status: at risk.
Verdict: 53 quote requests, 12% below target. Traffic hit its target; the shortfall comes from the quote form converting less on mobile since the 9 September redesign.
KPI Target Actual vs target vs August Status Quote requests 60 53 -12% -7% At risk Sessions, organic 4,000 4,150 +4% +6% On track Sessions, paid search 1,500 1,480 -1% +2% On track Key event rate 1.1% 0.9% -0.2 pts -0.2 pts Off track What moved: the key event rate on mobile landing sessions roughly halved after the redesign, while desktop held. Action: restore the short form on mobile by 6 October. Caveat: the last two days of the month were pulled before GA4 finished processing.
Note what the target column does here. Without it, quote requests down 7% while traffic grew reads like a minor dip. With it, the goal is at risk, both traffic rows are on track, and the one off-track row, key event rate, points straight at the form.
Example 2: a monthly KPI report for an agency client
KPI report for the client, September (illustrative). Goal: 250 demo requests. Overall status: on track.
Verdict: 262 demo requests, 5% above target, but paid social is getting more expensive per request and will miss its cost target again in October unless the creative changes.
KPI Target Actual vs target vs August Status Demo requests 250 262 +5% +9% On track Sessions, paid social 8,000 9,100 +14% +31% On track Sessions, paid search 5,000 4,800 -4% +1% On track Cost per demo request, paid social $90 $104 16% over +22% Off track What moved: paid social sessions grew faster than demo requests from that channel, so each request costs more. Action: two new creatives live by 7 October. Decision needed: approve moving 10% of the paid social budget to paid search for October if cost per request is still above $95 after two weeks.
The goal is green, and the report still leads with the problem. That is the point of a KPI report: it shows the red row before it turns the goal red.
How often to send a KPI report
| Rhythm | What it covers | Length |
|---|---|---|
| Weekly | Leading indicators against paced targets, anything that changed status | A few lines |
| Monthly | The full scorecard against targets, actions, decisions | One page |
| Quarterly | Whether the targets and the KPI list still fit the goal | A meeting |
Goal KPIs such as leads are often too small to read week to week; leading indicators are not, so the weekly version catches a problem while the month can still be saved. The client reporting guide goes deeper on combining weekly and monthly rhythms, and the Google Analytics report guide covers which GA4 reports to pull each number from.
For delivery, GA4 can email a scheduled report as a PDF or CSV (administrators only, sent to people or groups with access to the property), and Data Studio’s scheduled delivery sends a PDF to up to 50 addresses, or, with Data Studio Pro, posts it to Slack. Neither writes the verdict for you.
If you report KPIs to clients
Agree the KPI list, the targets and the status rules with the client at kickoff, in writing, and keep the same format every month so they learn where to look. Put the decision you need at the top of the email. If a KPI goes off track mid-month, tell the client that week instead of saving it for the report: a client who hears about a problem from you first trusts the next report more. Many clients never read past the first screen, which is why short written updates beat long reports.
If the KPI report is for you
You do not need a branded document. A spreadsheet with the scorecard, a status column and a notes column is enough, as long as you set the targets before the month starts rather than after. Keep it to the KPIs you can act on alone; four rows you update every Monday beat ten you abandon in November. If you have no targets yet, use the last three months as a baseline, and check it against GA4’s peer benchmarks, which show the median, 25th and 75th percentiles for properties in your industry category.
Where Dialytics fits
The scorecard is quick to fill in. The slow part is the weekly “what moved and why” paragraph, and noticing a leading indicator going wrong before the monthly report.
Dialytics, our product, covers that part for GA4. It posts a digest to a Slack channel every Monday at 8am (Paris time) with what moved, the likely reason and the one point worth your attention, and on any day it sends at most one alert, only when yesterday is unusual for that weekday. You can ask a follow-up by mentioning the bot in the thread. Agencies can connect each client’s GA4 property and route each digest to that client’s own Slack channel from one account (how agency mode works). It does not hold your targets or fill in the status column: the scorecard above stays yours, and the digest feeds the paragraph under it.
Frequently asked questions
What is the difference between a KPI report and a dashboard?
A dashboard shows numbers live, for whoever opens it. A KPI report is sent on a schedule, compares a short list of KPIs with targets agreed in advance, and says what happens next. The dashboard is where you dig; the report is where someone reads the verdict and makes a decision.
How many KPIs should a marketing KPI report have?
Five to seven is enough for most marketing teams and most clients. One goal KPI at the top, then the leading indicators that explain it, such as sessions by channel, key event rate and cost per key event. If a number has no target and nobody acts when it moves, it belongs in the dashboard.
How do you set targets for a KPI report if you have none?
Start from your own history. Take the average of the last three months for each KPI, then set the target as a realistic change from that baseline, tied to the work planned. GA4 peer benchmarks are a useful sanity check, but your own trend is the fairer reference for one site.
Should a KPI report be weekly or monthly?
Both, at different depths. A short weekly check on leading indicators catches problems while they can still be fixed. The full KPI report against targets works monthly, when there is enough data for goal KPIs such as leads or revenue to mean something. Targets themselves are reviewed quarterly.