CPM is the number most TV and radio is bought on. It is also the number least connected to whether the advertising worked. This guide explains what TV CPM is, how it is calculated, why it moves around so much, and why the advertisers who get the most out of linear media have stopped optimizing on it.
What CPM means
CPM is cost per thousand impressions: what you pay for a thousand people to see your spot, on paper. The M is the Roman numeral for a thousand.
CPM = (cost of the spot ÷ estimated impressions) × 1,000
A spot that costs $2,000 and is estimated to reach 400,000 viewers has a CPM of $5. A $30,000 spot estimated at 3,000,000 viewers has a CPM of $10. On that basis the first spot looks like the better deal, and that comparison is how most media plans are built.
How the impressions are estimated
The "impressions" in a TV or radio CPM are not a count. Nobody is tallying who watched or listened. They are an estimate, projected from a measured panel or metered sample onto the population, then sliced by program, daypart and demographic.
That has three consequences:
- Estimates vary by source. Two rating providers, or the same provider a month apart, will give different impressions for the same airing, so the same spot has a different CPM depending on who you ask.
- Small markets and small networks are the least reliable. The sample behind a local cable daypart at 2 a.m. is tiny, so its impressions, and therefore its CPM, are close to a guess.
- The estimate is about eyeballs, not attention or intent. A cheap CPM on a channel where nobody is listening to the ads is not cheap.
Typical TV CPMs
CPMs range widely: overnight local cable can be in the low single digits, while prime-time national broadcast can run into the tens of dollars and higher. Rates change with season, market, demographic and negotiation, and published averages go stale quickly, so treat any single benchmark as a rough guide rather than a target.
The more important point is that a low CPM is not a goal. It is a price. Whether it was a good price depends on what the spot did.
Why CPM is the wrong number to optimize on
The trouble with buying on CPM is that it measures cost against an estimated audience, not against a result. In practice:
- Same impressions, different outcomes. Two brands running the same spot length in the same program get the same CPM and very different response, because their offers, creative and audiences differ. The CPM cannot see that.
- The estimate is often wrong exactly where you are hunting for value. The bargains in a plan are usually the small stations and off-peak dayparts, and that is where the impressions are least reliable.
- Make-goods distort the comparison. When a station runs a spot late or misses the audience it promised, it makes good with free airings. A new advertiser often gets a lot of them. The cost per response looks excellent, the seller keeps the business, then the bonus media stops and results fall off. A plan judged on CPM never sees this happening.
- It rewards the wrong buying. Optimizing for a lower CPM pushes budget toward whatever is cheapest per estimated viewer, which is not the same thing as whatever produces customers.
What to measure instead: cost per response
Every spot has a cost, and every spot airs at a known minute in a known market. Line that up against what actually happened on your website, your phones and your orders in the minutes after, compare it with what would normally have happened, and you get a response for that spot: incremental visits, new users, calls, leads or purchases.
Divide cost by response and you have the numbers that matter:
- Cost per session or cost per new user, for top-of-funnel
- Cost per lead or cost per call, for direct response
- Cost per purchase, for e-commerce
Unlike CPM, these are measured, not estimated; they are specific to your brand; and they can be cut by station, program, daypart, day of week, creative and market. That turns the weekly question from "did we get a good rate?" into "which airings paid for themselves, and which did not?"
What that looks like in practice
Measured this way, plans tend to reshuffle. It is common to find that 20–30% of a schedule is producing almost nothing, and that something else is quietly outperforming. Often it is the inexpensive station whose small, steady lifts add up, not the expensive marquee spot whose spike is visible on the chart but not worth its price. Buyers can resist this, because it contradicts the CPM logic they bought on. The data is usually persuasive over a few weeks.
Keep using CPM for what it is good for: a shorthand for negotiating rates. Stop using it as a proxy for performance.
Common questions
Is a lower TV CPM always better?
No. A lower CPM means you paid less per estimated viewer. It says nothing about whether those viewers responded. Judge airings on cost per response.
How is TV CPM different from digital CPM?
Digital impressions are counted by the ad server, so the number is at least a real count of ad loads. TV and radio impressions are projections from a sample. Both share the bigger problem: an impression is not a result.
Can I calculate cost per response without a pixel?
Yes. Response is measured from your existing Google Analytics 4 data, matched by time and market to your airing logs, plus your call or order data if you have it. Nothing needs to be installed.
What about CPP (cost per point)?
Cost per rating point is the same idea with a different denominator: cost divided by the estimated percentage of a target audience reached. It has the same weakness, because the rating is also an estimate, and it also does not measure response.
Getting started
Quality Analytics has measured linear TV and radio response for advertisers and agencies since 2014, across hundreds of campaigns and hundreds of millions of dollars of media. Give us read-only access to Google Analytics 4 and your postlogs, and you will see cost per response for every airing, by station, daypart and creative, with a first report the next business day. We run up to a month of your airings before you pay anything; plans start at $399 a month, month-to-month. Book a demo to see it on your own data.