The Fast Mover Alert answers one question: “which in-stock items are selling fast enough at their current price that I should think about raising it?” An item gets on the list by passing any one of three doors. This is a price-raise list, not a restock list — and it runs entirely on confirmed sales tables. The sell-cycle machinery (in-stock velocity, stockout pressure, runway) is set aside for now — see the note in section 4.
An item joins the list if it clears the noise floor (at least 3 sales in the last 30 days, in stock, READY) and opens any one of these doors:
Over the days it’s actually been available, this item averages a sale a day or more. Steady, real demand — not a one-off spike.
The catalog’s own “days to sell” for this item is three days or less — it clears the shelf almost as fast as it lands.
Sell rate × current price = rupiah moving per day. Even at under a unit a day, a pricey item can push serious money — and deserves a look.
Every row carries a price_raise_signal that names why it’s fast, from
strongest pricing power to gentlest. It’s the first thing to read on a card:
| Signal | Means | Read it as |
|---|---|---|
| A — sells out on arrival | No shelf-time was ever recorded, yet it has lifetime sales — it goes the moment it lands. | Strongest raise candidate. The market never even let it sit. |
| B — very fast shelf | Days-to-sell ≤ 3. | Clears in days. Almost certainly room to raise. |
| C — steady fast | Calendar rate ≥ 1 unit/day. | Reliable everyday demand. A small raise likely sticks. |
| D — watch | On the list only through the revenue-pace door (big rupiah/day, slower unit speed). | Watch it. Value is high; test a raise carefully. |
The list sorts by revenue pace = calendar sell rate × current price (rupiah per day). Row 1 is the item moving the most money each day at today’s price — the biggest prize if a raise sticks, and the most expensive mistake if it’s underpriced. It’s derived the same way in both the dashboard and Sparkle’s cards, so the two always agree.
gld_item_sell_cycle) for in-stock velocity, demand pressure (stockouts hiding
real demand) and runway. That table is unconfirmed — pending Shan (Sōdan) — so this build runs
without it. The cost: the strongest “pricing power” signal, the one that spotted items whose
stockouts were masking demand, is not detectable here. When the cycle table is confirmed we
bolt that door back on. Until then, treat this as a solid velocity list, not a
pressure one.
Also gone with the cycle: runway (days of stock left), the urgency A/B/C tiers, and “est. lost revenue if ignored”. This build doesn’t estimate a rupiah-at-risk number, so nothing here rests on the old unconfirmed 14-day lead-time assumption.
Type an item’s numbers and watch which doors open. Leave days-to-sell blank to model an item that sold out before any shelf-time was recorded.
| Where | What you get |
|---|---|
| Dashboard (this tool) | The full list — filter by signal, sort, export. Per-row 📝 Resolve (with a note) and ✕ Ignore. |
| Sparkle (Discord) | Change-detection watch, hourly (09:00–19:00 WIB). It keeps a snapshot of the list and only pings on a 🆕 new item or a 🔺 escalation (signal getting more urgent) — an item cooling off stays quiet. Cards carry ✅ 📝 😴 🚫 buttons and are ranked by revenue pace. Manual /alerts check always shows the current list without disturbing the watch. |
| Shared memory | Dashboard and Discord write the same state file, and build the same signature (TF:<id>:<signal letter>) — resolve or ignore on either side and the other goes quiet too, so nothing is handled twice. Notes are kept, so future-you knows what past-you was thinking. |
| Verification loop | A Resolve is quiet for 3 days, then the item reappears (if still flagged) with your old note attached — so you can judge whether the raise actually changed the pace. Only ✕ Ignore is forever. |
| Escalation | Handling an item at signal C does not silence signal A — if it escalates, it comes back. Bad news always gets through. |
No-cycle price-raise build. The three doors are fixed gates in the query (rate ≥ 1/day,
days-to-sell ≤ 3, revenue pace ≥ Rp 500K/day), not calibrated percentiles. Reference SQL:
KyouTools/sql/kyou_fast_mover_query.sql, saved in Metabase under toofast → main.