Skip to content

Shopify's Stocky app stops working on 31 August 2026. Shopify replaced the purchase-order half of it. It did not replace the forecasting half. Shopify's own page →

For catalogues where most things sell slowly

Every row says whether the forecast beat your own sales history. Or that it lost. Or that there was too little history to check it at all.

levelin works out a reorder point, a suggested quantity and a supplier-ready purchase order for every SKU in your Shopify catalogue — built for the slow, spiky end of it, the products that sell nothing for three weeks and then four at once. Each row carries one of four words about the forecast behind it: Beats baseline, Below baseline, Unreliable, or Unproven. The last one means we could not check it at all, and on a store that installed today it is most of them.

$29 a month afterwards. Flat at any revenue — not banded by your GMV, not priced per SKU, no annual contract. One trial per store; we would rather say so here than have you find out from an invoice.

Measured once, on one catalogue of about 4,000 SKUs: levelin beat a four-week moving average on 42% of products, tied on 18% and lost on 40%. That is the entire accuracy claim we have, and yours would be the second catalogue we have ever tested.

UCI Online Retail II · median MASE 0.877 vs 0.938 · champion selected on earlier windows and scored on a held-out one · measured 25 Aug 2026

Reorder list 7 OF 1,842 SKUS · FORECAST RUN 04:12
SKU Pattern On hand Cover Order Forecast
CDL-SOY-VAN-220 Soy candle · Vanilla 220g SMOOTH 12 reorder at 31 4d 72 Beats baseline 0.71
MUG-CER-BLU-STK Stacking mug · Blue INTERMITTENT 41 reorder at 12 71d Beats baseline 0.88
NTB-A5-LIN-GRY A5 linen notebook · Grey ERRATIC 9 reorder at 24 7d 48 Below baseline 1.34
GFT-BOX-LRG-KFT Gift box · Large kraft LUMPY 7 reorder at 15 21d Unproven
TEA-CHAI-250-TIN Masala chai · 250g tin INTERMITTENT 5 reorder at 22 4d 36 Unproven
SCF-WOOL-CHR-01 Lambswool scarf · Charcoal UNCLASSIFIABLE 3 reorder at 8 11d 18 Unproven
SOAP-OAT-100-BAR Oat soap · 100g bar SMOOTH 88 reorder at 26 54d Beats baseline 0.79
An illustration of the reorder list, drawn in this site's own styling with sample data. Not a screenshot. Every column is a real field, and the four Forecast values are the four this app can produce — there is no fifth.

The column no other app in this category has.

Five apps were read closely in August 2026 — Inventory Planner, Prediko, Assisty, Cogsy and Stocky. Not one exposes a forecast error, a confidence interval or a backtest to the merchant. Assisty's own documentation tells you to compare forecast against actual by hand, monthly. Cited and dated →

Beats baseline 0.71

Scored 0.71 against your own sales history, where 1.00 is what you would get by assuming this period matches the last one. Lower is better.

Below baseline 1.34

Scored 1.34, which is worse than simply assuming this period matches the last one. Treat the suggested quantity as a starting point, not an answer.

Unreliable 2.60

Scored 2.60 — more than twice the error of assuming this period matches the last one. This SKU's demand is not being forecast well; decide the quantity yourself.

Unproven no score

Not enough sales history to check this forecast. The number comes from the default method for this demand pattern, with nothing measured behind it.

Those four sentences are not written here. They are imported from the function the app renders, so this page cannot describe a vocabulary the product does not ship.

The day you install, nearly every row says Unproven.

Shopify serves us 60 days of order history until it approves deeper access, which we have applied for and do not have. Sixty days is about eight weekly periods. At eight periods the demand classifier is mostly noise and the backtest has nothing to hold out, so most rows come back Unproven — and levelin says so in a banner above the table, before you order anything, rather than letting you find out in week three.

One method does not fit every SKU.

levelin measures two things about each product: how often it sells, and how much the quantity varies when it does. Those two numbers place it in one of four demand patterns, and each pattern is forecast by methods suited to it.

SMOOTH

Sells most weeks, steady quantity. Ordinary forecasting works, and we use ordinary forecasting.

INTERMITTENT

Sells in some weeks and not others, roughly the same amount each time. Croston, SBA and TSB exist for exactly this, and almost nobody in this category routes to them.

ERRATIC

Sells most weeks, wild quantities. Bigger safety stock, lower confidence, and the score column will usually tell you so.

LUMPY

Long silences, then a burst. There is no honest number here, so we do not print one. This SKU goes to a review list instead of a purchase order.

Safety stock, with the arithmetic shown.

Z · √( L · σd² + d̄² · σL² )  over lead time plus review period

Most apps in this category take safety stock as a number of days you type in. This one computes it from two sources of variation at once: how much your demand swings, and how much your supplier's lead time swings. A supplier who is reliably two weeks late produces a bigger buffer than one who is never late, without you having to work that out yourself.

σL comes from two questions you answer about the supplier when you set them up. It is the lead-time variability you tell us about, not lead-time variability we measured. If your answers are wrong, so is the buffer.

Three steps, then it runs nightly.

  1. 01

    Connect the store

    levelin reads your products, inventory levels and 60 days of order history through Shopify's bulk API — 60 because that is what Shopify grants until it approves deeper access, which we have asked for and do not have. The first sync takes a few minutes on a large catalogue; after that it keeps itself current from webhooks.

  2. 02

    Describe your suppliers

    A name, a lead time, and how late they get. Today the app assigns every unassigned SKU to one supplier in a single pass, and that pass is not reversible from the UI yet — so do it deliberately. Per-SKU reassignment is the next thing being built.

  3. 03

    Work the list

    levelin re-forecasts nightly, groups what needs ordering by supplier, and exports a purchase order. You send it. There is no automatic ordering of any kind, and there is not going to be.

Where it is weakest.

The worst cohort is SKUs whose sales are taking off. Median MASE 1.46 to 2.67, with only 16 to 35 percent beating the naive baseline. Every model levelin routes to emits a flat path — there is no seasonality term and no trend term anywhere in the engine. So the products it forecasts worst are growing products in a rising quarter, which is to say Q4. If you are buying this app to get BFCM right, it is the wrong app and we would rather you knew now.

The difference between a report and a decision.

WHAT A SPREADSHEET TELLS YOU

“Sold 12 units in 90 days.”

WHAT LEVELIN TELLS YOU

“Sells in bursts roughly every 11 days, 3 units at a time. With this supplier's 14-day lead time you need 9 on hand. You have 5. Order 24.”

What levelin does not do.

  • No automatic ordering. levelin proposes; you send.
  • No seasonality and no trend. Every routed model emits a flat path.
  • No bundles or kits.
  • No per-location reorder points.
  • No service-level setting yet. It is fixed in code, not exposed.
  • No customer data, at all — there is no customer column in the database to leak.
  • No accuracy promise. See the benchmark.

Questions

$29 a month.

USD, flat at any revenue, unmetered, no annual contract. 14-day free trial, one per store. That figure is imported from the same module Shopify builds the charge from, and the build fails if this page and that module disagree.

See pricing