Skip to content

← Back to home

Methodology

How the numbers on this site are produced and where our assumptions come from.

Last updated:

Benchmark review date: . Country RPM ranges, niche multipliers, and currency rates were last reviewed on this date. Numbers are approximations from public creator-economy reports — they are not official YouTube data.

What we retrieve from YouTube

We use only the official YouTube Data API v3. For every channel we fetch:

  • Title, handle, description, join date, country, thumbnail
  • Subscriber count (or a “hidden” flag), total views, video count
  • Uploads playlist id (used to fetch recent uploads)
  • For each recent upload: title, published date, duration, views, likes, comments

No scraping is performed. No private analytics data is retrieved.

What we cannot see

YouTube channels have a lot of private data that only the channel owner can see. We do NOT have access to any of it:

  • Actual RPM / CPM
  • Audience geography breakdown (only the channel's primary country)
  • Watch time and average view duration
  • Ad fill rate and ad category mix
  • Revenue from YouTube Premium subscribers
  • Sponsorship, affiliate, and merchandising income

This is why exact earnings cannot be known. Any website claiming to show a real creator's actual earnings is guessing, including this one.

RPM vs. CPM

CPM (Cost Per Mille) is what advertisers pay per 1,000 monetized ad impressions, before YouTube takes its cut. It's an advertiser-side metric that creators do not directly see.

RPM (Revenue Per Mille) is what remains for the creator per 1,000 total views (not just monetized ones), after YouTube's share. RPM is always lower than CPM. When someone talks about “how much a creator earns per 1,000 views” they almost always mean RPM.

Formulas used on this site:

  • RPM = total revenue ÷ total views × 1000 (YouTube's definition: divides by TOTAL views, so it already builds in the non-monetized-views gap)
  • CPM = gross ad revenue ÷ monetized impressions × 1000
  • Creator ad-revenue estimate:monthly ad revenue = (monthly views ÷ 1000) × RPM × (monetized % ÷ 90)

At the default monetized-view percentage (90%, the industry-typical rate) the third factor is exactly 1.0 and the formula collapses to YouTube's own views ÷ 1000 × RPM. That means an untouched calculator gives results consistent with what YouTube Studio would show for a typical channel — no double-discount.

The main calculator never multiplies views by CPM to estimate creator earnings — that's a common shortcut in other tools that over-estimates because CPM is the advertiser's spend, not the creator's take-home. We always use RPM.

Monetized-view percentage

Not every view generates ad revenue — viewers may skip ads, use ad-blockers, or watch on YouTube Premium (which shares differently). Our niche and country RPM tables are calibrated for a channel that monetizes at the industry-typical rate of 90% of views. The slider is a relative adjustment against that baseline:

  • At 90% (the default) — the (monetized ÷ 90) factor is exactly 1.0. Ad revenue equals views ÷ 1000 × RPM. This matches what YouTube Studio reports for a typical channel.
  • At 100% — you're modelling a channel that monetizes better than typical (few ad-blockers, no Premium viewers, high fill rate). Ad revenue is ~11% higher than the reference.
  • At 60% — you're modelling a channel that monetizes worse than typical (Made-for-Kids / COPPA restrictions, heavy Premium audience). Ad revenue is ~33% lower than the reference.

Because it is a relative adjustment (not a raw discount on views), the formula does not double-count the monetization gap that YouTube's RPM already includes in its own denominator.

Country assumptions

Different countries pay very different rates because advertisers value different audiences differently. We use per-country RPM tiers derived from public creator-economy reports. These are audience country, not creator country: a creator based in India whose audience is 90% US will earn much closer to the US band.

We can't see your real audience breakdown through the API — we only see the channel's primary country as declared by the creator. Pick the country that best matches your actual viewers.

Niche assumptions

Niches monetize very differently. Finance, business, tech, and marketing niches command the highest RPMs because advertisers in those categories pay a lot to reach viewers. Music, kids, and casual gaming channels command lower RPMs. We express this as a multiplier on top of the country base RPM.

Shorts vs. long-form

Shorts monetize very differently from long-form videos. Long-form earns from a per-video ad auction. Shorts share a global ad revenue pool that's allocated to creators based on their share of eligible Shorts views. In practice this means Shorts RPM is roughly an order of magnitude lower than long-form RPM for a comparable channel.

For Shorts we use a separate RPM table — not a multiplier on top of long-form. A US general-audience Shorts channel has an expected RPM of about $0.08 (vs. ~$6.50 for the same channel on long-form). Niche premiums are also compressed for Shorts (a finance channel earns roughly 1.5× the general Shorts rate, versus 2.4× on long-form) because the Shorts revenue pool is allocated on view share, not per-video auction.

A “mixed” channel gets a weighted blend of the two paths — 60% long-form / 40% Shorts by default. You can override the content type in the calculator to model a specific split.

Blending mixed content

When a channel publishes both Shorts and long-form videos we look at the recent uploads to estimate the mix. Under 30% Shorts is treated as “long-form”, 30–70% as “mixed”, and above 70% as “Shorts-first”. You can override this in the calculator.

How we estimate monthly views

  1. If we have at least three recent uploads in the last 30 days, we sum their views directly.
  2. Otherwise, if we have at least three uploads in the last 90 days, we sum those and scale down to a 30-day equivalent.
  3. Otherwise, we average views across the observed sample time span.

We then report a low / expected / high band (0.7× / 1.0× / 1.35×) to reflect traffic-side uncertainty (the same channel can naturally see 20–30% more or fewer monthly views than its recent average). These bands are shown on the Performance card. The earnings calculator seeds its monthly-views field with the expected traffic estimate — the single best guess. You can then edit the value manually (your input is preserved).

The earnings-side bands are separate and cover a different kind of uncertainty. Given a specific monthly-views value, they represent the plausible spread of creator RPM around the expected value. Because so many factors are hidden from us — fill rate, ad category mix, seasonality, refund rate, YouTube share — the earnings-side spread is wider (0.6× / 1.0× / 1.5×). In the UI these are labelled Conservative / Expected / Optimistic.

Switching Conservative / Expected / Optimistic multiplies the earnings result by exactly 0.6× / 1.0× / 1.5×. It does not change your monthly-views input. The two uncertainty axes (traffic-side and revenue-side) are surfaced separately so they never compound invisibly.

Why old videos still generate views

Popular videos can generate views (and revenue) for years after they were published. If we only fetch the most recent uploads, our monthly view estimate might miss substantial “long tail” income from an older viral hit. For channels like this the automatic estimate can be an under-estimate — use the manual monthly-views override to correct.

Why sponsorship income is separate

Sponsorship, affiliate, and membership income don't flow through AdSense and can't be inferred from view counts. We take them as explicit monthly inputs from the user and add them on top of the ad- revenue band.

Currency-rate limitations

Displayed non-USD currency totals use an approximate static FX table that we update periodically. This tool does not consume a live FX feed. If you need to make a financial decision, always cross-check against a live rate.

Rate limiting and caching (per instance)

Every application instance keeps a small in-process cache to protect the YouTube quota — search results for ~45 minutes, channel details for ~6 hours, recent-uploads listings for ~2 hours. Requests are also rate-limited per client on a sliding window (defaults 60 requests per minute). These limits are per-instance: in a multi- replica deployment each replica has its own limiter and cache. For a globally-consistent limiter, wire in Redis at the storage layer.

Known limitations

  • Ad fill rate, seasonality, and category mix are unknown.
  • YouTube's share of ad revenue is baked into RPM.
  • Refunds, invalid traffic, and taxes are not modelled.
  • Currency conversion uses a static approximate rate.
  • Sponsorship rate estimates are always negotiable.
  • Older uploads that still generate long-tail views may bias our monthly view estimate downward.
  • Cache TTLs mean freshly-uploaded videos may take a few minutes to appear.
  • We cannot see private analytics such as playback locations, watch time, or actual RPM.

In short: the numbers on this site are informed estimates. Treat them as a starting point, not as truth.