Methodology

How our data and scores work

If a product shows you a number, you should be able to find out where it came from. Here is where all of ours come from.

What we will not show you

Several YouTube tools display search volume, RPM, CPM or projected revenue for a keyword. YouTube does not publish any of those figures. They cannot be derived from any public interface. Every such number you have seen was modelled, extrapolated from a different platform's data, or simply invented.

We do not show them. Not in a smaller font, not with an asterisk, not as a “range”. A confident fabricated number is worse than no number, because you will make decisions with it.

The one place a number could mislead you is the opportunity score, so it carries an Estimate label everywhere it appears, and its inputs are always shown next to it.

The three labels

  • Measured — reported directly by the YouTube Data API v3. View counts, like counts, comment counts, subscriber counts, publish dates, durations and tags. We display them unmodified, with the time they were fetched.
  • Derived — arithmetic we perform on measured values. Views per day is views divided by days since publication. Outlier factor is a video's views divided by the median views of that channel within the same result set — and it is blank when we have fewer than three of that channel's videos to compare against, because two data points are not a baseline.
  • Estimate — a relative heuristic with no real-world unit. Only the opportunity score falls in this category.

The opportunity score, in full

Version 2. A 0-100 ranking heuristic computed entirely from measured values. It answers one question: compared with the other queries you are looking at right now, how attractive does this one look for a channel of your size? It is ordinal, not physical. Two queries scoring 71 and 52 tell you which to prefer; the gap of 19 has no unit.

ComponentWeightMeasured input
Demand30%Median view count across the videos ranking for the query.
Openness to smaller channels25%The share of ranking videos published by channels smaller than yours that still beat the median view count.
Current velocity20%Median views per day among results published in the last 180 days.
Room for fresher coverage15%Median age of the ranking videos.
Headroom vs incumbents10%Inverse of the median subscriber count of the ranking channels.

How each component is normalised

Demand. Log-scaled between 1,000 views (0 points) and 10,000,000 views (100 points). View counts span orders of magnitude, so a linear scale would let a single viral outlier dominate. We use the median rather than the mean for the same reason.

Openness to smaller channels. A direct proportion, 0-100. When you have connected a channel we use your own subscriber count as the threshold; otherwise 100,000. This is the most decision-relevant component: it says whether the results are winnable rather than locked up by incumbents.

Current velocity. Log-scaled between 1 and 5,000 views per day. Captures live interest rather than an accumulated back-catalogue. Scored at a neutral 50 when there are no recent results — absence of fresh uploads is already rewarded by the staleness component and should not be counted twice.

Room for fresher coverage. Linear from 0 points at 0 days to 100 points at 900 days. Older top results mean the query is under-served by current content.

Headroom vs incumbents. 100 minus a log-scaled competition index between 100 subscribers (0) and 10,000,000 (100). Scored at a neutral 50 when channel sizes are unavailable.

The final score is the weighted sum of the five component scores, clamped to 0-100. Every intermediate value is returned with the result and rendered under the score, so you can always audit it against the raw numbers.

Confidence

Each score reports its own confidence. Fewer than eight ranking videos is reported as low. If subscriber counts were readable for fewer than half the channels, it is moderate, because two of the five components fall back to neutral. Otherwise it is good. The reason is stated in words next to the score.

Watchlist outliers

The channel watchlist asks a narrower question than the research tools: did this video do unusually well for the channel that published it? A global comparison would be meaningless, since 40,000 views is a disaster for one channel and a breakout for another. So the only comparison we make is against the channel's own history.

  • The baseline is the median views of that channel's recent uploads — sampled from its 50 most recent — counting only uploads at least 14 days old. Fresh uploads are excluded because they have not accumulated views yet; including them would drag the median down and make every older video look like an outlier.
  • The outlier factor is a video's views divided by that baseline. Both numbers are measured, so the ratio is Derived, not an Estimate.
  • No baseline, no number. A channel with fewer than 5 settled uploads gets no outlier factor at all, and the row says so instead of showing a figure computed from too little data.
  • The flag is set at 2× the baseline or above. The threshold is a product decision, not a discovered constant — it is the point at which a video is far enough from typical to be worth your attention.

We do not operate a global outlier database. Doing that honestly would require crawling YouTube continuously at a scale the API does not permit, and building a shallow version while calling it the same thing would be exactly the sort of overclaim this page exists to rule out. You get outliers for the channels you chose to watch.

Video teardowns

A teardown is deliberately split in two, and the split is structural — the measured facts and the interpretation are stored in separate columns and rendered in separate panels.

The measured half is API statistics plus arithmetic on them, including the same outlier factor described above. The interpreted half is a language model reading how the video is constructed: what the title withholds, how the opening is built, how the material is paced.

It will not tell you why a video performed, because nobody can. The ranking system is not published, the audience is unobserved, and the video that was never made cannot be compared against. Any tool that answers that question confidently is guessing. Every teardown ends with an explicit list of what it could not assess — most often the spoken opening, when a video has no public captions.

Channel discovery

YouTube has no usable “channels in this niche” endpoint, so discovery works the way a person would: it searches the topic's videos and looks at who keeps appearing. A channel that ranks repeatedly for a topic is, by definition, a channel that ranks in that topic.

The limitation is real and is printed above every result set: this finds channels that rank for the phrasing you typed, not every channel in the niche. Ordering is by frequency of appearance, then median views within the sample — a ranking heuristic, not a judgement of quality. There is no revenue, RPM or “channel value” figure anywhere, because none of those can be measured from outside a channel.

Where the underlying data comes from

  • YouTube Data API v3 — search results, video statistics, channel statistics and your own channel's uploads. Every call's documented quota cost is recorded so we can tell you honestly when the daily allowance is exhausted rather than serving stale results.
  • YouTube search suggestions — the same autocomplete that powers the YouTube search box. It gives us the phrasings YouTube itself surfaces for a term. It is a list of queries, not a volume signal, and we never present it as one.
  • Captions — retrieved through the official captions endpoints with your own authorisation for your videos, or from a video's publicly published captions. Every transcript records which of those it was.

Caching

Upstream responses are cached for three to twelve hours depending on the tool. A cached result is labelled as such and costs you no credits, because it cost us no upstream call. The fetch time is always displayed so you know how fresh the numbers are.

Originality checks

Scripts derived from an article or a video are compared against their source using three independent signals: 5-gram Jaccard similarity for wholesale phrasing reuse, the longest run of identical consecutive words for a single lifted passage, and — when an embedding provider is configured — cosine similarity for close paraphrase. The overall score is the maximum of the available lexical signals, so one strong overlap cannot be averaged away. A run of more than fifteen identical words fails regardless of the ratio.

Questions about any of this? Ask us — we will answer specifically.

How our data and scores work · PublishBench