Every tool that sells TikTok Shop data reads the same public pages we do. We could not find one that had published the prior question: whether those numbers mean what they appear to.
We measured it for fourteen days — reading the number TikTok displays, on fixed products, on a schedule. Every response is stored and hashed, so every figure here recomputes from the bytes TikTok served.
~34,000 products · 20-product hourly panel · 14 days
One boundary governs everything below: our products were found by following TikTok’s own related-search links from a set of seed terms. That is not a random sample, so we make no claim about the platform as a whole. What we can speak to is how the fields behave — a property of TikTok’s systems, not of our sample, and true wherever you read them.
The units-sold figure on every product page is a real counter, not a rounded display. Across 73,827 consecutive daily readings of ~34,000 products, the smallest change was one unit — and it was one unit in every volume band, including on a product past 1.37 million lifetime sales, where any platform has reason to round and this one doesn’t. It reverses almost never: 9 backward steps in 73,827 readings.
That makes it the most reliable field we measured. It does not make it a count of sales.
TikTok’s own developer documentation defines the field as “the number of items sold since this item was listed on TikTok shop, including items that have been returned.” The counter only ever adds. A returned unit is never taken back off — which is also why “it never reverses” is true by design, not by discovery.
Here is the money. Multiply this counter by a price and you have merchandise value including everything that came back. Real net revenue is lower by the return rate — and returns in these categories run high. A seller benchmarking a competitor, an investor sizing a brand, a tool quoting “estimated revenue” — all are reading a number inflated by an amount none of them can see. We have not found a product that discloses this.
One caveat we hold to: TikTok documents this definition for its API field, not the public page. That they are the same metric is very likely, and unverified.
TikTok publishes more than one price for the same product on the same day. On 1,020 product-days where we read both the search-feed price and the product-page price: identical on 9.8%, the page higher on 64% of disagreements, median gap $2.34, with a sign test ruling out chance at p ≈ 10⁻³⁴.
The price is a choice of source before it is a number, and the two obvious choices differ by a median 8.5% on the same day. Any tool showing one price is picking a surface and not telling you which.
The feed price is the one most tools use, because it’s cheapest to collect. It is also the one with no relationship to sales. We took every product with both a day its feed price moved and a day it didn’t — 4,092 products — and compared next-day sales. Within the same product, a price change was followed by the same sales as a flat day: median difference zero, p = 0.19.
The crude cross-product comparison shows a 27% lift on price-change days, which looks like an effect and isn’t — fast sellers simply reprice more often. Hold the product constant and it vanishes. The feed price is a catalogue list price: what the seller set, not what the buyer paid.
This is the ceiling on everything shop-level, and it’s arithmetic, not inference. A shop page serves at most 20 products while telling you how many it has.
So every shop-level total in circulation — a shop’s revenue, its catalogue, its “top products” — describes twenty items, not a shop. Three surfaces cap the same way: search at 25, shops at 20, reviews at 3 of thousands. TikTok shows you a window and won’t show you the room.
Review counts step backwards on 3.9% of 73,671 readings — and it’s TikTok’s system lagging, not products being moderated. The steps cluster by day, not by product (the busiest day held 17% of them; the worst product 0.2%), and 63% recover — deleted reviews don’t return, these do. The sting: backward steps land on the busiest sales days, median same-day sales of 7 against a corpus median of 1. The review counter is least trustworthy exactly when a product is hot.
Views-per-sale is the number everyone wants and nearly everyone computes wrong, because view counts are published rounded: exact under 10,000, to the nearest 100 under a million, the nearest 100,000 above.
Any views-per-sale number not corrected for rounding is noise — worst on mid-size videos, where daily gains are big enough to matter and small enough to disappear under the step.
There is no one answer to “is TikTok data good.” Each field fails in its own way, and the ones that look flawless are often the least informative.
| FIELD | VERDICT | KEY NUMBERS |
|---|---|---|
| sold_count | Most reliable — single-unit at every tier. Gross of returns. | 0.01% reverse of 73,827 · 100% monotone · 0% missing |
| review_count | A lagging replica. Trust least on busy days. | 3.9% reverse of 73,671 · 63% recover |
| price (feed) | A near-static list price. Not the transaction price. | Moves 15% of days · agrees with page 9.8% |
| price (page) | A live, promotion-driven price — a different quantity. | Moves 91% of readings · meant to fall |
| rating | Barely moves; dips are display rounding. | Moves 5% of readings · each dip one 0.1 step |
| play_count | Looks flawless, is merely coarse. | 0% reverse — because it’s rounded, not clean |
| available_quantity | Not usable yet. | 99.8% missing — on 20 products of 34,000 |
Read the bottom two together. play_count scores best on the measures that mean least for it — a counter that can’t fall and jumps in hundreds earns a perfect reversal rate for free. price (page) scores worst on one that doesn’t apply — a price is supposed to fall. Average these into a single grade and it ranks the blunt field above the informative one. The error isn’t the weighting; it’s pretending the columns mean the same thing across rows. That is the whole reason to publish the table and not a score.
The table is the product. Anyone can read the pages. What’s scarce is knowing, field by field with the count beside it, what each number is worth.
No market total, no market average. The corpus follows TikTok’s own recommendation links, so it over-represents whatever connects to our seeds. More products means a bigger biased sample, not a fix.
Collection has continued; these findings have not been restated. Everything above is computed over the fourteen days to 2026-09-14. By 2026-10-22 we had observed ~140,000 products across 46 daily records. About 30% of them are no longer re-observed — a loose upper bound on delisting, not a removal rate: most of it is our coverage, not confirmed removal.
Fourteen days. Everything here is how fields behave; nothing is a trend or a season.
The three-price study is one week in. The direction has held across every timing gap so far — the disagreement doesn’t shrink when the reads are seconds apart, which points to different quantities rather than a stale cache — but the decisive test hasn’t accumulated enough data, and it stays marked preliminary until it has.
We count listings, not products. One branded item sold by 24 sellers is 24 rows. ~2% of the corpus overall; far more on the bestsellers anyone would rank.
We’re deciding what to measure next, and we’d rather build what someone needs than what we guessed at. If you make decisions from TikTok Shop data:
Which three numbers in this report would you want, every week?