Method · Published in full · Last reviewed 9 August 2026
How the score is calculated
Most niche tools give you a number between 0 and 100 and do not tell you where it came from. eRank, EverBee, Alura and Koalanda all publish a score of some kind. None of them publishes the arithmetic. That is a reasonable commercial choice and a bad basis for a decision you are about to spend a week on. This page is the arithmetic. If you disagree with a threshold after reading it, you will at least know which threshold to disagree with.
Where the numbers come from
One source: the Etsy Open API v3, endpoint listings/active. One request per query, up to 100 active listings sampled, and nothing else. No Gumroad, no Amazon, no Shopify, no Google Trends, no Reddit.
That narrowness is deliberate. Etsy is a marketplace where the listing is the product and the price is public, so active listings at a healthy price are direct evidence that buyers exist. Search-volume tools look at a market from the outside and go blind on anything specific: ask them about perimenopause symptom tracker printable and they return nothing useful, because the query is too small to register. The marketplace itself has no such blind spot.
Only derived aggregates leave that request. Listing titles are read in memory to compute relevance, then discarded. Counts, medians, ratios and distinct-shop counts are what get stored and shown.
Aggregates are cached for six hours and stamped with the time they were sampled. A score you read at noon may rest on a measurement taken at seven that morning, and the page tells you which.
The relevance filter, before anything else
An Etsy search for a three-word query returns listings that match one word. Counting them as competitors would be counting the wrong shelf.
So every sampled title is compared to the query on word stems, whole tokens rather than substrings of the line. cat no longer matches catalog. Inclusion between stems runs in one direction only, and only from five characters up, which rescues shirt inside tshirt without opening the door to short accidental matches.
The share of sampled titles that survive is the relevance density. Multiply the raw listing count by it and you get the effective count, which is the number every downstream decision uses.
effective count = round(active listings × relevance density)A query returning 40,000 listings at 4 percent relevance and one returning 1,700 at 95 percent describe very different shelves. The effective count says so.
The three components
Demand asks one question: does a real market exist? It is presence, not magnitude, and it is a log-scaled reading of the effective count against a ceiling of 2,000. A niche with 60 relevant listings is not worse than one with 900. It is smaller, and smaller is often the point.
Competition is 80 percent crowding and 20 percent concentration.
competition = 0.8 × logNorm(effective count, 2000)
+ 0.2 × (100 - distinct shops per 100 listings)The second term is the one that matters and the one most tools omit. Two hundred listings from 190 different shops is a busy, open shelf. Two hundred listings from twelve shops is a shelf somebody already owns.
Pricing power reads the median price and the share of listings under five dollars. A median of nine dollars with almost nothing under five is a category where buyers pay. A median of three dollars with half the shelf under five is a race you would be joining late.
The classification
Four verdicts, decided by the effective count against two frozen floors.
| Effective count | Verdict | What it means |
|---|---|---|
| 0 | inconclusive | No relevant listing found. Not scored. |
| 1 to 9 | dead | A real category, and a negligible one. |
| 10 to 1,999 | sweet | Measurable demand, room on the shelf. |
| 2,000 and above | saturated | The shelf is full. |
The floors were fitted on a labelled reference set and then frozen. On that set, dead topped out at an effective count of 3, sweet ran from 31 to 309, and saturated started at 18,209. The floors sit in the empty space between those groups rather than on top of the data. That is a real weakness for one of the two floors, and it is spelled out below.
Inconclusive is not a bad score. It means no relevant listing was found, which can mean a genuinely unserved need or a need that nobody buys on a marketplace. Those two are opposite conclusions and the scanner refuses to pick one for you. It also refuses to score at all when the query carries no analyzable term, when Etsy cannot be reached, and when the measurement comes back empty. A refused scan says so and stops.
The 0 to 100 score is a refinement inside the verdict, not across verdicts. A sweet niche starts at 62, gains up to 16 points for a healthy median price, loses up to 12 for a low one, and loses 0.12 points per point of competition. A saturated niche starts at 38 and falls as competition rises. The result is clamped inside its class, so a sweet niche can never score below 40 and a saturated one can never reach 41. Comparing a 57 to a 36 across classes tells you less than the two words next to them.
What the confidence band measures, and what it does not
Every score carries a confidence band, and on any shelf of 100 listings or more it reads high by construction. Here is the arithmetic, which makes that unavoidable rather than surprising.
coverage = listings returned / min(shelf size, 100)The denominator is not the size of the shelf. It is the number of listings the request could have returned, and that ceiling is one page: 100. A full page divided by a full page is complete coverage, whatever sits behind it. On a shelf of 7,596 listings, 100 are read, one in seventy-six, and the band says high.
So the band answers one question: did Etsy return what was asked for. That is all it answers. It drops below high in two cases, a truncated response and a fall back to a weaker source, and those are the only two things it detects. On a large category it carries no information about the score sitting next to it.
It says nothing about representativeness. The number that does is the effective count. At 41 relevant listings the aggregates rest on the entire shelf. At 7,368 they rest on a slice. We keep the band published because a degraded measurement is worth flagging, and we are telling you plainly that on anything larger than a page it is not a quality signal. Read the effective count instead.
What this cannot tell you
This is the part that matters if you are deciding whether to rely on any of it.
The saturation floor is the weakest constant here. The labelled reference set that fixed the floors contained nothing between an effective count of 309 and one of 18,209, so the 2,000 threshold sits in a gap the data does not cover. Niches landing between roughly 300 and 18,000 are classified by a boundary that has not been validated against labelled examples. The dead floor at 10 is on firmer ground, with labelled cases immediately on both sides of it.
Listings are not sales. An active listing at a healthy price is evidence that a seller believes buyers exist and has kept paying to say so. It is not a transaction. Two secondary signals help, both derived from the same request at no extra cost: median views per day, and the share of listings older than a year. A shelf that survives a year probably sells. A shelf that is entirely new proves nothing. Neither is a sales figure, and neither is presented as one.
One marketplace. Everything here describes Etsy. If your buyers are on Gumroad, in a newsletter, or on Amazon, this measures an adjacent market and not yours.
A hundred listings. That is the sample ceiling per query. On a shelf of 8,000, the aggregates are an estimate from a slice.
No forecast. There is no trend direction, no seasonality correction, no prediction of where a niche is heading. A December measurement of a category that sells in December will read high because it is high, in December.
No judgment of your execution. A sweet verdict says there is room on the shelf. It says nothing about whether your product will be the one that takes it.
Why it is deterministic
No language model touches the number. The same measurement produces the same score, today and next month, because the score is arithmetic over measured inputs. A model does write the short written verdict and the suggested angles, and it is explicitly forbidden from stating any quantity, in digits or in words. Output containing one is rejected and regenerated, and the check runs on every scan.
That separation is the whole design. The prose is a reading of the facts. The facts are not the model speaking.
If you want to see it run, the scanner is here. No account is needed to try it: fifteen scans per IP address in any rolling twenty-four hours, each one a light scan. A free account raises that to fifteen a day with the first three returning the full report. If you produce for clients rather than for yourself, the brief format applies the same method to a list of niches, and the August 2026 brief shows it on real data.