A pack-rounded replenishment CSV with recount and reservation exceptions
Inventory & Replenishment Exceptions
Turn stock snapshots and inbound orders into a checked replenishment queue.
intermediate · About 115 minutes · 4 lessons · 8 exercises + 1 project
Your finished work
A pack-rounded replenishment CSV with recount and reservation exceptions
Completion requires every output check to pass. Exact columns, types, values, missing values and duplicate counts all matter. A diagnostic score helps you revise your work.
All examples use original, fictional business data. Your final project starts with 88 source records.
The course
- Start lesson →
1. Separate unknown stock from zero
Identify counts that need investigation before ordering.
- Start lesson →
2. Validate inbound purchase orders
Create one defensible inbound record per PO key.
- Start lesson →
3. Project stock without losing exceptions
Join trusted arrivals while keeping the stock master complete.
- Start lesson →
4. Order complete packs with exception priority
Choose an action and a supplier-valid quantity.
Put it together
Handoff a replenishment and exception queue
88 source records. Apply the business rules, check your output and download a handoff report with your source, answer and results.
Preview your first input
CREATE TABLE stock (sku TEXT, on_hand INTEGER, reserved INTEGER, reorder_point INTEGER, target INTEGER, pack_size INTEGER);
INSERT INTO stock VALUES
('SKU-100',NULL,0,10,30,4),
('SKU-101',11,1,10,35,6),
('SKU-102',0,0,10,40,10),
('SKU-103',1,4,10,30,4),
('SKU-104',4,4,10,35,6),
('SKU-105',5,5,10,40,10),
('SKU-106',6,6,10,30,4),
('SKU-107',7,7,10,35,6);
CREATE TABLE inbound (po_id TEXT, sku TEXT, units INTEGER, eta TEXT, status TEXT);
INSERT INTO inbound VALUES
('PO-100','SKU-100',4,'2026-10-01','cancelled'),
('PO-101','SKU-101',5,'2026-10-02','confirmed'),
('PO-102','SKU-102',6,'2026-10-03','confirmed'),
('PO-103','SKU-103',7,'2026-10-04','confirmed'),
('PO-104','SKU-104',8,'2026-10-05','confirmed'),
('PO-105','SKU-105',9,'2026-10-06','confirmed'),
('PO-106','SKU-106',10,'2026-10-07','confirmed'),
('PO-101','SKU-101',5,'2026-10-02','confirmed'),
('PO-102','SKU-102',999,'2026-10-03','confirmed'),
('EDGE-100','SKU-104',7,'2026-10-07','confirmed'),
('ORPH-100','UNKNOWN',40,'2026-10-07','confirmed');