How to read estimated revenue and RPM from YouTube Analytics
Part of YouTube views and revenue on your Mac
The four money metrics
YouTube Analytics reports several revenue figures and they are routinely confused with each other.
| Metric | What it includes |
|---|---|
estimatedRevenue |
Everything: ads, memberships, Super Chat, Super Thanks, Premium |
estimatedAdRevenue |
Advertising only |
grossRevenue |
Before YouTube's share |
cpm |
Cost per thousand ad impressions |
Plus RPM, which is not in that list because the API does not return it directly. More on that below.
curl -s -G 'https://youtubeanalytics.googleapis.com/v2/reports' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
--data-urlencode 'ids=channel==MINE' \
--data-urlencode 'startDate=2026-09-01' \
--data-urlencode 'endDate=2026-09-30' \
--data-urlencode 'metrics=estimatedRevenue,estimatedAdRevenue,views' \
--data-urlencode 'dimensions=day'
Estimated revenue against ad revenue
The gap between these two is the part of your channel that is not advertising. For a creator with memberships it can be most of the income.
Watching only the total hides the shape. A channel whose estimated revenue holds steady while ad revenue falls is being carried by its members, which is a more durable business and a completely different one from the total's implication.
Track both.
RPM is computed, not returned
RPM is revenue per thousand views: total revenue over total views, with every view counted.
const rpm = (estimatedRevenue / views) * 1000;
Compute it over the whole window, not by averaging daily rates. A quiet day with one high-value view produces an enormous daily RPM and should contribute almost nothing to the figure. Averaging the points weights it equally with a day of ten thousand views, and the result is a number that jumps around for no reason.
RPM is not CPM, and this is the big one
They sound alike and measure opposite sides of the transaction.
| Denominator | Numerator | |
|---|---|---|
| RPM | Every view | Your revenue, after YouTube's share |
| CPM | Monetised ad impressions | What advertisers paid, before YouTube's share |
So CPM is always much higher than RPM, on every channel, and the gap is not a problem to fix. It is two different ratios.
Specifically: not every view carries an ad, so the RPM denominator is far larger. And CPM is what the advertiser paid, while RPM is what reached you after YouTube took its cut.
Comparing your RPM against somebody's quoted CPM and concluding you are underpaid is the most common mistake in creator revenue discussions.
Estimated means estimated
Every one of these is adjusted after publication for invalid traffic and advertiser disputes. The last few days of a window move, and a month only finalises well into the following one, when YouTube closes it for payment.
So a month-to-date revenue figure is a forecast, and a comparison against last month's final figure is not like for like until this month closes.
Currency
Revenue is reported in your AdSense account's currency, and YouTube returns
it as a decimal rather than as minor units: 1234.56, not 123456. Convert
to integer minor units before storing it and never hold money in a float.
The scope
https://www.googleapis.com/auth/yt-analytics-monetary.readonly, in addition
to the read-only YouTube scope.
A channel outside the YouTube Partner Programme has no revenue to report, and the API answers with an error rather than zero. That is the correct behaviour: zero revenue and no revenue programme are different states, and reporting the second as the first would be a lie with a number attached.
In the notch
Notch Metrics reports YouTube estimated revenue, ad revenue and RPM in the MacBook notch, with RPM computed over the whole window rather than averaged across daily rates, and the page saying plainly that it is not CPM.
- youtube
- revenue
- api