Kratly
Growth playbooks

How to prove marketing ROI to clients with revenue, not reports

How to prove marketing ROI to clients: get access to their Stripe or Shopify revenue, agree one formula at kickoff, send one scoreboard and test for lift.

Priyansh KumarUpdated October 22, 202611 min read
A thick agency report crossed out next to a one-page revenue scoreboard from the client's own payments

Short answer

To prove marketing ROI to clients, measure it in the client's own revenue system. Get read access to their Stripe, Shopify or CRM. Agree one ROI formula at kickoff, using gross margin. Send one monthly scoreboard tied to paid revenue. Run a lift test each quarter so you can show what the ads added.

Composite example: a six-person PPC agency runs Google and Meta ads for 14 online stores. This is an illustration, not a real agency. One client's Google Ads account shows a 6x return on ad spend. Its Shopify revenue is flat for the quarter. The founder asks which number is true. The agency can't answer. Two months later, the client leaves.

This playbook shows how to prove marketing ROI to clients at each agency size. It's part of our growth playbooks by business type.

What size is your agency, and what breaks next?#

Marketing ROI is the profit a client earns from marketing, minus what the marketing cost, divided by that cost.

Clients leave when they can't see that profit. In Setup's 2025 Marketing Relationship Survey, 48% of clients named delivery dissatisfaction as the top reason they ended an agency relationship. Agencies ranked that reason seventh (Everything PR summary of Setup's survey). An older SoDA report found 37% of both clients and agencies cited pricing or value (B&T, June 2016).

Focus Digital, an agency, reports 49% annual client churn for PPC work in 2026, without a published sample size (Focus Digital).

StageClients (team)What's trueWhat breaks next
1. Solo or freelance1–5 (1–2 people)You know each client's business by heart. Reports are screenshots and a call.You lose a client and can't show what you added.
2. Small agency5–15 (3–8 people)Account managers own reporting. Each client gets a long deck built by hand.Reporting eats 10–20% of hours. Nobody checks revenue.
3. Growing agency15–40 (8–25 people)Templates and a dashboard tool. Clients compare your numbers with their own books.Platform ROAS and client revenue disagree, and trust breaks.
4. Scaled agency40+ (25+ people)Specialists by channel. Pitches compete on price.Churn eats new sales. Clients ask for fees tied to results.

The hours share in stage 2 is my estimate, not a benchmark.

Four steps showing agency stages by client count, with the main reporting problem at each
As the client list grows, the risk shifts from losing one client to losing trust across the book.

The five moves that matter most#

These are in the order I'd make them. The costs are my estimates.

1. Put revenue access in the contract#

Ask for read access to revenue on day one, and write it into the contract.

  • Google Ads: link the client account to your manager account. The client's history stays intact, and linking doesn't give you admin ownership by default (Google Ads Help).
  • Stripe: ask for the View Only role. It can view payments and customers and export reports. It can't refund or move money (Stripe docs).
  • Shopify: request collaborator access. Since December 2023, partners need the store's request code to ask (Shopify changelog).
  • Offline sales: for lead-gen clients, import closed deals into Google Ads. A click ID (GCLID) can be uploaded for up to 90 days after the click (Google Ads Help).

The full method is in SaaS marketing attribution: tie every campaign to real revenue.

  • Cost: one to two hours per client for access, plus a day of setup for tracking.
  • Time to revenue: none directly. It protects the renewal.

2. Agree one ROI formula at kickoff#

Write it down before the first campaign goes live:

Marketing ROI = (revenue from marketing × gross margin − marketing cost) ÷ marketing cost

Marketing cost includes your fee, because clients count it. Agree the attribution window and the source of truth, such as Shopify orders tagged to paid traffic.

Also agree break-even. For a store, break-even ROAS is 1 ÷ gross margin (Amazon Ads). At 40% margin, that's 2.5.

  • Cost: a 45-minute kickoff call and one page of notes.
  • Time to revenue: none. It stops arguments three months later.

3. Replace the deck with one scoreboard#

Send one page each month: new paying customers, new revenue, spend, cost per paying customer and ROI. Show each against last month and the target.

Review it with the client monthly. Borrow the agenda from the weekly growth review meeting: 30 minutes that move revenue.

  • Cost: a day to build the template. After that, about one hour per client per month.
  • Time to revenue: the first review often finds a campaign to cut.

4. Prove lift once a quarter#

Attribution says which campaign got credit, not whether the sale would have happened anyway.

Run one test per client per quarter, such as a geo split or a planned brand-search pause. Google's Conversion Lift needs a $5,000 minimum budget (Google Ads Help). It opened to Search and Performance Max as self-serve in October 2026 (Search Engine Land). The steps are in marketing incrementality test: did your change really work?

  • Cost: two to four hours to design, plus a short dip in results during a pause.
  • Time to revenue: four to six weeks per test. A cut to wasted spend shows up at once.

5. Tie part of your fee to revenue, with guardrails#

The ANA's 2022 survey found 41% of advertisers used performance incentives on top of fees. That was down from 48% in 2016 and 61% in 2013. Most marketers said they didn't know if incentives improved agency work (ANA). Focus Digital reports performance-based agencies keep clients about 30 months, against 56 for retainers (Focus Digital).

ModelUpsideRisk
Flat retainerSteady cash, simpleClient asks "what am I paying for?"
Percent of ad spendGrows with the accountRewards spending more, not earning more
Pure performance feeEasy to sellFights over credit; you carry risk you don't control
Retainer plus capped bonusShares upside, keeps cash flowNeeds a clean baseline and an agreed data source

I'd pick the last one. Pay a capped bonus on client revenue above a baseline. Exclude brand search unless a test proved it adds sales.

  • Cost: a contract change and a baseline from the prior 3–6 months.
  • Time to revenue: the first bonus lands after one full quarter.

What should you measure in client revenue?#

MetricFormulaWhere the data comes fromHealthy range (sourced)
Marketing ROI(Attributed revenue × gross margin − total marketing cost) ÷ total marketing costStripe or Shopify + your invoices + ad accountsAbove 0 means profit; set the target with the client
ROAS vs break-evenAttributed revenue ÷ ad spend, compared with 1 ÷ gross marginStripe or Shopify + ad accountsAbove break-even ROAS (Amazon Ads)
Cost per paying customerTotal marketing cost ÷ new paying customersAd accounts + Stripe, Shopify or CRMCompare by channel and with the client's margin
Incremental revenueRevenue in test group − revenue in control groupLift test or geo splitNo benchmark; report the range
Client retention (yours)Clients kept this year ÷ clients at start of yearYour own booksFocus Digital puts retainer churn at 18% a year (Focus Digital)

For SaaS clients, add CAC payback period.

One-page client scoreboard with new revenue, spend, cost per paying customer and ROI against target
One page, five numbers, all from the client's own revenue system.

What to stop doing#

Reporting platform ROAS as the result#

Platforms count conversions they touched, not sales they caused. In eBay's paid search study, pausing brand ads lost almost no traffic. Organic clicks recaptured 99.5% of it (NBER). Sooner or later, the client's own books will contradict a ROAS headline.

Sending 30-page decks#

Long decks eat hours and hide the one number the client cares about.

Starting work without revenue access#

Without revenue access, you'll report leads and hope. If a client won't share it, price that risk in, or walk away.

Buyers searching the brand often would have found the client anyway. Test before you claim it, using Should I bid on my brand name?

Promising performance fees without a baseline#

Without one, every seasonal spike becomes a fight over your bonus.

Some clients will still move work in-house, often because of their stage. See agency, in-house or AI growth team: who to hire at each stage.

How to do this in Kratly#

  1. Connect the client's ad accounts and revenue. Google Ads, Meta Ads, Stripe or Shopify, and website tracking connect today. LinkedIn, TikTok and Reddit Ads are coming soon. Until then, tag that traffic with UTMs and upload its spend as a CSV.
  2. See revenue by campaign, page and email. Kratly ties each paying customer to what brought them. You get cost per paying customer from the client's real payments.
  3. Review suggestions with the client. Kratly flags spend that brings no paying customers and suggests changes.
  4. Approve the changes you both agree on. Kratly makes them. Every change is logged and reversible, so the client can see what changed and when.

Questions, answered

How do you prove marketing ROI to clients?

Measure it in the client's own revenue system. Get read access to their Stripe, Shopify or CRM. Agree an ROI formula that uses gross margin and includes your fee. Report one page each month from that revenue, not from ad platforms. Once a quarter, run a lift test, such as a geo split, to show what the ads added.

What is the formula for marketing ROI?

Marketing ROI equals revenue from marketing times gross margin, minus total marketing cost, divided by total marketing cost. Include media, your agency fee and tools in the cost. A result above zero means the marketing made a profit. Agree the attribution window and data source with the client before the first campaign starts.

What should a monthly client report include?

One scoreboard. Show new paying customers, new revenue, spend, cost per paying customer and ROI, each against last month and the target. Pull revenue from the client's billing or store. Add a short list of changes you made and the test you're running. Put clicks and impressions in an appendix, if you include them at all.

Why do clients leave marketing agencies?

Mostly over delivery and value. Setup's 2025 survey found 48% of clients named delivery dissatisfaction as the top reason. Agencies ranked it seventh. A 2016 SoDA report found 37% of both sides cited pricing or value. The fix is to show value in money the client can check in their own books.

Should agencies charge performance-based fees?

A capped bonus on top of a retainer works better than a pure performance fee. Pure fees lead to fights over credit and put risk on you that you don't control. The ANA found most advertisers didn't know if incentives improved agency work. Tie any bonus to revenue above a written baseline, measured in the client's systems.

Written by

Priyansh Kumar

Priyansh Kumar has spent more than a decade in growth, scaling brands from 1 to 10 and from 10 to 100. He now builds Kratly, an autonomous growth team that ties every campaign, page and email to the revenue it brings.

Kratly on LinkedIn

Sources

Was this article useful?

Next step

Show clients revenue they can check.

Open the Kratly live demo and see revenue and cost per paying customer by campaign, built from Stripe and Shopify payments.