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 with less guesswork.
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