How to Use This Tool
Use this analyzer when you have receipt-level inventory rows and need to see how much stock value has remained on hand across practical age buckets. The workspace accepts pasted CSV or one local CSV file, performs the analysis in the current browser tab, and produces both an on-screen review and a downloadable report.
How to use
- Prepare one header row containing
sku,received_date,quantity, andunit_cost. - Paste the CSV, choose a local file, or select Load sample to see the complete workflow immediately.
- Set the report date and increasing age cutoffs. The default cutoffs create 0–30, 31–60, 61–90, 91–180, and over-180-day buckets.
- Select Analyze inventory. Review the summary first, then inspect any row marked “Needs review.”
- Export only after the reported row count and total value reconcile with the source.
Required columns
sku identifies the item. received_date must be an ISO date such as 2026-08-20. quantity is the remaining quantity represented by that receipt cohort, and unit_cost is its per-unit cost on one consistent valuation basis. Column order may vary and extra columns are ignored, but all four required names must appear in the first row.
Example
The sample contains four cohorts. Three are valid and one deliberately uses bad-date, so the completion state demonstrates partial failure without discarding the valid rows. On the sample report date, the valid cohorts total 130.00 in inventory value; 60.00, or 46.2%, is more than 90 days old.
How to read the aging report
The oldest-bucket card shows where the maximum valid age falls. “Value over 90 days” is the sum of quantity multiplied by unit cost for valid cohorts older than 90 days, divided by total valid value for the percentage. Rows processed includes valid and rejected data rows, while the detailed table preserves source-row numbers so a correction can be made in the original CSV.
Common mistakes
- Uploading a current SKU total without separate receipt cohorts: one aggregate row cannot reveal when its units arrived.
- Using a date after the report date: future receipts are rejected instead of being assigned a negative age.
- Mixing currencies or valuation bases in
unit_cost: the displayed total is only meaningful when costs are comparable. - Entering unordered or duplicate cutoff days: bucket limits must increase from left to right.
Limitations
Age is an investigation signal, not proof that inventory is obsolete or should be discounted. This page does not forecast demand, consume sales history, allocate outbound orders, choose an accounting method, or recommend write-downs. It also does not join lots or warehouses unless those distinctions already appear as separate receipt rows. Preserve the source file and reconcile the exported totals before making operational or accounting decisions.
Privacy and local processing
The CSV is read and calculated in this browser tab. The tool does not send file contents, filenames, SKU values, dates, quantities, costs, or results to an ecech calculation service. The 2 MB and 5,000-row limits keep the interaction bounded on phones and ordinary laptops.
Sources & assumptions
Tool Spec v2 · verified 2026-08-26. Platform rules and fees can change; the editable inputs remain authoritative for your account.
Official references
- Shopify — Inventory aging report (checked 2026-08-26)
Model assumptions
- Dates are ISO calendar dates without time zones.
- Quantity and unit cost share one valuation basis and currency.
- Each row is a receipt cohort, not a current SKU aggregate.
- It does not forecast sales, value inventory under an accounting policy, merge outbound allocations, identify lots or recommend write-downs.
