Reorder point
Know when to reorder, with a buffer for uncertainty.
InventoryAnalyze stock-lot receipt age, inactivity, and inventory value from a CSV using an explicit as-of date and inactive-stock threshold.
Analyze stock-lot receipt age, inactivity, and inventory value from a CSV using an explicit as-of date and inactive-stock threshold.
Age buckets use receipt dates; inactive flags use movement dates. Zero-quantity rows are not flagged. Review indicators are not write-off decisions.
| Record | SKU | Receipt date | Last movement | Quantity | Unit cost | Value | Receipt age days | Inactive days | Review |
|---|---|---|---|---|---|---|---|---|---|
| LOT-003 | PART-C | 2026-01-01 | Receipt baseline | 30 | 15 | 450 | 289 | 289 | Review |
| LOT-002 | PART-B | 2026-07-01 | 2026-07-15 | 50 | 20 | 1,000 | 108 | 94 | Review |
| LOT-001 | PART-A | 2026-10-01 | 2026-10-10 | 100 | 8 | 800 | 16 | 7 | Not flagged |
Each row represents one stock lot or record, with a unique record_id. Multiple lots may use the same SKU. Receipt-age buckets are 0-30, 31-60, 61-90, 91-180, and 181+ calendar days. Inactivity is calculated separately: a recently moved old lot remains old stock but is not necessarily inactive. A blank last_movement uses the receipt date as the baseline.
Age and inactivity answer different questions. Receipt age describes how long a lot has been held; a last-movement date describes a different kind of activity history.
An old lot may be required safety stock, and a recently moved lot may still be obsolete. Keep ownership, quality status, expiry, and expected demand with the review. Aging flags are not automatic provisions, write-offs, or disposal authorizations.
Use YYYY-MM-DD dates, a consistent quantity and cost basis, and actual lot-level receipts. An inactive flag is not proof of obsolete, expired, or unsalable stock. Future dates and movement before receipt are rejected. Missing movement history can overstate inactivity.
No. Receipt age and lack of movement are indicators for review, not an obsolescence or write-off decision.
Yes. Give each lot a unique record_id so different receipt dates are not blended into one misleading age.