Free instant inventory check. Files never leave your browser.

Find the cash frozen on your shelves in 60 seconds.

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.

Check my inventory
20 to 30%of a typical retailer's inventory is dead or obsolete, per industry warehouse studies
$25,000/yrwhat $100K of dead stock burns at a 25% annual carrying cost, before a single markdown
$119.99/mowhere incumbent inventory platforms start. This check is free, and the full report is $49 once
🔒
100% in your browserParsing, joining, and the math all run client-side in this tab. Your files are never uploaded to any server.
🚫
No account connectionWe never touch your Shopify, Square, or POS login. Two CSV exports are all it takes.
🗑
Nothing storedClose the tab and your data is gone. There is no database on our side to leak.
Step 1

Drop in your two CSVs

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.

📦
Inventory CSV SKU, quantity on hand, unit cost.
Date received is optional but helps.
🧾
Sales CSV SKU, units sold, date.
60 to 180 days of history is ideal.

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.

Where to get the two exports

Two downloads, no integrations, no API keys.

1
Shopify: Products page, Export for inventory (SKU, cost, quantity). Analytics, Sales by product variant SKU for sales.
2
Square: Items, Item Library, Export for inventory. Reports, Item Sales for sales.
3
Lightspeed / other POS: any inventory report with SKU, on-hand quantity and unit cost, plus any sales-by-item report with dates.
4
Spreadsheet people: save as .csv with columns like SKU, Qty on Hand, Unit Cost, and Date, SKU, Units Sold. Headers are auto-detected.
⚠️ SAMPLE DATA. Fictitious sneaker boutique, for demonstration only.
There is $0 frozen in dead stock on your shelves.

Computed from your two CSVs, entirely in this browser tab.

Carrying cost%/yr
Dead after without a sale
Slow above of stock
Your sales CSV has no date column, so a 90-day period is assumed and only zero-sellers can be flagged dead. Re-export with a date column for the full analysis.
No unit-cost column was found in the inventory CSV, so the Price column is being used instead. Figures reflect retail value, not cost.
Total inventory value$0
Dead stock value$0
Carrying-cost burn$0/yr
Est. cash unlockable$0via the markdown list below, at 70/50/30 cents on the cost dollar

Where the money sits

On-hand value at cost, by movement tier.

What we read from your files

The join and the period, so you can sanity-check the math.

Top offenders

Dead and slow SKUs, sorted by the dollars they tie up.

SKUOn handValueSoldSell-throughLast saleStatus

Markdown / liquidation list 0 SKUs

Staged by staleness: first markdown, deep markdown, then liquidate. Cash-back estimate assumes 70, 50, and 30 cents recovered per cost dollar by stage.

SKUQtyValueDays staleSuggested actionEst. cash back
Turn this into a full $49 report
How SKUs are judged

Three tiers, computed from your own numbers

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.

🧊
DeadZero sales in the whole period, or no sale in the last 60 days (adjustable). This is the cash frozen solid.
🐌
SlowStill selling, but at the current rate there is more than 6 months of stock on the shelf (adjustable).
HealthyEverything else: selling recently, at a rate that clears the shelf in a reasonable window.
💰
Carrying costDefault 25%/yr of on-hand value: capital, storage, insurance, shrink, obsolescence. Adjustable on the report.
🆕
New arrivalsSKUs received more recently than the dead threshold are never flagged dead. Too new to judge is not the same as dead.
Why this exists

One question, one price. Not another platform.

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.

Incumbent inventory platforms
$119.99/mo and up
  • Entry list price $119.99/mo; real quotes commonly run $250 to $900+ per month
  • Full replatform of purchasing and forecasting before you see value
  • Requires connecting your store accounts and syncing your data to their cloud
  • Overkill when the question is simply: what is dead, and what do we do Friday
Step 2, if you want it

Finding the dead stock is free. Want the plan?

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.

Your summary numbers from this page go into the request, so the reply is specific from the first email.
Works for physical retail, e-commerce, or both. Multi-location welcome.
No retainers pushed, no lock-in. You get the plan; execution is up to you.

Request the $49 dead-stock report

One reply, usually same day. No mailing list, no drip sequence.

Only the summary numbers you see above are included, never your files. The CSVs stay in your browser.

Got it. Your request is in, and the reply will reference the dead-stock numbers from this page. Check your inbox soon.
FAQ

Fair questions

Are my CSVs uploaded anywhere?

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.

Which exports work?

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.

How is "dead" defined?

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.

Why does the inventory file need unit cost?

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.

What does the $49 report add?

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.