Methodology

Everything below is computed from numbers read on TikTok Shop's public pages; nothing is invented or estimated.

  • Model shop-0.1

What the Score is built on

One real series per product: new public reviews a day. It comes from the product's public review list, counted by day, and is continued by the day-to-day change in the review total that the product page shows. Reviewer names and review text are not collected.

Reviews stand in for sales. They trail purchases by some days, but they are public, exact and go back months, which daily sold counts do not yet: HashIQ reads the sold count of every product each day and will move the Score onto it once it covers six weeks.

Of history for a Score
28 days
Of history for a call
42 days
Products scored, of 682,375 read
6,992

A product also needs at least 5 reviews in the last 7 days. A call needs the longer history because it is the stretch the hit rule looks back over. The rest show their readings and no Score.

The Score

Velocity
Reviews a day in the last 7 days against the product's own days 34 to 7 before (natural log of the ratio).
Acceleration
The last 7 days against the 7 before.
Burst
The last 3 days against the same baseline, as a Poisson surprise that allows for overdispersion.
Demand
The percentile of the product's reviews in the last 7 days among scored products.
Saturation
The percentile of all the reviews it has. A product with few reviews so far has more room.
z      = 0.50·Velocity + 0.25·Acceleration + 0.25·Burst
         each a robust z against the other scored products
index  = sigmoid(1.6·z − 0.4)
O      = Demand^0.6 · (1 − Saturation)^0.4
Score  = round(100 · index^0.6 · O^0.4)

The Score is an index from 0 to 100, not a probability. What a Score has meant so far is in the backtest table below.

Stage and verdict

Emerging, Accelerating
Reviews are at least 1.28× the baseline and the last week was not slower than the one before. Emerging is the lower half by total reviews, on a product that has not already broken out.
Peaking
Level with the baseline, or above it but slowing week on week.
Saturated
Below 0.78× the baseline.
Go
Score 85 or more, Emerging or Accelerating, and no breakout in the last 45 days.
Wait
Score 70 or more otherwise.
Skip
Everything else.

Each verdict states its reason in the counts that were read.

Calls and the hit rule

A call is written the day a product first meets the Go condition, and not again for 45 days. The record is frozen as canonical JSON and hashed.

Product hit: new public reviews in 7 days reach 3 times the product's own trailing baseline (7 times its median day over days 42 to 14 before) and at least 30, within 30 days of the call. Reviews stand in for sales until daily sold counts cover the same period.

Called it
The rule is met within 30 days after the call. Lead days count from the call to that day.
Missed
30 days pass without it.
Too late
The rule had already been met in the 45 days before the call. The Go condition excludes these, so it should stay at zero.
Pending
The 30 days are still running.
No reading
The product's reviews could no longer be read before the 30 days were up. The call stays on the ledger and counts as neither a hit nor a miss.

The live record: 61 calls, 25 hit, 0 missed, 36 open. See the ledger.

Backtest

Before the ledger started, the rule was replayed day by day on the review history already collected, each day using only what was known by then. This is a backtest, not a record: it is never counted with real calls and never anchored.

The Score thresholds were chosen on this same history, so the numbers are a best case.

Share of scored products that went on to meet the hit rule, by Score band
ScoreWeekly readingsBroke out within 30 daysShare
0 to 3920,7508694.2%
40 to 5410,9886455.9%
55 to 697,02482211.7%
70 to 842,89178427.1%
85 to 10023815063.0%
All scored41,8913,2707.8%

One reading per product per week from Aug 3, 2026 to Sep 26, 2026, products that had already broken out left aside. Recomputed as of Oct 26, 2026.

Replayed as calls with the 45-day cooldown: 430 calls over 12 weeks. Of the 391 whose 30 days are over, 162 hit (41%) and 229 missed; 20 later ones have already hit and 19 are still open, and stay out of the rate until their 30 days are over. Median lead on the hits: 4 days. They are listed, labelled, on the ledger page.

Days left to act

While a call is open, the product page says how many days are probably left before the breakout, and the Radar shows the same number beside the verdict. It is shown on paid plans only: the Free view is three days late, and a count that old is no longer the days left.

It is read from the calls whose 30 days are over, replayed and live: of the ones that had still not broken out the same number of days after they were made, the share that went on to, the median number of days those took from there, and the days the middle half took.

Most calls that come true do so in the first week, so the number shrinks fast and the share with it. When fewer than 10 earlier calls broke out from that point, no number of days is given, only the share. Once the Score of a called product has fallen below 70, the page says "Probably none": few earlier calls broke out after that, and the page gives the count.

It is a description of what happened to earlier calls, recomputed with every run, not a forecast for one product.

Creators selling a product

A product page lists the creators behind the videos found with that product on a TikTok product card, and the Radar counts them. The count is a floor: TikTok publishes no list of who sells a product, so only the videos HashIQ has found are counted (on listing cards, by searching for the product's name, and in the post lists of accounts that already sell it).

What is shown of a creator is what their public video shows: picture, name, handle, follower count and whether TikTok marks the account verified. The picture is loaded from TikTok and never copied. No bio is collected, private accounts are left out, and a creator can ask to be removed.

Other platforms

Once a day, for the products with the highest Scores first, HashIQ searches three public pages for the product's name.

TikTok
Search suggestions: the phrases buyers type.
Amazon

The closest listing from the same brand, with its price, rating and the "bought in past month" badge Amazon shows.

A listing is shown only for a product with a brand, when the listing names that brand and at least three quarters of the name's words are in its title. It can be another size or variant, so its price is shown as it is and never compared with the TikTok Shop price; a product without a brand has no Amazon block at all.

YouTube
Videos uploaded in the last week whose own title carries the name, and their views.

These figures sit beside the Score, not inside it: whether they move before TikTok Shop sales do has not been tested yet, and the result will be published here either way.

The ledger

Calls are put in one file the day they are made: each record's canonical JSON is hashed with SHA-256 into a leaf, and the leaves into a Merkle root.

The file and the root are published, and the root is written to a contract on Base under that day's number, so anyone can check that a call was in it and when it was there. Until that transaction has gone through, a batch says "Anchor pending" and no transaction is shown.

What is not here yet

Commission rates and earnings per post are not shown: TikTok shows a product's commission only to signed-in creators, and HashIQ reads public pages only. The UK shop has no real source in HashIQ yet either. Neither is in the Score or anywhere on the site.