Agency & Service Business Marketing

Rollup Reporting for Agencies Running Many Ad Accounts

How agencies can roll up performance across dozens of client ad accounts without averaging away the truth: consistent metrics, ratio-of-totals math, and views that scale.


Agency rollup reporting sounds simple: put every client on one screen and see how the book is doing. In practice it’s where agency reporting most often goes wrong. Metrics mean different things in different accounts, ratios get averaged when they should be recomputed, one client’s three ad accounts show up as three clients, and the founder ends up making staffing decisions off a “blended CPL” that no single client would recognize.

This post is for agency owners and heads of performance who manage many ad accounts, often for clients selling on calls, and need a rollup that’s actually true. It covers what a rollup is for, the math mistake almost everyone makes, how to standardize metrics across clients, how to handle clients with multiple ad accounts, and how to build the views so they don’t collapse at 40 clients.

What a rollup is actually for

Before building anything, be clear about the questions a rollup answers. They’re different from client-level questions.

  • Which clients need attention this week? Spend pacing off plan, cost per booked call spiking, ROAS dropping below target.
  • How is the book performing overall? Total spend under management, total revenue attributed, blended efficiency.
  • Which strategies work across clients? Does a certain funnel type or offer structure consistently outperform?
  • Which media buyers are performing? Rolled up by owner rather than by client.
  • Where is churn risk? Clients whose numbers are trending the wrong way before they notice.

A rollup is a triage tool and a portfolio view. It doesn’t replace the client report. If your rollup tries to be both, it’ll be too detailed to scan and too shallow to diagnose.

The math mistake: averaging ratios

This is the single most common error in agency reporting, and it’s easy to miss because the numbers look plausible.

Say you manage three clients:

Client Spend Booked calls Cost per booked call
A $50,000 250 $200
B $5,000 10 $500
C $5,000 50 $100

The average of the three cost-per-call figures is ($200 + $500 + $100) ÷ 3 = $267. But the agency actually spent $60,000 to generate 310 booked calls, which is $194 per call. The average of ratios over-weights the small clients, so client B, with 8% of the spend, pulls the “agency number” up by about 37%.

The rule: for any ratio metric, the total row must be computed from the totals, not by averaging the client rows. Total spend ÷ total calls. Total revenue ÷ total spend. Total closes ÷ total shows. This applies to CPL, cost per call, ROAS, close rate, show rate, AOV, everything that’s a fraction.

There are rare cases where you want an unweighted average (for example, “how is the typical client doing, regardless of size”), but label it as that, and show it alongside the true total, never instead of it.

In Callix, the agency overview lets you build your own metrics this way. Under Configure columns, Create custom metric combines metrics with a formula, such as Ad Spend ÷ Applications for a cost per application, and adds it as a column worked out for every client. The Total row redoes the formula on the agency totals, so it shows total spend over total applications rather than an average of the clients.

Standardize metric definitions across clients

A rollup is only meaningful if “lead” means the same thing in every row. In most agencies it doesn’t. One client counts every form submission, another counts unique people, a third counts applications that passed a filter. One client’s “sale” is a deposit, another’s is paid in full.

Before building the rollup, write a short metric dictionary every account follows:

  • Lead: a unique person who submitted any opt-in or application form, counted once per period.
  • Booked call: a sales call scheduled, excluding reschedules of the same call.
  • Show: a booked call the prospect attended.
  • Close: a show that resulted in a payment.
  • Revenue: cash collected, gross of refunds, in the agency’s reporting currency (or net of refunds, but the same everywhere).
  • ROAS: revenue ÷ ad spend, both in the same currency.

Then for each client, map their events onto your definitions. If a client insists on counting deposits as sales in their own reports, fine, but in your rollup use your definition and keep a note.

Currency matters here too. If you manage clients billed in GBP, EUR and USD, totals across them are meaningless until converted. See reporting revenue across multiple currencies.

Clients with more than one ad account

Larger clients often run several ad accounts: one per brand, one per region, one for a legacy setup nobody wants to touch, or one owned by a previous agency that still runs a retargeting campaign. Some agencies also run a client’s spend through their own ad account. Getting this wrong double-counts or misses spend.

The structure you want:

  1. Client is the top level of the rollup.
  2. Ad accounts belong to exactly one client.
  3. Reports can be scoped to specific ad accounts when you need to isolate one brand or region, or exclude an account you don’t manage.

Scoping is important for honest reporting. If a client runs one account in-house and one with you, your performance should be judged on yours. In Callix, a report widget can be limited to specific ad accounts, so a client view can show only the accounts the agency runs, or a single brand’s account, without building a separate workspace.

What to put on the rollup

Keep it to one row per client and a small number of columns. A good default for agencies whose clients sell on calls:

Column Why
Spend (period) Size and pacing
Spend vs. plan Catches under- and over-spend
Leads Volume
Cost per lead Top-of-funnel efficiency
Booked calls The first real outcome
Cost per booked call The best early signal for call funnels
Show rate Lead quality and setter performance
Closes Outcome
Revenue Outcome
ROAS Efficiency
Change vs. previous period Trend at a glance

Add a few custom metrics that reflect your agency’s specific promise: cost per application if you sell application funnels, cost per qualified call if you run qualification, revenue per lead if you sell low-ticket front ends.

Sort by whatever triage question matters this week. Sorting by “change in cost per booked call vs. last period” is often more useful than sorting by spend.

Building client views that scale

At five clients you can build every dashboard by hand. At 40 you can’t. Three habits make the difference:

Templates. Build the client dashboard once, with the metrics from your dictionary, and start every new client’s view from it. When you improve the template, roll it out. In Callix, an agency can save a dashboard view as a template and start a new view from it in any client account, and the agency’s templates appear at the top of the template gallery in client accounts.

Same names everywhere. Use identical metric and widget names across clients so anyone on the team can open any account and know where to look.

Automated delivery. Schedule the weekly client report rather than assembling it by hand. See automating reporting so you’re not building decks manually.

A weekly rollup routine

A rollup is only useful if someone uses it on a schedule. A routine that works for many agencies:

  1. Monday morning, 20 minutes: the founder or head of performance scans the rollup sorted by week-over-week change in cost per booked call and ROAS. Flag anything outside a set threshold, such as cost per call up more than 25%.
  2. Monday, owner check-ins: each flagged client goes to its media buyer with a question, not an instruction: “What changed?”
  3. Midweek: pacing check on spend vs. plan.
  4. Monthly: look at the rollup by media buyer and by funnel type to spot patterns across clients.
  5. Quarterly: review the metric dictionary. Add or retire custom metrics.

A worked example

Say you run 24 clients. In the Monday rollup, total spend is $410,000 for the month to date, up 6%, and total cost per booked call is $182, roughly flat. That looks fine. Sorted by change, though, three clients jump out: one’s cost per call is up 48%, one’s show rate fell from 71% to 52%, and one is 30% behind on spend. The flat total was hiding them. The first turns out to be creative fatigue, the second a calendar integration that stopped sending reminders, and the third a payment method failure on the ad account. Three problems found in 20 minutes, none visible in the agency-level number.

Data access for the team and for AI tools

As an agency grows, more people need the rollup and fewer of them should see everything. Restrict client data by role where your tools allow it, so a contractor media buyer sees only their clients.

Increasingly, agencies also want to query the whole book from an AI assistant or pull it into their own reporting. If you go that route, make sure access is scoped per client: one key or connector that covers all clients is convenient, but every request should name the client it works on, and you should be able to limit a key to selected clients. Protocols like MCP make this kind of cross-client querying practical.

The bottom line

A good agency rollup is a short, consistent, mathematically honest table: one row per client, the same definitions in every row, ratios computed from totals, spend scoped to the accounts you actually run, and a routine that uses it every week. Get those right and the rollup becomes the fastest way to find which clients need you today. For scaling the rest of the agency’s operations, see how Callix approaches scaling paid acquisition.

Book a demo