How to measure the ROI of hiring a marketing agency, and what to do if the numbers disappoint
In this article 10 sections
Hiring a marketing agency is easy to justify at the start and hard to judge three months later. The monthly report shows impressions, clicks and a ROAS number, but the founder's question is simpler: is my business better off for paying them? This guide explains how to measure the return on an agency honestly, what to track from day one, a 90-day scorecard and what to do if the numbers disappoint.
Why simple ROI misleads
The usual shortcut is to divide revenue from ads by what you spent. It ignores four things:
- Costs between revenue and profit, such as product cost, shipping, fees and returns.
- The agency fee, which is part of the cost of getting those sales.
- Sales you would have made anyway, such as brand searches and repeat customers.
- What changed at the same time, including seasonality, promotions, pricing and product launches.
So the honest question is not "how much revenue did the ads report?" It is "how much extra profit did we make, after every cost including the fee, compared with what would have happened without the agency?"
Measure profit, not revenue
Use contribution profit: sales minus the costs that rise with every order. If you are not sure how to calculate it, start with our guide to ROAS, CAC and payback and the free break-even ROAS calculator. Then track these together:
| Metric | What it tells you | Watch out for |
|---|---|---|
| Net profit after ad spend and fee | Whether marketing is making money overall | Needs honest margin data |
| Blended ROAS (MER) | Total revenue divided by total marketing spend, across all channels | Does not show which channel worked |
| Cost to win a new customer (CAC) | What a genuinely new buyer costs | Platforms often count existing customers |
| Payback period | How fast a customer's profit covers their acquisition cost | Needs repeat-purchase data |
| New customer share | Whether growth comes from new people, not retargeting the same ones | Requires tracking from your own store data |
A worked example
The numbers below are illustrative. Assume a 40% contribution margin, so each 100 of revenue leaves 40 after product, shipping and fee costs.
| Per month | Before the agency | After 90 days |
|---|---|---|
| Ad spend | 10,000 | 12,000 |
| Revenue from ads | 30,000 | 54,000 |
| Contribution profit (40%) | 12,000 | 21,600 |
| Less ad spend | -10,000 | -12,000 |
| Less agency fee | 0 | -3,000 |
| Net profit | 2,000 | 6,600 |
Net profit rose by 4,600 a month against a fee of 3,000, so the engagement is returning about 1.5 times its fee. That is a reasonable sign, but it is not proof. Before you credit all of it to the agency, check whether prices, promotions, seasonality or new products helped, and look at the trend over several months, not one.
Set the baseline before work starts
- Record at least the last three months of ad spend, revenue, new customers, ROAS, CAC and conversion rate.
- Write down the current margin per product or category.
- Check that tracking matches your store. If GA4 and the ad platforms disagree widely with your sales, fix that first or no measurement will be trustworthy. See our GA4 setup guide.
- Agree in writing which numbers define success and who supplies the data.
A 90-day scorecard
| Period | What the agency should deliver | How you judge it |
|---|---|---|
| Month 1: foundations | Tracking audit and fixes, accounts you own, a written plan with targets, first tests live | Does tracking now match your store data? Do you have a baseline and a plan you understand? |
| Month 2: testing | A steady rhythm of creative and audience tests, with results explained | Is cost per new customer moving in the right direction? Are you learning what works? |
| Month 3: scaling | Budget moved towards what works, retention channels planned | Net profit, blended ROAS and payback against baseline, with any outside changes noted |
Judge leading indicators early (tracking quality, test volume, cost per new customer) and profit later. An agency that only shows revenue and clicks in month one is hiding the numbers that matter.
Attribution traps that flatter the results
- Brand search and retargeting. They claim sales that were already coming. Separate brand from non-brand results.
- Platform self-reporting. Each platform credits itself. Check against your store's own order data.
- Promotions. A sale month will lift everything. Compare like with like.
- Returns and cancellations. Count net sales, not gross.
When you need stronger proof, run a simple test: pause a campaign type or a region for a short period and compare, or hold back a small audience group, and see what happens to total sales.
If the numbers disappoint
| Symptom | Likely cause | What to do |
|---|---|---|
| Platform ROAS is high but profit is flat | Margin is thin, or results are mostly brand and retargeting | Recalculate from margins and separate brand from non-brand |
| Cost per new customer is rising | Creative fatigue or too much budget too fast | Refresh creative and scale in smaller steps |
| Good traffic, few orders | Offer, price or landing page problem | Fix the page and offer before buying more traffic |
| Numbers cannot be verified | Tracking is broken or reports do not match your data | Fix tracking and reconcile with the store |
| Not enough data to learn from | Budget is too small for the channels used | Concentrate on one or two channels |
When to continue, fix or leave
- Continue if tracking is trustworthy, cost per new customer is improving and profit is moving in the right direction.
- Fix if the diagnosis points to your offer, product or data, because no agency can fully compensate for those.
- Leave if reports cannot be reconciled with your own data, the team cannot explain results or you do not own your accounts. A short notice period makes this decision easier. Our guide to choosing a performance marketing agency covers contract terms and account ownership.
How Growloom works with this
We start with tracking, set targets from your margins and report on net profit and payback, not just clicks. You own your accounts and there are no lock-in contracts, so you can check our work against your own numbers. See our analytics and tracking service, or ask for a free audit.
Frequently asked questions
How do you calculate the ROI of a marketing agency?
Compare net profit after all marketing costs, including ad spend and the agency fee, with a baseline from before the engagement. Divide the extra profit by the fee to see what each unit of fee returned, and account for other changes such as promotions and seasonality.
How long should I give an agency before judging results?
Judge leading indicators such as tracking quality and cost per new customer within the first two months, and profit and payback over three to six months. Short sales cycles can show results sooner, but a single month is rarely enough.
Is ROAS enough to measure an agency?
No. ROAS ignores costs between revenue and profit, the agency fee and sales that would have happened anyway. Use it alongside net profit, blended ROAS, cost per new customer and payback period.
What should I do if I cannot verify the agency's numbers?
Ask for access to the ad accounts and analytics you own, reconcile the reports with your store's order data and agree on one source of truth. If the numbers still cannot be explained, that is a reason to reconsider the relationship.
Sources and further reading
Want a second opinion on your marketing?
Get a free audit of where your budget is working and where it is leaking.
Get a free audit