PeakKR

client reporting ROI

Activity Metrics vs ROI in Client Reports: A Fix

Every agency has sent this report: 14 tasks completed, 6 blog posts published, 41 hours logged, 12 technical fixes shipped, average position up 2.4 places. The client reads it, says "great, thanks," and three months later cancels because they "didn't see the value."

They saw the value. They just couldn't see the money. That gap — between what your team did and what the client earned — is the single biggest driver of avoidable churn in SEO and marketing retainers. This is a guide to closing it without pretending you have attribution certainty you don't have.

Why activity metrics feel safe and fail anyway

Activity metrics are seductive because they're defensible. You can prove you published nine articles. You cannot prove, with the same confidence, that those articles produced $38,000 in pipeline.

So agencies retreat to what they can prove. The result is a report that answers a question the client never asked. The CMO doesn't want to know whether you were busy — they assume you were, they're paying you. They want to know what to tell their CEO in the quarterly review.

Three specific failure modes show up again and again:

All three are technically accurate and commercially useless.

The three-tier model for client reporting ROI

The fix isn't dropping activity data. It's ordering it correctly. Structure every report in three tiers, top-down.

Tier 1: Outcome metrics (the money)

One to three numbers, maximum. Organic-attributed revenue or pipeline. Qualified leads from organic. Cost per acquisition versus their paid channel. If you're working on a lead-gen site with a 90-day sales cycle, this tier is pipeline value, not closed revenue — say so explicitly.

Example from a B2B SaaS retainer: "Organic contributed 31 demo requests in March (up from 19 in December). At your stated 22% demo-to-close rate and $14k ACV, that's roughly $95k in new pipeline. Our fee for the quarter was $18k."

That sentence does more work than forty rows of task data.

Tier 2: Leading indicators (the proof it's working)

Outcome metrics lag. Leading indicators are how you show progress in months one through five, before revenue moves. These are the metrics that reliably precede outcomes:

The trick is stating the causal chain out loud: "Indexed product pages went from 340 to 890. Those pages now generate 1,200 non-brand clicks a month. Those clicks convert at 2.1%, which is where the 25 extra leads came from." Each link is checkable. Together they form an argument, not a claim.

Tier 3: Activity (supporting evidence only)

Now you can list the work — but grouped by the outcome it served, not chronologically. "Technical: fixed 1,100 orphaned pages, which drove the indexation increase above." Activity becomes the footnote that proves the story, rather than the story itself.

Getting the revenue numbers when the client won't give them

The most common objection: "our client won't share revenue data." Sometimes true, more often untested. Three workarounds, in order of preference.

1. Agree proxy values at kickoff. Before work starts, ask three questions: average deal size, lead-to-close rate, and how long the sales cycle runs. Write the answers into the SOW. From then on you have a sanctioned formula for modelling value, and it's their numbers, not yours.

2. Use cost avoidance. If they run Google Ads, pull the CPC for the terms you now rank organically for. "The 4,100 non-brand clicks you got from organic last month would have cost $11,300 at your current average CPC." This is a modelled figure, not real revenue — label it as such — but finance teams understand it instantly.

3. Report on the client's own goal. Some clients genuinely don't have revenue attribution. Ask what number their CMO is measured on. Sometimes it's MQLs. Sometimes it's share of voice for a category launch. Report against that, even if it's not your preferred metric.

What you should never do is invent an attribution model and present it as fact. One overstated revenue claim that the client's analyst pulls apart costs you more credibility than six months of honest leading indicators.

Timing: don't promise ROI in month two

A large share of the activity-versus-ROI tension is really a timeline expectation problem. If the client expected revenue in month two and you're showing indexation improvements, the report will always feel thin — no matter how well written.

Set the phases at kickoff: months 1-2 are foundation (technical, content architecture), months 3-5 are leading indicators, months 6-9 are revenue attribution stabilising. Put that curve in writing and reference it in every report. Our guide on how to explain SEO timelines to impatient clients covers the specific language that lands with a sceptical stakeholder.

The same applies to in-flight work. A client watching a task list sees binary states — done or not done. A client looking at a hill chart sees that the content cluster has moved from "figuring it out" to "executing," which is genuinely more informative about when results will land.

The report format matters more than you think

A 14-page PDF arriving on the 8th of the month describing activity from the 1st to the 31st of the previous month is a bad product. By the time it's read, half of it is stale, and the client has already formed an opinion from whatever they checked in Search Console themselves.

Two structural changes help more than better charts:

Give clients continuous access to the work. When the client can see progress as it happens, the monthly report stops being the only evidence you exist. It becomes commentary on numbers they already trust. We've written about the mechanics of letting clients into your PM tool without exposing internal chatter or hourly rates — the setup matters, but the payoff is that reporting conversations get shorter and calmer.

Lead with a written narrative, not a dashboard. Five sentences at the top: what moved, why, what we're doing next, what we need from you, what risk we're watching. Then the numbers. A raw dashboard makes the client do the interpretation, and they will interpret it worse than you would.

If your current stack forces you to assemble this manually from four different tools, that's a tooling problem worth solving. Most generic PM platforms weren't built for retainer reporting — PeakKR handles time, phases, and client-facing overviews in one place, and the agency PM tool roundup compares the realistic alternatives if you're evaluating.

Connecting hours to outcomes internally

There's an internal version of this same gap. You know a retainer is profitable in aggregate, but not which workstream earns its keep.

Tag time entries by workstream — technical, content production, link acquisition, reporting, account management — and review quarterly. A pattern shows up in most agencies: reporting and account management consume 18-25% of retainer hours and produce zero client-visible outcome. That's not an argument for cutting it, but it is an argument for making it cheaper to produce.

Comparing hours-to-outcome by workstream also gives you the honest answer when a client asks to reallocate budget. "We spent 34 hours on link acquisition last quarter and it moved three target terms into the top 10 — those pages now drive 400 clicks a month" is a real answer. "We think links are important" is not.

When a retainer underperforms, run the diagnosis properly rather than adding more activity. A structured project autopsy usually finds the problem was targeting or timeline, not effort.

The checklist

Featured in this list? Grab your “Featured on PeakKR” badge and add it to your site — free.
Get your badge →

Frequently asked questions

What is the difference between activity metrics and ROI in client reports?

Activity metrics measure what your team did — blog posts published, links built, hours logged, fixes shipped. ROI measures what that work returned in money: pipeline, revenue, or cost avoided. Activity proves effort; ROI proves the retainer is worth renewing.

How do you calculate SEO ROI when the client won't share revenue data?

Use proxy values agreed in writing: an average deal size, a lead-to-close rate, and a value per qualified lead. Multiply organic conversions by that value and label it clearly as a modelled estimate. It's imperfect but far more persuasive than a rankings screenshot, and it forces a revenue conversation with the client early.

Which metrics should be in a monthly SEO client report?

Three tiers: outcome metrics (organic revenue or pipeline, qualified leads), leading indicators (non-brand clicks, conversions by landing page, indexed pages), and activity only as supporting evidence. Cap the report at one page of numbers plus commentary — long reports get skimmed, not read.

How long before SEO work shows measurable ROI?

For most mid-market sites, 3-5 months for leading indicators like non-brand impressions and clicks, and 6-9 months for revenue attribution to stabilise. Set that expectation in the kickoff and report leading indicators monthly so the client sees movement before the money shows up.

Nick Quirk

Written by Nick Quirk

Founder of PeakKR

Nick Quirk is the founder of PeakKR, the agency workspace. He has spent decades running SEO and operations for marketing agencies, and writes about what holds up in real client work: technical audits, reporting, local campaigns, retainers and the systems behind them.

Run your agency on PeakKR

Client projects with phases, time tracking, technical SEO audits, client-ready reporting and AI briefs — the workspace this blog is written from.

Start free

Keep reading