Your marketing report is lying if it hides these four rows
A practical scorecard for spotting reports that celebrate activity while hiding spend, revenue, and wasted budget.
Most bad agency reports are not technically false. They are incomplete in a very convenient direction.
The report shows reach, clicks, impressions, and maybe cost per click. It may even show lead volume. But if it does not put spend, revenue, efficiency, and action on the same page, it is not a decision tool. It is a performance story with the uncomfortable parts removed.
That is the difference between reporting that helps you run the business and reporting that helps the agency survive the call.
The four rows
Every useful paid media report needs four rows before it needs anything else.
| Row | What it answers | Why it matters |
|---|---|---|
| Spend | How much did we put in? | No result is meaningful without cost. |
| Revenue or qualified pipeline | What came out? | Leads are not enough if they do not become money. |
| Efficiency | What did each dollar do? | ROAS, CPA, CPL, or CAC tells you if scale is sane. |
| Action | What changes next? | Reports should change budget, creative, or targeting. |
If those rows are missing, the rest of the report is decoration.
A report should make one thing obvious: what to cut, what to keep, and what to test next.
This is why we wrote the only marketing metric that matters. The point is not that ROAS solves every business question. The point is that the report has to connect marketing activity to commercial output.
How the hiding works
The most common trick is category drift.
The campaign starts with a business goal: get more booked calls, sales, quotes, or orders. The monthly report slowly drifts into platform goals: more impressions, lower CPC, better engagement, improved quality score.
Those numbers can be useful, but only as diagnostics. They are not the result.
In the TikTok teardown, the useful number was not follower growth. The account did grow from zero to 6,000 followers, but the business win was clearer: about $14K in spend produced $104K+ in revenue, a 12.21x return on ad spend.
The follower count helped explain the system. It did not replace the system.
A clean report shape
Here is the minimum version we want to see when we audit an account.
| Campaign | Spend | Output | Efficiency | Decision |
|---|---|---|---|---|
| Brand search | $X | $Y revenue | Zx ROAS | Defend, cap waste |
| Nonbrand search | $X | Y qualified leads | $Z CPL | Split winners from research terms |
| Paid social prospecting | $X | $Y revenue | Zx ROAS | Scale only proven creative |
| Retargeting | $X | $Y revenue | Zx ROAS | Watch incrementality |
The actual rows change by business model. E-commerce wants revenue and ROAS. Local services often need qualified calls, booked appointments, close rate, and cost per booked job. B2B may need qualified pipeline and cost per sales accepted lead.
The principle does not change: cost and output belong in the same view.
Three questions for the next review
Ask these before the agency opens slide two:
- Which campaign made money this month?
- Which campaign wasted the most budget?
- What budget move are we making because of this report?
If the answer is vague, the report is not doing its job.
For a real example of what a diagnosis should reveal, read Issue #1 of the teardown series. That account was not short on data. It was short on decisions. The fix started when the report stopped treating every campaign as equally deserving of budget.
The practical standard
You do not need a complicated dashboard. You need a report that refuses to hide the tradeoff.
If spend went up and revenue went down, say it. If leads are cheaper but worse, say it. If a campaign looks profitable only because it is harvesting branded demand, say it.
That kind of reporting is less comfortable. It is also the only kind that helps a business owner decide what to do next.
Want us to pressure-test your current report? Book a free audit call. We will show you which rows are missing and what budget decisions the account is avoiding.