Free versus paid digital products
The gap, and it is not a small one
Of the 1,344 products measured, 72 are free — 5.4% of the sample. Those 72 products hold 24.0% of every rating in the dataset. Five percent of the listings, a quarter of the observed demand.
| Free | Paid | |
|---|---|---|
| Products | 72 | 1,272 |
| Share carrying any rating | 97% | 64% |
| Median ratings, all products | 80 | 2 |
| Median ratings, products with any | 90 | 8 |
The middle row is the one worth sitting with. The median free product has 80 ratings; the median paid product has 2. Not 80% more — 80 against 2. And 97% of free listings show some demand against 64% of paid ones, so this is not one viral giveaway dragging an average around.
Checking that it is not one viral giveaway anyway
A pooled figure this lopsided deserves suspicion, because concentration is the defining feature of this market — so it was asked again separately inside each of the 31 categories that contain both free and paid products. The median free product out-rates the median paid product in 30 of 31 categories. Free products appear in 31 of the 42 categories searched. Removing the single most-rated free listing entirely barely moves the pooled share. The pattern is the market's, not an outlier's.
What this does not say
It does not say free earns more. It cannot: a rating is a proxy for a transaction, and a transaction at $0 is not revenue. This page compares reach to reach.
There is also a selection effect running the other way, and it should be stated rather than buried. People do not give away their best work at random — free listings are often deliberately built for reach, as lead magnets, samples and community assets, by sellers who already have an audience. The 30-of-31 result says free listings reach more people; it does not prove that your paid product would have reached more people had you made it free.
And the direction of causation is genuinely open. Free listings may accumulate ratings because they are free, or the kind of seller who can afford to publish a free asset may be the kind who already has the distribution.
What it is actually useful for
The number that changes a decision is 34% — the share of all 1,344 products with no ratings at all. On this platform the default outcome of publishing something is that nobody arrives. Against that background, the free-versus-paid gap reads as a statement about discovery: price is the largest single piece of friction between a listing and its first transaction, and paying it down to zero removes most of it.
That makes free a distribution decision, not a pricing one. If nothing you have published has ever been rated, the constraint is not your price point — it is that no one has arrived, and the measured route to arrival is to put something in front of them that costs nothing to try.
We publish this dataset that way on purpose: the rows are free on Gumroad and free in the repository, and the paid item is the written analysis, not the data. That is the same structure this page describes, applied to ourselves.
The report classifies all 261 categories by whether their demand is reachable or already held by incumbents — which is the question a free lead product is trying to answer before you build the paid one. You are paying for the interpretation, not for the rows. The rows are free, above and in the repository. If the data is all you wanted, take it and skip this.
Read the report — $249 Read three sections free first Or take all four CSVs free
The sample is the method sections lifted unedited out of the report — what was measured, the background rate, and the limits in full. Every section that says what to do is in the paid one. The free mirror is $0 with a $0 minimum and asks for an email at checkout. The same files without one: the data folder. The report carries a money-back guarantee, stated on the checkout page: full refund, no reason needed, and you keep the files.
Check it yourself
Every figure above is computed from a free, openly licensed CSV of 1,344 products, with the
collector source alongside it. Filter for price_usd == 0 and re-derive any of it —
the data,
the archived version with a DOI.