---
title: "How we keep our own score"
description: "The platforms count the results of the ads they sell. Part 10 of Who Keeps Score, the last: the rules we use to grade ads and write reports so that a platform's number never becomes the verdict on its own."
section: Playbooks
author: David Steel
published: 2026-10-24T12:16:04.549Z
url: https://www.sneeze.it/blog/how-we-keep-our-own-score
tags: ["who-keeps-score", "cost-per-lead", "reporting", "measurement"]
---

# How we keep our own score

_The platforms count the results of the ads they sell. Part 10 of Who Keeps Score, the last: the rules we use to grade ads and write reports so that a platform's number never becomes the verdict on its own._

For nine parts we have looked at how the companies that sell the ads also run the inbox, the phone, the search results and the scoreboard. In [Part 1](/blog/amazon-stopped-saying-what-you-bought) Amazon stopped naming products in its emails. In [Part 8](/blog/the-platform-grades-its-own-homework) Google described some of its conversions as predictions. In [Part 9](/blog/three-companies-take-most-of-the-ad-money) we saw how much of the ad money three companies take.

Fair question for an agency that buys on those platforms every day: how do we keep score? This part answers with what we have already published about our own work, and nothing beyond it. Every rule below is in a live post you can read in full.

## Two grades for every ad

We have run over 18,920 Meta ads, and we graded every one of them. 1,175 became winners, which is 6.2%. A winner, in our grading, is an ad that spent at least 10 times its own account's median ad and at least $500. Put plainly, a winner is an ad Meta chose to spend real money on.

Then we asked a second question of those winners: did a lead from this ad cost less than the account's own average? For 47 of every 100, yes. For 53, no.

:::stats
18,920 | Meta ads graded
6.2% | became winners
47 of 100 | winners beat their own account's cost per lead
source: [Creative Benchmarks](https://benchmark.sneeze.it)
:::

So we stopped treating Meta's spend as the verdict. Every ad now gets two grades. The first is Meta's pick: how much of the budget it got. The second is ours: what a lead from it cost against the same account's average for the same dates. In Studio, our creative tool, that second grade is strong, weak or thin. Strong means at least three leads at or under the account's cost per lead. Thin means there is not enough evidence either way, and it says so. The full method is in [We judge ads by cost per lead, not by what Meta chose to spend](/blog/we-judge-ads-by-cost-per-lead), and the do-it-yourself version is [Grade every ad twice](/blog/grade-every-ad-twice).

:::compare "Graded by spend alone" "Graded by spend and cost per lead"
The ad Meta spent the most on is called the best ad. The team makes more like it. Roughly half the time, that means making more of an ad whose leads cost more than average.
---
Every winner is checked against the account's own cost per lead. The team copies winners that also brought cheap leads, and treats an expensive winner as a warning, not a template.
:::

It is the monthly reconciliation from Part 8, applied one ad at a time.

## Reading the number without fooling ourselves

A second grade is only honest if the arithmetic is. In [Reading cost per lead without fooling yourself](/blog/reading-cost-per-lead-without-fooling-yourself) we set out three habits we hold ourselves to.

First, compare to your own average. A label average pools many accounts and tells you what kinds of ads tended to cost less. Your account average tells you what a lead costs you. We use label averages to decide what to try, and the account average to decide what to keep.

Second, pool before you summarize. Add up spend and leads, then divide. Never average a column of cost-per-lead figures, because a tiny ad would count as much as a big one.

Third, set a lead floor before you look, because a few leads is noise. Decide the minimum before you see the results, so the rule cannot bend toward the answer you wanted. We also check that the leads are leads: that the result column counts real form fills or bookings.

Grades also expire. In Studio, if the newest read of a client's results is more than seven days old, it refuses to test a new ad against it and asks for a fresh read.

## Numbers an AI cannot make up

We use AI to write parts of our client reports in Coach. That raised a question every reader of this series should ask of any report: who made the numbers?

In Coach, code computes every figure from readings that actually answered, and hands the AI that list, which we call the fact sheet, and nothing else. The AI writes one short paragraph per finding. Then a checker reads the paragraph back and pulls out every numeral.

:::flow "How a paragraph gets into a report"
Readings | Every source is read; a source that did not answer contributes nothing
Fact sheet | Code computes each figure from the readings that answered
AI writes | One short paragraph per finding, using only the fact sheet
Checker | Any numeral not on the sheet, any banned word: rejected
Coach | A person reads and edits; the check runs again at send
:::

The line between rounding and inventing is drawn in code. $50.24 may be written as "about $50." It may not be written as "$48." If a paragraph fails twice, it is dropped, and the coach sees "To be written" instead of a smooth, wrong sentence.

:::pullquote
A gap is a visible hole. A hallucinated figure is not.
:::

The same gate runs again on the coach's edited text before every send, so a pasted-in figure from last month cannot slip through. The details are in [We let an AI write our client reports. It is not allowed to invent a number.](/blog/an-ai-that-cannot-invent-a-number)

## Reports that open with the truth

The last rule is about what a report says first. Coach no longer has a Wins section. In its place is a short block called Truth, three to five lines, each one a comparison that names where its numbers came from: the location against the brand's other locations, this period against the last, what booked and showed, what joined and what each join cost, and the single biggest problem.

Two rules in it echo this whole series. The network comparison appears only when there are at least three comparable locations in the same date window; with fewer, the line is left out rather than padded. And a number that could not be read says "Not measured this period," never 0. A zero is a claim that nothing happened, and "Not measured" admits we do not know. "Nothing broken this week" is allowed only when every source answered and none raised a finding. The reasoning is in [Why our client reports open with the truth, not a list of wins](/blog/truth-not-wins).

:::figure wide
![An agency desk with an open hand-kept ledger, a short pinned list of figures, a magnifying glass, and a small glowing magenta figure making one careful mark on the page beside a desk phone](/blog/media/e58422e66335479f7a3bfb5f.jpg)
The platform keeps one score. We keep another, and both go on the page.
:::

:::steps
1. Grade every ad twice
Meta's pick by share of spend, your pick by cost per lead against your own account average for the same dates.
2. Fix your yardstick and your lead floor first
Write down the period and the minimum number of leads before you look at a single ad.
3. Pool, then divide
For any group of ads, add spend and leads, then divide. Never average the averages.
4. Let only measured numbers into a report
Every figure traces to a source that answered. Anything that could not be read says "not measured."
5. Open with where things stand
Compare against your own other locations and last period, show bookings and joins beside leads, and name the biggest problem.
:::

None of this replaces the platforms. We still run the ads on them and use what they report. Their number just never sits alone on the page.

:::takeaways "If you take one thing from this series"
- Across over 18,920 Meta ads we graded, only 47 in 100 winners brought leads cheaper than their own account's average.
- Grade every ad twice: once for what the platform backed, once for what a lead cost you.
- Compare to your own average, pool before you summarize, and set a lead floor before you look.
- A report should never carry a number nobody measured. "Not measured" beats a guess, and a gap beats a smooth wrong sentence.
- The first line of a report should be where things stand, compared with something fair.
:::

:::cta
Want to see your own accounts graded twice?
Book a walkthrough, and we will show you what your numbers say when the platform is not the only one keeping score.
:::

---

#### Sources

- Sneeze It, "We judge ads by cost per lead, not by what Meta chose to spend." [sneeze.it](https://www.sneeze.it/blog/we-judge-ads-by-cost-per-lead)
- Sneeze It, "Grade every ad twice: once for Meta's pick, once for yours." [sneeze.it](https://www.sneeze.it/blog/grade-every-ad-twice)
- Sneeze It, "Reading cost per lead without fooling yourself." [sneeze.it](https://www.sneeze.it/blog/reading-cost-per-lead-without-fooling-yourself)
- Sneeze It, "We let an AI write our client reports. It is not allowed to invent a number." [sneeze.it](https://www.sneeze.it/blog/an-ai-that-cannot-invent-a-number)
- Sneeze It, "Why our client reports open with the truth, not a list of wins." [sneeze.it](https://www.sneeze.it/blog/truth-not-wins)
- Sneeze It, Creative Benchmarks. [benchmark.sneeze.it](https://benchmark.sneeze.it)
