July 29, 2026 · 5 min read

Your Client Report Is Only as Honest as Your Tags

Agency dashboards make weak data look authoritative. Here's the tagging layer underneath a client report, and a 20-minute audit to run before you send it.

utm agency analytics

The slide that loses the account

Monthly review. The agency put a clean dashboard on screen. Paid social, the channel this client hired them to run, shows 6 conversions for the month. Direct traffic shows 380.

The client does the arithmetic everyone does in that moment and asks what exactly they're paying for.

Nobody in the room is lying. The dashboard is reporting precisely what it was given. The problem sits a layer below the chart, where a checkout flow, a link somebody shortened by hand, and a client-side developer who added a redirect in April have all been quietly stripping campaign parameters for months.

Dashboards launder bad data

This is the uncomfortable thing about agency reporting tools. AgencyAnalytics, Swydo, Improvado and the rest are good at what they do, and what they do is present whatever arrives with total confidence. A bar chart built from broken attribution looks exactly like a bar chart built from clean attribution. Same fonts. Same authority.

There's no warning light for "this channel's numbers are structurally understated." The tool can't know. It sees rows, it draws bars.

So the presentation quality of a client report tells you nothing whatsoever about whether the report is true, and agencies compete hard on presentation quality. I've watched teams spend a week on report design and zero hours on whether the underlying tags survived the quarter.

Why agencies break differently than in-house teams

An in-house team tagging its own campaigns has one hard problem: getting everyone to follow a convention. Agencies have that problem plus four others, and most tagging advice is written for the in-house version.

You don't own the site. The client's developer can add a redirect, change a checkout provider, or drop a consent banner without telling you. Your attribution changes shape and nobody sends an email about it.

You're not the only one tagging. The client's email vendor tags sends its own way. The SEO freelancer tags a few things. Somebody in the client's marketing team has been hand-typing utm_medium=Social with a capital S since 2023. All of it lands in the same property as your carefully structured paid tags.

You inherit history. Take over an account and you take over years of prior tagging, usually undocumented, often contradictory. Your first clean month sits in a dataset where the same channel has four different medium values across its history.

Your naming outlives the engagement. Whatever taxonomy you set up gets handed back when the contract ends. That's a real argument for boring, self-explanatory conventions over clever internal shorthand, and I'd take that trade every time.

Our UTM naming conventions post has the rules themselves. What changes for agencies is enforcement, because you can't enforce a convention on people who don't work for you. You can only detect when it's been broken, and that's why the audit below matters more than the standard.

The 20-minute audit before the report goes out

Run this monthly, before the deck gets built rather than after a client asks a hard question.

  • Pull the medium values as a raw list. Not the channel grouping, the actual utm_medium strings. If you see paid, Paid, cpc, ppc and paid-social all present, your channel report is fiction and the fix is a rule in GA4, not a slide.
  • Check the direct share against last month. A jump of ten points or more means something broke, not that word of mouth improved. Direct traffic is a symptom, and it's the single most reliable smoke alarm you have.
  • Click one live link per channel. Actually click it. Watch the address bar through every redirect and confirm the parameters are still there when the page settles. This finds more problems than any tool, and it takes four minutes.
  • Test one conversion path end to end. Especially anything that hands off to a payment provider, because checkout is where parameters go to die.
  • Ask what changed on the client's site. Boring question, asked monthly, catches the April redirect in April.

None of that's sophisticated. It's a fire drill, and the value is entirely in doing it on a schedule instead of doing it forensically after the relationship has gone cold.

Report the unknown as a number

Here's the position I'd argue for: put the unattributed share in the report, explicitly, every month.

Most agencies bury it. Direct traffic gets folded into a chart and never discussed, because naming it feels like admitting you can't measure your own work. I think that's backwards. A client who's told "18% of conversions can't be traced to a source, here's why and here's what we're doing about it" learns that you understand your instruments. Honestly, a client who discovers it themselves, mid-review, learns something much worse.

It also inoculates you. When the direct share moves next quarter, you've already established it as a metric under management rather than an embarrassment to explain away.

The agencies I've seen keep clients longest aren't the ones with the prettiest dashboards. They're the ones who can say, out loud and without flinching, exactly how much of the picture they can see and how much they can't. Self-reported attribution is one honest way to fill part of that gap, and asking buyers directly beats pretending the model caught everything.

Fix the tagging layer and the report gets easier to defend. Skip it and you're presenting confident charts built on data you've never verified, which works right up until the month it doesn't.

← All posts