Free Tool
Blog Profit Calculator
Revenue is not profit. A blog that earns $1,000 a month and spends $900 is a $100 business — and a blog that earns $1,000 while its owner works 100 unpaid hours is paying $10 an hour. This calculator shows both numbers.
Planning estimate, not financial advice. RPM and income figures are entered by you from your own dashboards. Nothing here is a promise about what a blog earns — traffic and rates vary by niche, season and geography. All figures on this page are estimates or scenarios for planning purposes only. They are not financial, tax or legal advice, and no earnings are promised. Read the full financial disclaimer.
What this tool does
Enter the four revenue streams separately: ad revenue from monthly pageviews and your RPM (revenue per 1,000 pageviews, taken from your own ad dashboard), affiliate income, sponsored income, and digital product sales. Then enter monthly expenses — hosting, tools, content costs — and, optionally, the unpaid hours you put in and what an hour of your time is worth. The calculator shows ad revenue, total revenue, operating profit, profit margin, and the profit left after valuing your own hours.
Two honesty panels are built in. The first is the revenue-versus-profit split: many blog income reports stop at revenue, which flatters the business by exactly the size of its costs. The second is the unpaid-hours panel: a blog that is "profitable" only because its owner works for free is not yet a business — it is a job that does not pay. Putting a value on those hours shows which of the two you have.
RPM is never quoted on this page. It varies so much by niche, country, season and ad setup that any "average RPM" would mislead most readers. Your RPM is in your ad dashboard; enter it there.
Try it
Waiting. Enter your pageviews and RPM, plus any other streams and costs, and press Calculate. RPM comes from your own ad dashboard — this page never quotes one.
How it works
Ad revenue is monthly pageviews divided by 1,000, multiplied by RPM. Total revenue is ad revenue plus affiliate income plus sponsored income plus product sales. Operating profit is total revenue minus monthly expenses. Profit margin is operating profit divided by total revenue, times 100. The time-cost panel multiplies your unpaid hours by the hourly value you entered, and subtracts that from operating profit to show the profit left after paying yourself.
Traffic-based mode is the same formula with only the ad stream: pageviews divided by 1,000 times RPM. It exists for the common question "what would this traffic earn from ads alone" — but the profit mode is the honest one, because ads are rarely a blog's only stream and never its only cost.
Operating profit here is before tax and before paying yourself. That is the standard meaning of operating profit, and the page states it plainly so nobody mistakes it for money in the bank.
Assumptions and limitations
This calculator describes a month, not a future. It does not project traffic growth, and it should not be used to promise one: a growth rate entered as a guess becomes a forecast dressed as maths. It does not model tax, seasonal swings in RPM (ad rates move through the year), or the value of an email list and other assets a blog builds. RPM from one month, niche or country does not transfer to another.
- RPM is user-entered only, from your own ad dashboard. No niche RPM table is quoted anywhere on this page.
- Revenue of zero means the margin is undefined — the calculator says so instead of showing 0% or an error number.
- Unpaid hours are optional. If you skip them, the profit figure is before paying yourself — read it that way.
- Sponsored and affiliate income are entered as monthly averages. Lumpy income (one big sponsorship a quarter) should be averaged across its months, or the monthly figure will mislead.
Worked example
Example (illustrative inputs, not a real blog's income). A blog gets 50,000 pageviews a month at an RPM of $12 (entered from its own ad dashboard as an example), $150 of affiliate income, $200 of sponsored income, $100 of product sales, and $120 of monthly expenses. Ad revenue: 50,000 ÷ 1,000 × $12 = $600. Total revenue: $600 + $150 + $200 + $100 = $1,050. Operating profit: $1,050 − $120 = $930. Profit margin: $930 ÷ $1,050 = 88.6%. But the owner also works 40 unpaid hours a month, valued at $25 an hour: time cost $1,000, so profit after valuing those hours is $930 − $1,000 = −$70. The blog covers its cash costs comfortably and still does not pay its owner a market rate — the two numbers tell different stories, and both are shown.
Frequently asked questions
What is RPM, and where do I find mine?
RPM is revenue per 1,000 pageviews — what your ads actually paid per thousand views. It is in your ad network dashboard (AdSense, Mediavine, Raptive and others all report it). It varies by niche, country, season and ad setup, which is why this page never quotes an 'average RPM': yours is the only one that matters for your blog.
Why does the calculator ask about unpaid hours?
Because a blog that only looks profitable while its owner works for free is not yet paying for itself. Valuing your hours shows whether the business could afford to hire someone to do the work — the real test of a business. If profit disappears once your hours are valued, the blog is a hobby with revenue, and the fix is more revenue or less time, not more hours.
Is operating profit the same as money in the bank?
No. Operating profit here is revenue minus monthly expenses, before tax and before paying yourself. Tax, irregular costs (a yearly theme, a redesign) and the time value above all sit outside it. Read it as the business's monthly surplus, not as take-home pay.
Can I use this to estimate what my blog will earn next year?
Only by entering next year's pageviews as an assumption and labelling the result as a scenario. Traffic does not grow on a schedule, and RPM moves with the seasons. A calculator cannot promise traffic — it can only show what a given traffic level would pay at a given RPM.
Why are there four revenue streams instead of just ads?
Because most blogs that earn anything earn it from several streams, and a page that only models ads understates the business — or overstates it, if the other streams are small. Splitting the streams also shows which one actually carries the blog, which is the decision that matters.
My RPM changes every month. Which one should I enter?
Use a recent average — three months is a reasonable window — and re-run the calculator when it moves. A single good month's RPM will flatter the result; a single bad month will understate it.