Stock forecasts that tell you when not to trust them

A buyer deciding how much to reorder is betting under uncertainty, but most tools show one number with no sense of how wrong it might be. StockProphet, our own product, tests every forecast and only gives a firm reorder quantity when the forecast has earned it.

Client
StockProphet, our own product
Sector
Retail
Kind of work
AIWeb

The situation

StockProphet is our own inventory forecasting product for merchants who sell on WooCommerce, Magento 2 and Amazon. It syncs orders and stock, forecasts demand for each product 90 days ahead, and turns the forecast into reorder decisions.

What made it hard

A single forecast number hides how wrong it might be. A buyer who acts on a bad forecast loses money, and a buyer burned once stops trusting the tool.

What we did

  1. Tested each product’s forecast against recent sales before showing a reorder quantity. When the error is too high, the page says the forecast is not stable enough and holds back a firm number.
  2. Switched slow sellers, where most days have no sales, to a method built for that pattern.
  3. Removed out-of-stock days from training, so an empty shelf never reads as zero demand.
  4. Showed a forecast band and the test error next to every recommendation, so the buyer can see why the number is what it is.
  5. Gave every product a clear status (healthy, watch, reorder or out) with a quantity and a reorder-by date when the forecast passes.
  6. Kept the merchant in control: the system never sends a purchase order or changes a price without their click.
  7. Put the forecasting behind its own HTTP contract, so the Python model and the Laravel app can change without touching each other.

Before and after

BeforeAfter
A number for every productA number only when the test passes
Stock-outs read as low demandOut-of-stock days removed
Slow sellers break the modelA method built for slow sellers

What we would do differently

We reviewed our own marketing against the product and rewrote every claim the product could not demonstrate. Our next step is a published accuracy result on a public dataset, with the evaluation script beside it.

Built with

Laravel · Vue · Inertia · Python · Prophet · PostgreSQL · Amazon SP-API

Ready to build something great?

Tell us what’s breaking, or what you need built. You talk to the engineer who does the work.