Methodology · Last updated May 16, 2026
How our calculators and benchmarks are built
Every calculator on RevenueLab uses a documented formula and a benchmark dataset you can inspect, challenge, or disagree with. This page lays out exactly how we build them, where the numbers come from, how often we update, and — just as importantly — what our outputs explicitly are not.
1. Where the benchmark numbers come from
Every published range — RPM by niche, CPC by vertical, freelance hourly rates by specialty, SaaS LTV:CAC by stage — is triangulated from at least three independent source types. We do not source benchmarks from a single vendor blog post.
Primary sources
- Official platform documentation. YouTube Partner Program docs, Google AdSense help center, Google Ads transparency reports, Shopify Partner docs, Amazon Seller Central fee schedules, Meta Business help center, Stripe pricing, Patreon and Substack public fee structures.
- Public earnings disclosures. Creators who publish their RPM/CPM numbers, freelancers who publish rate cards, indie SaaS founders who publish MRR and CAC dashboards (Indie Hackers, Open Startups, Twitter/X disclosures with screenshots).
- Operator interviews and our own observations. Direct conversations with creators, freelancers, agency owners, and SaaS founders running real businesses in the niche we're benchmarking.
Secondary sources (used for cross-checking)
- Industry reports from established research firms — Insider Intelligence (formerly eMarketer), Statista, IAB, Tubular, Marketplace Pulse, OpenView Partners' SaaS Benchmarks, ChartMogul reports, SocialBlade aggregated ranges.
- Trade publications — The Information, Stratechery, Tubefilter, Modern Retail, Business of Apps.
- Academic and regulatory sources where applicable (FTC creator-economy reports, EU DMA disclosures).
When sources disagree — and they often do — we publish a range that covers the middle 60–80% of credible estimates and flag the spread on the relevant page. We don't average two cherry-picked extremes and call it a benchmark.
2. The formulas powering each calculator family
Every calculator on the site displays its formula directly on the page. Below is the short list of the core ones, so you can sanity-check the approach before opening a tool.
YouTube revenue
monthly_revenue = (monthly_views / 1000) × effective_RPM
Where effective_RPM is derived from niche, country mix, content length, and Shorts vs long-form ratio. RPM is what hits the channel after YouTube's 45% cut, not gross CPM. See the full country index for the per-market RPM ranges we apply.
SaaS LTV and LTV:CAC
LTV = (ARPU × gross_margin) / monthly_churn_rate
LTV:CAC = LTV / blended_CAC
We use the gross-margin-adjusted LTV (the version investors actually use), not the inflated revenue-only LTV that some blog posts publish. Churn is monthly logo churn unless specified otherwise.
Freelance hourly rate
hourly_rate = (target_salary + business_expenses) / (billable_hours_per_year × utilization)
Billable hours default to ~1,500/year (≈30/week × 50 weeks) at 65% utilization — the realistic number for a solo freelancer, not the 2,080-hour fiction.
Google Ads ROAS
break_even_ROAS = 1 / gross_margin
target_CPA = AOV × gross_margin × (1 / target_ROAS)
Margin-aware. A 4× ROAS on 25%-margin product is break-even; calculators that ignore margin overstate profitability.
Sponsorship CPM
sponsorship_fee = (avg_video_views / 1000) × sponsorship_CPM × integration_multiplier
Integration multiplier ranges from 0.4 (30-sec pre-roll mention) to 1.8 (dedicated video). Exclusivity, usage rights, and turnaround time stack on top.
3. How we turn raw data into a published range
- Pull at least 8–12 credible data points per benchmark cell (niche × country, or vertical × stage).
- Drop the top and bottom 10% as outliers — usually either a viral one-off or a clearly fake screenshot.
- Identify the interquartile range of what's left. That becomes the published "typical" band.
- Cross-check the band against the secondary-source ranges from Insider Intelligence, OpenView, etc. If the bands are wildly different, we investigate before publishing.
- Publish the range with the date and the rough source mix on the relevant page.
This approach is deliberately conservative. It will not produce the highest number you've ever heard quoted. It will produce a number you can defend in a planning conversation.
4. Update cadence and revision history
- Calculators with fee schedules (YouTube split, Shopify, Amazon, Stripe) — checked quarterly and immediately when the platform announces a change.
- RPM/CPM benchmarks — reviewed twice yearly (May and November), with interim updates if a major shift is reported.
- Freelance and agency rate ranges — reviewed annually.
- SaaS benchmarks (LTV:CAC targets, payback, churn norms) — reviewed annually to align with the latest OpenView and ChartMogul reports.
Every page with calculated outputs or published ranges carries a "last updated" date. When we change a benchmark or fix a formula, the change is noted on the page — we don't silently revise.
5. What our outputs are not
Every calculator output on this site is a directional estimate based on typical patterns. It is explicitly not:
- A guarantee, projection, or promise of future revenue.
- Financial, tax, investment, or legal advice.
- A substitute for an accountant, CFO, lawyer, or financial planner.
- A precise figure — real revenue depends on timing, execution, audience composition, seasonality, and dozens of variables a calculator cannot model.
Use our outputs the way a working operator would: a starting point for the conversation, a sanity check on a plan, a back-of-the-envelope estimate before you commit. Then validate against your own data before making a decision that affects your livelihood.
6. Corrections policy
We get things wrong. When we do, we fix the page and add a short correction note at the bottom with what changed and when. If a fix materially changes a published recommendation, we say so explicitly.
If you spot something — a stale fee, a niche range that doesn't match your real numbers, a formula that's off — please tell us via the contact page. Include the inputs you used and the output you expected. We read every correction request.