▶ YouTube Monetization Tool

YouTube CPM
Calculator

Estimate your YouTube ad revenue, calculate your channel CPM, or find out how many views you need to reach your income goal — all in seconds.

CPM = ( Ad Revenue ÷ Monetized Views ) × 1,000
3
Calculation Modes
0
Sign-ups Required
100%
Free Forever

YouTube CPM Calculator

Free Tool
$
Your YouTube CPM
Ad Revenue
Monetized Views
Est. RPM (after 45% cut)
Revenue per view
$
%
Estimated Ad Revenue
CPM Rate
Total Views
Monetized Views
Est. RPM (after 45% cut)
$
$
%
Views Needed
Revenue Goal
CPM Rate
Monetized Views Needed
Est. Revenue per 1,000 views

How to Use the YouTube CPM Calculator

Three modes to cover every question a creator has about their ad revenue.

Pick Your Mode

Choose Calculate CPM to find your rate from real earnings, Estimate Revenue to forecast income from future views, or Views Needed to reverse-engineer a revenue target.

Enter Your Numbers

Pull your ad revenue and monetized views directly from YouTube Studio Analytics. For forecasts, enter your CPM rate and expected view count with a typical 40–60% monetization rate.

Get Your Results

See your CPM, estimated RPM, revenue per view, and a full breakdown instantly. Use it to benchmark your channel, plan content, or negotiate brand deals.

YouTube CPM Formula Explained

YouTube CPM is based on monetized views — not all views. Here are the three formulas you need to understand your channel's revenue completely.

CPM = Ad Revenue ÷ Monetized Views × 1,000

Calculate CPM

CPM = (Revenue ÷ Monetized Views) × 1,000

Find your CPM from real Analytics data. Use monetized views, not total views.

Estimate Revenue

Revenue = (CPM × Views × Mon. Rate) ÷ 1,000

Forecast earnings for a video or campaign using your historical CPM rate.

YouTube RPM

RPM = CPM × 0.55

YouTube keeps 45% of ad revenue. Your RPM is always 55% of the gross CPM.

What Is YouTube CPM and How Does It Work?

CPM on YouTube is not the same as general advertising CPM. Here's exactly how it works for creators.

YouTube CPM = What Advertisers Pay Per 1,000 Ad Views

When you enable monetization on your YouTube channel, advertisers bid to show ads before, during, or after your videos. YouTube CPM is the rate advertisers pay per 1,000 ad impressions — set entirely by market competition, not by you.

However, you don't keep the full CPM. YouTube retains 45% of all ad revenue as a platform fee. The remaining 55% goes to you as the creator. This is reflected in your RPM (Revenue Per Mille) — the number shown in YouTube Studio that represents your actual take-home per 1,000 views.

Additionally, not every view counts as a monetized view. If a viewer uses an ad blocker, skips too quickly, or watches in a region with low ad demand, no ad revenue is generated for that view. Typically, only 40–60% of total views become monetized views.

Real example: 100,000 views with a $4.00 CPM and 50% monetization rate = 50,000 monetized views = $200 gross revenue = $110 to you after YouTube's cut.

📺

YouTube Studio Shows RPM, Not CPM

The "RPM" figure in YouTube Analytics is your after-cut earnings per 1,000 views across all revenue sources including ads, memberships, and Super Chats. Your CPM (ad rate only) will be higher than your RPM.

📅

CPM Spikes in Q4

Advertiser budgets surge in October–December for the holiday season. Many creators see their CPM double or even triple in Q4 compared to January. Plan your biggest uploads around this window.

🌍

Geography Matters Enormously

A viewer from the US or UK generates far more ad revenue than a viewer from Southeast Asia or Africa. Channels with mostly Tier 1 country audiences can see CPMs 10× higher than those with global audiences.

CPM vs RPM — Know the Difference

Two numbers in YouTube Studio that every creator needs to understand.

CPM — Advertiser Rate

What Advertisers Pay

CPM is the gross rate set by advertisers per 1,000 ad impressions. You'll find it in YouTube Studio under Revenue → CPM. It's based on ad auction competition and your audience demographics. You do not keep this amount.

RPM — Creator Earnings

What You Actually Earn

RPM is your real take-home per 1,000 video views across all revenue streams after YouTube's 45% cut. It also factors in non-monetized views, making it a more accurate picture of your channel's earning power.

YouTube CPM Rates by Niche (2025)

CPM varies dramatically by content category. Use these benchmarks to see where your channel stands.

Niche / Category Average CPM Range Est. RPM (55%) Why It's High / Low
Finance & Investing $12 – $45
$6.60 – $24.75 High-value buyers, credit cards, wealth products
Legal & Law $10 – $35
$5.50 – $19.25 Legal services have the highest cost-per-click ads
Technology & Software $8 – $20
$4.40 – $11.00 SaaS and B2B tech advertisers with large budgets
Business & Entrepreneurship $6 – $18
$3.30 – $9.90 Online courses, tools, productivity software ads
Health & Fitness $4 – $12
$2.20 – $6.60 Supplements, gym equipment, health insurance
Education & How-To $3 – $10
$1.65 – $5.50 Broad audience but consistent advertiser demand
Gaming $2 – $8
$1.10 – $4.40 Young demographic, lower purchase intent
Entertainment & Vlogs $1 – $5
$0.55 – $2.75 Mass audience but broad, low-intent targeting
Kids & Family $0.50 – $3
$0.28 – $1.65 COPPA restrictions limit ad types and targeting

How Many Views to Make $1,000?

Based on different RPM rates. Use our calculator above to get your exact number.

RPM $1.00
$1,000
Revenue goal
1,000,000
views needed
RPM $2.00
$1,000
Revenue goal
500,000
views needed
RPM $5.00
$1,000
Revenue goal
200,000
views needed
RPM $10.00
$1,000
Revenue goal
100,000
views needed
RPM $20.00
$1,000
Revenue goal
50,000
views needed
RPM $50.00
$1,000
Revenue goal
20,000
views needed

7 Ways to Increase Your YouTube CPM

You can't control advertiser bids directly — but you can control the factors that attract higher-paying advertisers to your content.

01

Create Content in High-CPM Niches

Finance, software reviews, and business content consistently attract premium advertisers. Even a slight pivot — like adding a personal finance angle to a lifestyle channel — can lift your CPM noticeably.

02

Target US, UK, Canada & Australia

Optimize your titles, thumbnails, and topics for Tier 1 English-speaking countries. A viewer from the US is worth 5–20× more ad revenue than a viewer from many other regions.

03

Upload More in Q4

October through December is peak ad spending season. Schedule your best content — especially long videos — during this window to capture the annual CPM surge from holiday advertisers.

04

Make Longer Videos (8+ Minutes)

Videos over 8 minutes qualify for mid-roll ads, significantly increasing your ad slots per view. A 15-minute video can have 3–4 ad placements vs just 1–2 for a shorter video.

05

Improve Your Click-Through & Watch Time

YouTube favors videos with high CTR and average view duration in its recommendation algorithm. More recommendations = more views = more monetized impressions — all at your existing CPM rate.

06

Use Relevant Keywords in Titles & Descriptions

YouTube matches ads to video content through keywords. Including commercially valuable terms in your metadata signals to the algorithm which ad categories to serve, often resulting in higher-paying placements.

07

Diversify Revenue Beyond AdSense

Channel memberships, Super Thanks, merchandise shelves, and affiliate links all contribute to your YouTube Studio RPM figure. A diverse revenue mix raises your effective earnings per view even when ad CPMs dip.

Frequently Asked Questions

Everything creators ask about YouTube CPM, RPM, and ad revenue.

YouTube CPM (Cost Per Mille) is the amount advertisers pay per 1,000 ad impressions on your videos. It is determined by advertiser demand, audience demographics, content category, and viewer geography. As a creator, you receive 55% of this CPM rate — the rest goes to YouTube. The earnings you actually see in YouTube Studio as "RPM" already reflect this 45% deduction.
Low CPM is usually caused by one or more of these factors: (1) content niche — entertainment and gaming attract less valuable advertisers than finance or tech, (2) audience geography — viewers from low-income countries generate minimal ad revenue, (3) time of year — Q1 CPMs are the lowest annually, (4) video length — shorter videos have fewer ad slots, lowering effective CPM. Review your YouTube Analytics audience tab to identify where your viewers are located.
CPM is the gross rate advertisers pay per 1,000 ad impressions — calculated only on views that showed an ad. RPM is your actual earnings per 1,000 total video views across all monetization sources (ads, memberships, Super Chats), after YouTube's 45% cut. RPM is always lower than CPM because it includes all views, even non-monetized ones. RPM is the better metric for tracking your true income growth.
It depends entirely on your RPM. With a $2 RPM you need 500,000 views. With a $5 RPM you need 200,000 views. With a $10 RPM you need 100,000 views. Finance and investing channels with $15–$25 RPMs can hit $1,000 from as few as 40,000–65,000 views. Use the Views Needed tab in our calculator above to get your exact number.
CPM is not fixed per channel — it varies by video based on: (1) topic keywords in your title and description that determine which ads are matched, (2) audience location — different videos attract viewers from different countries, (3) upload timing — videos published in Q4 or on weekdays tend to have higher CPMs, and (4) ad format mix — skippable vs non-skippable ads have different CPM rates. A single viral video can have a dramatically different CPM than your channel average.
Not directly. Subscriber count does not affect your CPM rate. CPM is determined by advertiser demand for your audience, not your channel size. A small channel in the finance niche with 10,000 subscribers can easily have a higher CPM than a gaming channel with 1 million subscribers. What matters most is your content niche, audience geography, and audience intent — not vanity metrics.
YouTube CPM follows a consistent annual pattern. Q4 (October–December) is peak season — Black Friday, Cyber Monday, and Christmas drive advertisers to massively increase budgets. Many creators see CPMs 2–3× their annual average during November–December. Q1 (January–February) is the trough as budgets reset. Plan your most important uploads and monetized series around the Q4 window to maximize annual revenue.
Yes. Even within your existing niche, you can lift CPM by: (1) targeting your content toward viewers in the US, UK, Canada, and Australia with English-language SEO, (2) adding commercially relevant keywords to titles and descriptions to attract higher-paying ad categories, (3) making videos 8+ minutes long to qualify for mid-roll ads, and (4) uploading consistently in Q4. These changes don't require switching niches — just more strategic content planning.
/* ── Mobile Nav ── */ {const toggle = document.querySelector('.nav-toggle'); const navLinks = document.querySelector('.nav-links'); if (toggle && navLinks) { toggle.addEventListener('click', () => { toggle.classList.toggle('open'); navLinks.classList.toggle('open'); }); navLinks.querySelectorAll('a').forEach(a => a.addEventListener('click', () => { toggle.classList.remove('open'); navLinks.classList.remove('open'); })); } /* ── Tabs ── */ const tabs = document.querySelectorAll('.calc-tab'); const panels = document.querySelectorAll('.tab-panel'); tabs.forEach(tab => { tab.addEventListener('click', () => { tabs.forEach(t => t.classList.remove('active')); panels.forEach(p => p.classList.remove('active')); tab.classList.add('active'); const target = document.getElementById(tab.dataset.tab); if (target) target.classList.add('active'); hideResult(); }); }); /* ── Utilities ── */ function fmt(n, d = 2) { return !isFinite(n) ? '—' : new Intl.NumberFormat('en-US', { minimumFractionDigits: d, maximumFractionDigits: d }).format(n); } function fmtMoney(n) { return !isFinite(n) ? '—' : '$' + fmt(n, 2); } function fmtInt(n) { return !isFinite(n) ? '—' : new Intl.NumberFormat('en-US').format(Math.round(n)); } function showResult(el){ el.classList.add('visible'); el.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } function hideResult() { document.querySelectorAll('.calc-result').forEach(el => el.classList.remove('visible')); } function getNum(id) { const el = document.getElementById(id); if (!el) return NaN; const v = parseFloat(el.value.replace(/,/g, '')); return isNaN(v) || v < 0 ? NaN : v; } function setError(id, msg) { const el = document.getElementById(id); if (el) { el.style.borderColor = '#e05252'; el.title = msg; } } function clearErrors() { document.querySelectorAll('.calc-input').forEach(el => { el.style.borderColor = ''; el.title = ''; }); } /* ── TAB 1: Calculate CPM ── */ const btnCpm = document.getElementById('btn-calc-cpm'); if (btnCpm) { btnCpm.addEventListener('click', () => { clearErrors(); const revenue = getNum('cpm-revenue'); const views = getNum('cpm-views'); if (isNaN(revenue)) { setError('cpm-revenue', 'Enter a valid revenue amount'); return; } if (isNaN(views) || views === 0) { setError('cpm-views', 'Enter a valid view count'); return; } const cpm = (revenue / views) * 1000; const rpm = cpm * 0.55; const resultEl = document.getElementById('result-cpm'); document.getElementById('result-cpm-value').textContent = fmtMoney(cpm); document.getElementById('result-cpm-revenue').textContent = fmtMoney(revenue); document.getElementById('result-cpm-views').textContent = fmtInt(views); document.getElementById('result-cpm-rpm').textContent = fmtMoney(rpm); document.getElementById('result-cpm-per-view').textContent = '$' + (revenue / views).toFixed(6); showResult(resultEl); }); } /* ── TAB 2: Estimate Revenue ── */ const btnRev = document.getElementById('btn-calc-revenue'); if (btnRev) { btnRev.addEventListener('click', () => { clearErrors(); const cpm = getNum('rev-cpm'); const views = getNum('rev-views'); const monRate = getNum('rev-monetization'); if (isNaN(cpm)) { setError('rev-cpm', 'Enter a valid CPM rate'); return; } if (isNaN(views) || views === 0) { setError('rev-views', 'Enter a valid view count'); return; } if (isNaN(monRate) || monRate === 0) { setError('rev-monetization', 'Enter a monetization rate (e.g. 50)'); return; } const monetizedViews = views * (monRate / 100); const grossRevenue = (cpm * monetizedViews) / 1000; const rpm = cpm * 0.55; const resultEl = document.getElementById('result-revenue'); document.getElementById('result-rev-value').textContent = fmtMoney(grossRevenue); document.getElementById('result-rev-cpm').textContent = fmtMoney(cpm); document.getElementById('result-rev-views').textContent = fmtInt(views); document.getElementById('result-rev-mon-views').textContent = fmtInt(monetizedViews); document.getElementById('result-rev-rpm').textContent = fmtMoney(rpm); showResult(resultEl); }); } /* ── TAB 3: Views Needed ── */ const btnViews = document.getElementById('btn-calc-views'); if (btnViews) { btnViews.addEventListener('click', () => { clearErrors(); const goal = getNum('views-goal'); const cpm = getNum('views-cpm'); const monRate = getNum('views-monetization'); if (isNaN(goal)) { setError('views-goal', 'Enter a valid revenue goal'); return; } if (isNaN(cpm) || cpm === 0) { setError('views-cpm', 'Enter a valid CPM rate'); return; } if (isNaN(monRate) || monRate === 0) { setError('views-monetization', 'Enter a monetization rate (e.g. 50)'); return; } const monetizedViewsNeeded = (goal / cpm) * 1000; const totalViewsNeeded = monetizedViewsNeeded / (monRate / 100); const rpm = cpm * 0.55; const resultEl = document.getElementById('result-views'); document.getElementById('result-views-value').textContent = fmtInt(totalViewsNeeded); document.getElementById('result-views-goal').textContent = fmtMoney(goal); document.getElementById('result-views-cpm').textContent = fmtMoney(cpm); document.getElementById('result-views-mon').textContent = fmtInt(monetizedViewsNeeded); document.getElementById('result-views-rpm').textContent = fmtMoney(rpm); showResult(resultEl); }); } /* ── Reset ── */ document.querySelectorAll('.calc-reset').forEach(btn => { btn.addEventListener('click', () => { const panel = btn.closest('.tab-panel'); if (panel) panel.querySelectorAll('.calc-input').forEach(i => i.value = ''); clearErrors(); hideResult(); }); }); /* ── Enter key ── */ document.querySelectorAll('.calc-input').forEach(input => { input.addEventListener('keydown', e => { if (e.key === 'Enter') { const panel = input.closest('.tab-panel'); if (panel) { const btn = panel.querySelector('.calc-btn:not(.calc-reset)'); if (btn) btn.click(); } } }); }); /* ── FAQ Accordion ── */ const faqItems = document.querySelectorAll('.faq-item'); faqItems.forEach(item => { const q = item.querySelector('.faq-question'); if (!q) return; q.addEventListener('click', () => { const isOpen = item.classList.contains('open'); faqItems.forEach(i => i.classList.remove('open')); if (!isOpen) item.classList.add('open'); }); }); /* ── Smooth scroll ── */ document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', e => { const target = document.querySelector(anchor.getAttribute('href')); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); });