CampaignlyHelp
Reporting7 min readUpdated April 12, 2026

Knowing how to measure marketing ROI is the difference between clients who renew and clients who ghost you after three months. The formula looks simple on paper, but in practice there are attribution gaps, fuzzy cost accounting, and clients who confuse clicks with cash. This guide covers the core calculations, what benchmarks actually mean, how to present numbers clearly, and the mistakes that quietly undermine your reporting.


The Core ROI Formula (and What It Leaves Out)

The standard formula:

ROI (%) = ((Revenue from Campaign – Campaign Cost) / Campaign Cost) × 100

Example: You ran a Google Ads campaign that cost $2,000 and generated $8,000 in tracked revenue.

((8,000 – 2,000) / 2,000) × 100 = 300% ROI

Clean. But here's what the basic formula misses:

  • Your agency fees. If you charged $1,500 to manage that campaign, the real cost is $3,500 — and ROI drops to 129%.
  • Offline conversions. A plumber who gets 40% of calls from walk-ins won't show accurate revenue in Google Ads.
  • Time-to-close. A landscaping client with a 6-week sales cycle means last month's leads aren't last month's revenue.

Always agree on what counts as "cost" and "revenue" before you build a report. Put it in your onboarding documents.


ROAS vs. ROI: Use the Right Metric for the Right Conversation

Marketers often mix up ROAS and ROI. They measure different things.

| Metric | Formula | What It Tells You | |---|---|---| | ROAS | Revenue ÷ Ad Spend | Efficiency of the ad spend itself | | ROI | (Revenue – Total Cost) / Total Cost | True profitability including all costs | | Cost per Lead (CPL) | Total Spend ÷ Leads Generated | Volume and efficiency of lead gen | | Cost per Acquisition (CPA) | Total Spend ÷ Customers Acquired | What it costs to win a paying customer |

For most local clients, ROAS is the dashboard metric and ROI is the boardroom metric. Report ROAS month-to-month. Use ROI when you're making the case for a bigger budget or justifying your retainer.

A 4:1 ROAS (400%) is often cited as a baseline for Google Ads, but that number means nothing without knowing the client's gross margin. A restaurant with 20% margins needs a very different ROAS than a law firm billing $400/hour.


Benchmarks Worth Knowing (and How to Contextualize Them)

These are general starting points — not targets to paste into every client report.

| Channel | Average ROAS | Average CPA Range | |---|---|---| | Google Search Ads | 4:1 – 8:1 | $20–$150 (varies heavily by industry) | | Meta Ads (Lead Gen) | 3:1 – 6:1 | $15–$100 | | Local SEO | Hard to isolate | 6–18 month payoff window | | Email Marketing | 10:1 – 40:1 | Very low if list is owned |

The smarter move is building client-specific benchmarks. In month one, you're establishing the baseline. By month three, you're comparing against that baseline — not against some industry average your client found on Reddit.

When presenting benchmarks to clients, always add context: "Your CPA of $45 compares well against the industry average of $80 for home services in your region." That framing lands better than a raw number.


Common Pitfalls That Distort Your ROI Calculations

1. Counting leads instead of revenue

A lead is not revenue. If a roofing client closes 1 in 8 leads at an average job value of $6,000, each lead is worth $750 — but only in aggregate. Track close rate and average deal size so you can back-calculate what a lead is actually worth to that client.

2. Ignoring multi-touch attribution

A customer who clicked a Facebook ad in January, searched Google in February, and converted via organic in March didn't "come from SEO." Last-click attribution will make some channels look heroic and others useless. Use data-driven attribution in Google Ads where available, and be honest with clients about what you can and can't see.

3. Excluding your own fees

This one stings but it matters. If you're charging $2,000/month to manage a $1,500/month ad budget, the client's total marketing cost is $3,500. An ROI calculation that ignores your fee is technically misleading. Clients will figure this out — better that you show the full picture and defend your value than have them do the math themselves.

4. Measuring too early

Reporting ROI after four weeks on a campaign targeting 90-day purchase cycles is setting yourself up for a hard conversation. Set timeline expectations at the start and build your reporting cadence around the actual sales cycle.

5. Not tying metrics to client goals

A dentist's goal isn't "impressions." It's booked appointments. A contractor's goal isn't "sessions." It's quote requests. Every ROI report should connect back to the specific outcome the client cares about — and that means knowing what they care about before you build the first report.


How to Present ROI to Clients Without Losing Them

Most clients don't want a data dump. They want to know three things:

  1. Is my money working?
  2. Are we improving?
  3. What are we doing next?

Structure your reports around those questions. Lead with the headline number (revenue attributed, leads generated, cost per lead), then show the trend, then explain what you're changing.

Use plain language for the metrics: "For every $1 you spent on ads, you got $4.20 back in tracked revenue" hits harder than "your ROAS was 4.2."

When results are below target, own it. Explain the cause (new competitor, seasonal dip, tracking issue), what you've already adjusted, and what you expect to see next period. Clients don't expect perfection — they expect honesty and a plan.


If you want to build client reports that connect ad spend directly to tracked outcomes — with attribution data, trend comparisons, and goal tracking built in — Campaignly's reporting tools are built for exactly that workflow. Set up your ROI dashboards once and update them in minutes, not hours.

reportingmarketingguide

Ready to put this into practice?

Open Campaignly →