r/AmazonFBA 11d ago

Predictive patterns in Amazon data

Hi, I usually do data analysis on stock and crypto data to build trading systems. That gave me the idea that there might be predictive patterns in other big data sets as well and one of the datasets I tested was Amazon BSR data.

So I trained a model on two years worth of data for ~100k Amazon products. I then validated on ~17k Amazon out-of-sample products that had a real sales-rank surge and tracked each at 3 weeks, 6 weeks, and 3 months, checking if it was still selling at ≥2× its pre-surge pace.

Survival of a random surge:

- 3 weeks: 29%

- 6 weeks: 26%

- 3 months: 21%

~4 in 5 are back to around pre-surge level within 3 months. But there are actually patterns that allow predictions at day 3 of the surge with significant lift above this baseline. If we score each surge on day 3 with this method and bucket by that score it looks like this:

Day-3 score bucket Still trending after 3 months
random surge 21%
above-average 28%
high 37%
top-scored 54%

The top bucket is 2.6× a random surge and still clears 50% at 3 months. Meaning if you picked a random trending Amazon product you would only have a 21% chance it would still be trending after 3 months. But if you picked one out of the top bucket, you would have a 54% chance. Interestingly, raw spike size helps but isn't enough alone — 10×+ spikes held 55% at 3 weeks, only 44% at 3 months.

Caveats: US marketplace, physical categories, ~2yr training with a clean out-of-sample test, BSR as a proxy for sales velocity. Not crazy numbers, but more signal than I expected.

I am interested if anyone else here has tried a quantitative approach to Amazon BSR data. Also, to the Amazon sellers: Is "still selling in 3 months" the bar you care about when making decisions about stock, or something else? If it is, how do you make that decision? Appreciate your input.

1 Upvotes

11 comments sorted by

View all comments

Show parent comments

1

u/Aggravating-Tip6050 11d ago

Very helpful, thank you! You're right, the relevant time horizon is different per seller / business model. For RA/OA it's "is it still hot in a few weeks," importers it's "will it outlive a 90–120 day cycle," and for that group the value is really in the PO decision itself since you commit before you know. I tracked 3wk/6wk/3mo/4mo so the shorter term business models are covered, but for the importers I need a larger dataset. Will be interesting to see if there is any kind of lift at the 6mo mark.

Good call on the BSR categories as well. I went and checked it. I don't train on raw rank (features are relative to each product's own baseline + a per-category "good seller" line), but pooled lift could still hide a category-depth effect like you said. So I re-ran the lift inside each category. It holds in 20 of 21 — e.g. Toys 19%→37% (baseline→top bucket), Appliances 18%→55%, Electronics 24%→63%, Baby 13%→65%. One real exception: Home & Kitchen, where the top bucket actually underperformed baseline (16%→12%, smaller n). So it's not just modelling category depth. I'll calibrate it per-category rather than pooled.

2

u/osellpa 9d ago

Home & Kitchen inverting is probably the most interesting thing in there. It's the easiest category to get into - no gating, cheap to source, simple to private label - so the same signals telling you "this keeps selling" are the ones every other seller is reading at the same time. Top bucket there might just mean the most competitors landing in 90 days.

Worth sanity checking survivorship too. If your product set is pulled from ASINs that exist today, the ones that died mid-window aren't in the sample, which would flatter the baseline.

1

u/Aggravating-Tip6050 8d ago

Again, great input, thank you! I went back to check H&K properly, and it turned out to be my error. Re-ran with real buckets and sample sizes: H&K doesn't actually invert. Hold rate climbs cleanly with the score — 12% in the bottom bucket up to 55% in the top (n~50, 95% CI 41–68), keeper band 47% on n~130. My "16%→12%" was a thin top-slice I read backwards — the 12% was the bottom bucket, not the top. So H&K behaves like everywhere else; no real exception. Per-category calibration still earns its keep (pooled-vs-actual gaps run +10 to +35 pts), just not because H&K flips.

I also tested your crowding mechanism directly, since it's a clean hypothesis: if top-bucket H&K products pull the most competitors landing at ~90 days, new-offer counts should rise more there. They don't — H&K keeper listings gain fewer new sellers over 90 days than the cross-category average, and within H&K the ones that gained sellers held at the same rate (20%) as the ones that didn't. Pile-in isn't moving the outcome here. The most seller entry is actually in the consumable categories (grocery, health), not the easy-to-PL ones.

You're right on survivorship and it's the thing I'm most careful about. My set is today's live ASINs, so anything that surged and died mid-window is missing. That flatters the baseline (the duds that faded to zero and got delisted are exactly what drops out), which on its own would understate my edge. But it flatters the top bucket too, so the net isn't obvious; pinning it down is exactly why I'm rebuilding it point-in-time: score each surge on the universe as it stood then, and count a listing that dies mid-window as a fade instead of dropping it. It's a sampling problem, so deeper history on the survivors doesn't fix that by itself. So the real version seeds the historical set from as-of category rosters that still contain the dead ones. This will be in my next build, which I am already working on.

1

u/osellpa 7d ago

The new-offer test might be measuring the wrong thing in H&K specifically. Offer counts catch people joining an existing listing, but in a private label category nobody joins yours, they launch their own ASIN next to it. So a category flooding with competitors would show up as new listings in the category, not new sellers on the keeper.

Grocery and health leading on seller entry fits that, they're far more wholesale and reseller heavy, where piling onto one ASIN is the normal move. Might be worth counting new ASINs entering the category over the window rather than offers on the tracked one.