Skip to tool
Skip to tool
🛒 E-commerce & Pricing
ECECH AppPrecision calculator

See Which Inventory Has Been Sitting the Longest

Paste or upload a CSV of receipt cohorts to group stock by age, find old inventory value, and export a row-level report.

Start with receipt-level inventory data

Use a CSV header row with sku, received_date, quantity, and unit_cost. Dates must be YYYY-MM-DD; quantity and unit cost must be zero or greater.

Up to 5,000 data rows or 2 MB. Processed locally in this browser.

One receipt cohort per row. Quoted CSV cells are supported. The first row must contain all four required column names; extra columns are ignored.

The selected file replaces the pasted CSV. Its contents and filename never leave this browser.

Inventory age is measured through this date.

Comma-separated, increasing whole days.

Advertisement

How the calculation works

Local inputboundedPer-item ruledeterministicArtifactcopy / download

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

  1. Prepare one header row containing sku, received_date, quantity, and unit_cost.
  2. Paste the CSV, choose a local file, or select Load sample to see the complete workflow immediately.
  3. 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.
  4. Select Analyze inventory. Review the summary first, then inspect any row marked “Needs review.”
  5. 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.

0–30 days50.0031–60 days20.0091–180 days60.00
The sample summary surfaces the oldest bucket and its value before the detailed rows.

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

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.
Advertisement

Frequently Asked Questions

Which CSV columns are required?
The header row must include sku, received_date, quantity and unit_cost. Their order may vary, and extra columns are ignored.
Why is a row marked Needs review?
The row-level status explains whether its column count, SKU, date, quantity or unit cost could not be used. Valid rows remain available.
What counts as inventory over 90 days old?
A valid receipt cohort is included when its age on the selected report date is greater than 90 whole days.
Does this upload my inventory data?
No. Pasted and selected CSV content is processed locally in the current browser tab and is not sent to an ecech calculation API.
Can this decide which stock to discount?
No. Age can prioritize review, but sales velocity, seasonality, condition, obligations and accounting policy remain outside this report.
Which reference supports the aging model?
The recorded reference is Shopify’s inventory aging report documentation, reviewed 2026-08-26.

Related tools in E-commerce & Pricing

Browse all E-commerce & Pricing tools
A handwritten note reading ecech.com resting on the keyboard used to build the site.

Made by one person

ecech. is not a content farm. Every tool here is written and checked by hand, one at a time, by someone who wanted the tool to exist and could not find a version that showed its working.

No accounts and no sign-in, and nothing you type reaches a server — every calculation on this page runs inside your browser. The ads are served by Google and do set their own cookies, which is set out in full on the privacy page. More about the site.