Free tool — runs in your browser

CPM calculator

Work out CPM from spend and impressions, or solve for either one instead. Shows the division it ran, and is precise that CPM prices a thousand impressions.

Solve for

Your numbers

Media cost for one campaign over one date range, from the delivery report rather than the invoice. Enter it in your own currency.

Times the ad was rendered, from the same report row and the same date range as the spend. Enter it a whole number.

CPM

$5.95

Every 1,000 impressions cost $5.95. That is the price of the exposure, before anybody clicked or bought anything.

The sum this ran

CPM = (Ad spend ÷ Impressions) × 1,000

Everything here runs in your browser. Nothing you type is uploaded, which matters when the inputs are spend, revenue and margin.

What CPM counts, and what it does not

CPM is cost per mille, and mille is a thousand impressions rather than a thousand people. An impression is one render of the ad, so a viewer served the same creative four times is counted four times and charged for four times. That single distinction is behind most arguments about whether a CPM was good.

  • Cost per thousand people reached is a different figure: spend divided by unique reach, times 1,000. It is always higher than CPM, and the gap is your frequency.
  • Viewable CPM, sometimes shown as vCPM, charges only for impressions that met a viewability standard, which is commonly half the pixels in view for one second on display and two seconds on video. A vCPM and a CPM from the same flight are not comparable numbers.
  • Programmatic reporting often quotes an effective CPM, or eCPM, which back-calculates a thousand-impression price from a campaign bought on clicks or actions. It is a comparison device, not a rate anybody bid.
  • CPM is an input price. It tells you what attention cost, and never whether the attention was worth buying.

The exact sums this page runs

One identity, arranged three ways. Pick the quantity you are missing and the page asks only for the other two, so the sum printed under the result is always the sum that produced it.

  • CPM = (Ad spend ÷ Impressions) × 1,000. The default arrangement: what you paid, per thousand times the ad was served.
  • Ad spend needed = (CPM × Impressions) ÷ 1,000. Budget an impression target: the arrangement a media plan with a rate card needs.
  • Impressions you can buy = (Ad spend ÷ CPM) × 1,000. The inverse most people arrive wanting: how much exposure a fixed budget actually buys.

Pulling spend and impressions from the same place

Almost every wrong CPM comes from two numbers that describe different things, rather than from the arithmetic. These steps get both figures onto the same basis before you divide.

  1. Fix one date range and apply it to both figures. A month of spend against a week of impressions is the most common way to produce a CPM four times too high.
  2. Take spend from the delivery report rather than the invoice. Invoices cover billing periods, and often carry taxes and platform fees the delivery report leaves out.
  3. Read impressions from the same report row, and check the column header. Meta shows impressions and reach side by side, and they are not interchangeable.
  4. Decide whether agency fees, creative production and tooling belong in the spend. Media-only CPM is the industry default; total-cost CPM is the truer number for a board. Whichever you pick, write it down beside the result.
  5. For video, confirm the buying basis. YouTube and TikTok both sell inventory on more than one basis, and only the impression-billed lines belong in a CPM.
  6. Split the result by placement before you act on it. A single blended CPM across Feed, Reels and Audience Network hides the placement that is actually setting your average.

When one CPM can be compared with another

A CPM is only meaningful against another CPM bought on similar inventory, in the same country, at a similar time of year. Outside those bounds the comparison mostly measures the auction rather than your work.

  • Auction prices rise sharply in the fourth quarter in most consumer markets, so a November CPM against a June CPM measures the calendar as much as the campaign.
  • Narrow targeting raises CPM by design. Paying twice as much per thousand to reach people who might actually buy is usually the correct trade, and a cheap CPM against the wrong audience is the most expensive thing in advertising.
  • Placement mix moves CPM more than creative does. Feed, in-stream video and off-platform display are different markets, and a blended average across them describes none of them.
  • A CPM cannot be compared against a CPC or a CPA at all. They price different events, and converting between them needs a click-through rate and a conversion rate you have actually measured.
The rest of the job

You just fixed one post. Now do the month.

The cpm calculator solves one piece of one post. OctoSpark plans, writes and schedules the whole calendar across every network you use, publishes it for you, and reports what actually performed.

  • One calendar for every network
  • Schedule once, publish everywhere
  • Drafts written in your own voice
  • See what actually performed
Open the full sign-up page

No card needed. These tools stay free either way.

Frequently asked questions

How this tool works, what it cannot do, and what happens to what you put into it.

  • Is CPM per thousand impressions or per thousand people?

    Per thousand impressions. An impression is one render of the ad, so the same person seeing it five times generates five impressions and costs you five impressions worth of budget. The people-based equivalent is cost per thousand reached, and it is always the larger number. If a media plan quotes a rate without saying which, ask before you sign anything.
  • What is a good CPM?

    There is no portable answer, because CPM is set by the auction you are competing in rather than by your skill. It varies by country, placement, season, audience narrowness and format, often by a factor of ten across those dimensions. The usable comparison is your own CPM against your own CPM for the same placement and audience a month ago.
  • Why did my CPM rise when I changed nothing?

    Usually because somebody else changed something. CPM is an auction clearing price, so more advertisers bidding for the same audience raises it without any action from you. Seasonal demand, a competitor launching, audience fatigue narrowing your effective pool, and a shift in which placements are winning delivery all produce the same symptom.
  • Should agency fees and creative costs go into the spend?

    It depends who is reading the number. Media-only CPM is the convention in ad platforms and agency reporting, and it is the right basis for comparing one buy against another. A fully loaded CPM that includes production and fees answers a different and often more important question about what the exposure really cost. Both are defensible; quoting one while implying the other is not.
  • Is my data private?

    Yes. This tool does its work in your browser, so whatever you type, paste or upload stays on your device. Nothing is sent to our servers, which is also why it keeps working if you go offline after the page has loaded.
  • Is this really free?

    Yes. Every tool here is free with no account, no credit card and no usage cap. They exist so that the people who need our scheduling product find us, which only works if the tools are genuinely useful on their own.
  • Do I need an account?

    No. Open the page and use it. An account is only for OctoSpark itself, where you plan, schedule and publish a whole calendar rather than fixing one post at a time.
  • Can I use the output commercially?

    Yes. Anything you produce here is yours, including for client and commercial work. We claim no rights over it and we do not watermark it.