Install
openclaw skills install inventory-reorder-calculatorEstimate ecommerce reorder timing and quantity using demand, lead time, and safety stock assumptions so teams can set reorder points and reduce stockout risk...
openclaw skills install inventory-reorder-calculatorEstimate when to reorder and how much to buy before stock risk turns into lost revenue or excess inventory.
This skill goes beyond plugging numbers into a formula. It applies a structured inventory-planning workflow — demand analysis, lead-time modeling, safety stock calibration, and cash-vs-stockout tradeoff framing — to produce reorder recommendations operators can actually act on.
| Decision | Key Signal | Strong | Acceptable | Weak |
|---|---|---|---|---|
| Demand estimation | Historical vs assumed | Uses actual sales data + trend/seasonality | Reasonable assumption documented | Made-up round number |
| Safety stock | Risk calibration | Service-level-based (z-score × σ) | Days-of-cover heuristic | No safety stock or arbitrary buffer |
| Lead time | Supplier reliability | Avg + variability modeled | Single estimate documented | Ignored or assumed instant |
| Reorder point | Formula clarity | ROP = LT demand + safety stock, shown | Calculated but not explained | Just a number with no breakdown |
| Order quantity | Constraint-aware | Accounts for MOQ, carton multiples, cash | Basic EOQ or demand × days | Arbitrary round number |
| Risk framing | Actionable tradeoffs | Stockout cost vs carrying cost quantified | Risks named qualitatively | No risk discussion |
Most ecommerce teams get reorder planning wrong not because they lack data, but because:
Goal: Produce a reorder recommendation that an ops lead, buyer, or founder can act on today — with the math shown, assumptions visible, and risks framed.
Gather these inputs — mark any gaps explicitly:
Demand data:
Supply data:
Inventory data:
Business context:
See references/safety-stock-guide.md for service level and z-score tables.
See references/demand-analysis-guide.md for demand estimation methods.
Before calculating anything, understand the demand signal:
Average daily demand: [X] units/day
Demand std deviation: [σd] units/day
Trend: [growing / stable / declining at Y% per period]
Seasonality: [none / seasonal with peak in Z months]
Data quality: [strong (90+ days) / moderate (30–90 days) / weak (<30 days)]
If demand data is weak, flag this prominently — the entire calculation depends on this input.
See references/demand-analysis-guide.md for methods to handle trend, seasonality, and sparse data.
Supplier lead time is rarely constant. Model both average and variability:
Average lead time: [LT] days
Lead time std deviation: [σLT] days
Best case: [X] days
Worst case: [Y] days
Data source: [supplier quote / historical POs / assumption]
Rule: If lead time is based on a supplier quote alone (not historical data), add 20–30% buffer. Suppliers are optimistic.
Safety stock bridges the gap between average expectations and real-world variability:
Method 1: Service-level approach (preferred when data exists)
SS = z × √(LT × σd² + d² × σLT²)
Where:
z = service level z-score (1.65 for 95%, 1.96 for 97.5%, 2.33 for 99%)
LT = average lead time in days
σd = standard deviation of daily demand
d = average daily demand
σLT = standard deviation of lead time in days
Method 2: Days-of-cover heuristic (when data is limited)
SS = average daily demand × safety days
Where safety days = typically 5–14 days depending on:
- Lead time length (longer LT → more safety days)
- Demand variability (higher variability → more safety days)
- Stockout cost (higher cost → more safety days)
See references/safety-stock-guide.md for z-score tables and method selection guidance.
ROP = (average daily demand × average lead time) + safety stock
ROP = (d × LT) + SS
Interpret the result: "When on-hand inventory drops to [ROP] units, place a new order."
If in-transit stock exists, use effective inventory position:
Inventory position = on-hand + in-transit - backorders
Trigger reorder when: inventory position ≤ ROP
Basic approach:
Reorder quantity = average daily demand × days of coverage target
Constraint-adjusted approach:
Raw quantity = demand × coverage days
Adjusted for MOQ: max(raw quantity, MOQ)
Adjusted for carton multiple: round up to nearest carton multiple
Adjusted for cash: min(adjusted quantity, budget ÷ unit cost)
Adjusted for storage: min(adjusted quantity, available storage)
EOQ approach (when holding and ordering costs are known):
EOQ = √(2 × annual demand × order cost / holding cost per unit per year)
See references/output-template.md for the complete output format.
Every reorder decision involves tradeoffs. Make them visible:
| Scenario | Stockout Risk | Cash Tied Up | Coverage |
|---|---|---|---|
| Conservative (ROP + 20%) | Very low | High | [X] days |
| Recommended (ROP) | Low | Moderate | [Y] days |
| Aggressive (ROP - 20%) | Moderate | Low | [Z] days |
Quantify when possible:
Before delivering, verify with assets/reorder-checklist.md:
Return a structured package (see references/output-template.md):
Assumptions table
Demand and lead-time model
Reorder point calculation
Reorder quantity recommendation
Risk scenario table
Action items and review triggers
Strong output should:
Better output helps the operator act with confidence:
Inputs:
Output excerpt:
DEMAND MODEL
Avg daily demand: 42 units → adjusted for growth: 46 units/day (8%/mo trend)
Demand σ: 12 units/day
Data quality: Strong (90 days, consistent)
SAFETY STOCK (Service-level method, z=1.65 for 95%)
SS = 1.65 × √(21 × 12² + 46² × 4²)
SS = 1.65 × √(3024 + 33856)
SS = 1.65 × 192
SS = 317 units → round to 320
REORDER POINT
ROP = (46 × 21) + 320 = 966 + 320 = 1,286 units
⚠️ Current stock (890) is BELOW reorder point. Order now.
REORDER QUANTITY
Target coverage: 30 days post-receipt
Raw qty: 46 × 30 = 1,380 units
Adjusted for MOQ: 1,380 (above 500 MOQ ✓)
Adjusted for carton: 1,400 (nearest 50 multiple)
Cash required: 1,400 × $8.50 = $11,900
RISK SCENARIOS
| Scenario | Order Qty | Stockout Risk | Cash | Coverage |
|---|---|---|---|---|
| Conservative | 1,700 | <2% | $14,450 | 37 days |
| Recommended | 1,400 | ~5% | $11,900 | 30 days |
| Aggressive | 1,100 | ~12% | $9,350 | 24 days |
Inputs:
Output excerpt:
DEMAND MODEL
Current avg: 18 units/day
Seasonal forecast (next 60 days): ramping to ~25 units/day
Using forward estimate: 25 units/day
Demand σ: 7 units/day (higher variability due to seasonal transition)
⚠️ LEAD TIME WARNING
Avg LT: 35 days, but range is 28–50 days (σLT ≈ 6 days)
This supplier has high variability — safety stock must account for this.
SAFETY STOCK (z=1.65 for 95%)
SS = 1.65 × √(35 × 49 + 625 × 36) = 1.65 × √(1715 + 22500) = 1.65 × 156 = 257 units
REORDER POINT
ROP = (25 × 35) + 257 = 875 + 257 = 1,132 units
INVENTORY POSITION
On-hand: 520 + in-transit: 300 = 820
820 < 1,132 → ⚠️ Below ROP. Order immediately.
Days until stockout (no reorder): 520 ÷ 25 = 20.8 days
In-transit arrives in ~14 days → post-arrival: (520 - 350) + 300 = 470 units
470 ÷ 25 = 18.8 more days → ~33 days total before stockout
ACTION: Order now. Lead time of 35 days means new stock arrives just as
current + in-transit runs out. Any delay = stockout during peak season.
references/output-template.md — Complete structured output templatereferences/safety-stock-guide.md — Service levels, z-scores, and safety stock methodsreferences/demand-analysis-guide.md — Demand estimation, trend adjustment, and seasonality handlingassets/reorder-checklist.md — Pre-delivery quality checklist