Upload two exports you already have: your inventory CSV and your sales CSV. You get the dead stock by SKU, the dollars tied up, what it burns per year just sitting there, and a markdown list your staff can run this week.
Exports from Shopify, Square, Lightspeed, or any spreadsheet work. Columns are auto-detected, so the standard download works as-is. The report appears the moment both files are in.
No files handy? Try the sample data: a realistic, clearly fictitious sneaker boutique with 25 SKUs and 90 days of sales, so you can see exactly what the report looks like before touching your own numbers.
Two downloads, no integrations, no API keys.
Computed from your two CSVs, entirely in this browser tab.
On-hand value at cost, by movement tier.
The join and the period, so you can sanity-check the math.
Dead and slow SKUs, sorted by the dollars they tie up.
| SKU | On hand | Value | Sold | Sell-through | Last sale | Status |
|---|
Staged by staleness: first markdown, deep markdown, then liquidate. Cash-back estimate assumes 70, 50, and 30 cents recovered per cost dollar by stage.
| SKU | Qty | Value | Days stale | Suggested action | Est. cash back |
|---|
No industry averages pretending to know your store. The period, the sales rate, and every threshold come from the two files you upload, and the two assumptions we do make are printed right on the report.
Inventory platforms start at $119.99 a month and want your whole forecasting workflow. Most stores first need one answer: how much cash is dead, and what do we mark down. That is a $49 report, not a subscription.
The free check tells you what is frozen. The $49 report turns it into a week-by-week markdown calendar, a liquidation plan for the bottom tier, and a reorder-stop list, written by a human who has looked at your numbers.
One reply, usually same day. No mailing list, no drip sequence.
No. Both files are read with the browser's FileReader API and analyzed by JavaScript running in this tab. There is no upload endpoint for them, which you can confirm in your browser's network inspector. Only if you submit the report-request form do the summary totals (not the files, not the SKUs) get sent.
Shopify, Square, Lightspeed, and generic spreadsheet exports. The parser handles quoted fields, commas, tabs and semicolons, preamble rows, and totals rows, and it auto-detects columns: SKU, quantity on hand, unit cost and date received in the inventory file; SKU, units sold and date in the sales file.
A SKU with stock on hand that either sold zero units in the whole period covered by your sales file, or has not sold in the last 60 days (you can set 30, 45, 60 or 90 on the report). Slow means it still sells, but at the current rate you are holding more than 6 months of stock. Everything is recomputed live when you change a threshold.
Because the whole point is cash: tied-up dollars are quantity times unit cost. If there is no cost column, the tool falls back to a price column and labels the report accordingly, but cost is the honest number.
A human pass over your actual numbers: a week-by-week markdown calendar with depths, a liquidation or bundle plan for the worst tier, a reorder-stop list, and the sanity checks a formula cannot make (seasonality you know about, sets that must stay together, items already committed). Request it with the form above.