Inventory Reorder Calculator
Estimate 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.
Quick Reference
| 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 |
Solves
Most ecommerce teams get reorder planning wrong not because they lack data, but because:
- - Gut-feel ordering — buying "about the same as last time" without modeling demand changes
- Ignoring lead-time variability — treating supplier lead time as fixed when it fluctuates 20–50%
- No safety stock logic — either zero buffer (stockouts) or massive buffer (cash drag)
- Formula without context — calculating ROP without explaining what drives it or when it breaks
- Missing constraints — ignoring MOQs, carton multiples, storage limits, or cash flow
- No risk framing — presenting a single number without showing the stockout vs overstock tradeoff
- Static calculations — one-time number with no guidance on when to recalculate
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.
Use when
- - You need a practical reorder point for a SKU or product group
- Demand is growing, volatile, or seasonal
- Lead time is long or unreliable
- You want to reduce stockouts without overbuying cash-intensive inventory
- A team needs to explain reorder logic to a buyer, founder, or ops lead
- You're setting up initial reorder rules for a new product or supplier
- Transitioning from gut-feel ordering to data-informed replenishment
Do not use when
- - You need a full supply-chain planning system or ERP implementation
- Historical demand is too weak to support even rough assumptions
- Supplier constraints are unknown and nobody can estimate them
- The task is warehouse slotting or operations design rather than reorder planning
- You need multi-echelon or multi-warehouse optimization
Inputs
Gather these inputs — mark any gaps explicitly:
Demand data:
- - Average daily or weekly unit sales (last 30/60/90 days)
- Demand trend direction (growing / stable / declining)
- Demand variability (standard deviation of daily sales, or coefficient of variation)
- Known seasonality, promotions, or launches upcoming
- Historical stockout periods (to adjust demand estimates)
Supply data:
- - Supplier average lead time (order-to-receipt, in days)
- Lead-time variability (best case / worst case / std dev)
- Minimum order quantity (MOQ)
- Carton multiples or packaging constraints
- Supplier reliability notes (late shipment frequency, quality issues)
Inventory data:
- - Current on-hand stock (units)
- Current in-transit stock (units, ETA)
- Storage capacity constraints
- Current inventory carrying cost (% of COGS per year, or $/unit/month)
Business context:
- - Target service level (e.g., 95%, 98%, 99%)
- Stockout cost estimate (lost margin + customer impact)
- Cash flow constraints or budget limits
- Review cycle / reorder cadence (daily / weekly / monthly)
- Product lifecycle stage (launch / growth / mature / clearance)
See references/safety-stock-guide.md for service level and z-score tables.
See references/demand-analysis-guide.md for demand estimation methods.
Workflow
1. Analyze demand pattern
Before calculating anything, understand the demand signal:
CODEBLOCK0
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.
2. Model lead time
Supplier lead time is rarely constant. Model both average and variability:
CODEBLOCK1
Rule: If lead time is based on a supplier quote alone (not historical data), add 20–30% buffer. Suppliers are optimistic.
3. Calculate safety stock
Safety stock bridges the gap between average expectations and real-world variability:
Method 1: Service-level approach (preferred when data exists)
CODEBLOCK2
Method 2: Days-of-cover heuristic (when data is limited)
CODEBLOCK3
See references/safety-stock-guide.md for z-score tables and method selection guidance.
4. Calculate reorder point
CODEBLOCK4
Interpret the result: "When on-hand inventory drops to [ROP] units, place a new order."
If in-transit stock exists, use effective inventory position:
CODEBLOCK5
5. Determine reorder quantity
Basic approach:
CODEBLOCK6
Constraint-adjusted approach:
CODEBLOCK7
EOQ approach (when holding and ordering costs are known):
CODEBLOCK8
See references/output-template.md for the complete output format.
6. Frame the risk tradeoffs
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:
- - "Stockout of [X] days costs ~$[Y] in lost margin"
- "Extra [X] units ties up $[Y] in cash for [Z] weeks"
7. Quality-check the recommendation
Before delivering, verify with assets/reorder-checklist.md:
- - Is the demand estimate based on data (not just a guess)?
- Is lead-time variability accounted for?
- Is safety stock calibrated to a service level or risk tolerance?
- Does the reorder quantity respect MOQ and packaging constraints?
- Are cash flow implications visible?
- Are assumptions explicitly stated?
- Is there guidance on when to recalculate?
Output
Return a structured package (see references/output-template.md):
- 1. Assumptions table
- Every input value with source and confidence level
- 2. Demand and lead-time model
- Demand stats, trend, variability
- Lead time stats and variability
- 3. Reorder point calculation
- Safety stock with method shown
- ROP with formula and plain-English interpretation
- 4. Reorder quantity recommendation
- Raw quantity and constraint-adjusted quantity
- Cash impact estimate
- 5. Risk scenario table
- Conservative / recommended / aggressive options
- Stockout risk and cash tradeoff for each
- 6. Action items and review triggers
- When to place the next order
- When to recalculate (demand shift, supplier change, etc.)
- Sensitivity warnings
Quality bar
Strong output should:
- - Show the math AND explain it in plain English
- Separate reorder point (when to order) from reorder quantity (how much)
- Account for demand variability, not just averages
- Account for lead-time variability, not just supplier quotes
- Respect real-world constraints (MOQ, cash, storage)
- Frame the stockout vs overstock tradeoff explicitly
- Flag fragile assumptions that could change the recommendation
What "better" looks like
Better output helps the operator act with confidence:
- - Knows when to reorder (and understands why that number, not another)
- Knows roughly how much to buy (and sees the tradeoff in buying more or less)
- Sees the cash vs stockout tradeoff in concrete terms
- Understands where lead-time risk changes the answer
- Can explain the decision to a buyer, founder, or ops lead
- Has clear triggers for when to recalculate
Examples
Example 1: Growing DTC skincare brand
Inputs:
- - Product: Vitamin C Serum 30ml
- Average daily sales: 42 units/day (last 90 days, growing ~8%/month)
- Daily demand std dev: 12 units
- Unit cost: $8.50, selling price: $29.99
- Supplier lead time: 21 days avg (std dev: 4 days)
- MOQ: 500 units, carton multiple: 50
- Current stock: 890 units, none in transit
- Target service level: 95%
- Review cadence: weekly
Output excerpt:
CODEBLOCK9
Example 2: Seasonal product with unreliable supplier
Inputs:
- - Product: Insulated water bottle
- Average daily sales: 18 units/day (but seasonal: 30/day in summer, 8/day in winter)
- Current month: April (ramping up)
- Supplier lead time: 35 days avg, range: 28–50 days
- MOQ: 200, unit cost: $6.20
- Current stock: 520, 300 in transit (ETA 2 weeks)
Output excerpt:
CODEBLOCK10
Common mistakes
- 1. Using averages without variability — "We sell 20/day" ignores that some days are 8 and others are 35
- Trusting supplier lead times — Quoted lead times are best-case; actual delivery is often 20–50% longer
- Forgetting in-transit inventory — Reordering when stock is low but 1,000 units are already shipping
- Ignoring MOQ and carton constraints — Calculating a perfect 347-unit order when MOQ is 500
- No cash flow context — Recommending a $50K order to a business with $30K available
- Static one-time calculation — Giving a number without saying when it should be recalculated
- Safety stock = gut feel — Using "2 weeks of safety stock" without connecting it to demand variability
- Not adjusting for trend — Using historical averages for a product that's growing 15%/month
Resources
- -
references/output-template.md — Complete structured output template - INLINECODE8 — Service levels, z-scores, and safety stock methods
- INLINECODE9 — Demand estimation, trend adjustment, and seasonality handling
- INLINECODE10 — Pre-delivery quality checklist
库存补货计算器
在库存风险转化为收入损失或过剩库存之前,估算何时补货以及采购多少。
该技能不仅仅是套用公式。它应用了一套结构化的库存规划工作流程——需求分析、交货期建模、安全库存校准以及现金与缺货权衡框架——以生成运营人员能够实际执行的补货建议。
快速参考
| 决策 | 关键信号 | 强 | 可接受 | 弱 |
|---|
| 需求估算 | 历史数据 vs 假设 | 使用实际销售数据 + 趋势/季节性 | 有记录且合理的假设 | 随意编造的数字 |
| 安全库存 |
风险校准 | 基于服务水平(z值 × σ) | 覆盖天数启发式 | 无安全库存或任意缓冲 |
| 交货期 | 供应商可靠性 | 平均值 + 变异性建模 | 有记录的单次估算 | 忽略或假设即时交货 |
| 再订购点 | 公式清晰度 | ROP = 交货期需求 + 安全库存,已展示 | 已计算但未解释 | 仅有数字,无分解 |
| 订购数量 | 考虑约束条件 | 考虑MOQ、箱装倍数、现金 | 基本EOQ或需求 × 天数 | 任意整数 |
| 风险框架 | 可执行的权衡 | 缺货成本与持有成本量化 | 风险定性说明 | 无风险讨论 |
解决的问题
大多数电商团队在补货规划上出错,并非因为缺乏数据,而是因为:
- - 凭直觉订购——和上次差不多地采购,而不对需求变化进行建模
- 忽略交货期变异性——将供应商交货期视为固定值,而实际波动幅度达20-50%
- 缺乏安全库存逻辑——要么零缓冲(缺货),要么大量缓冲(资金占用)
- 脱离上下文的公式——计算ROP却不解释其驱动因素或失效条件
- 忽略约束条件——不考虑MOQ、箱装倍数、存储限制或现金流
- 缺乏风险框架——只给出单一数字,不展示缺货与库存过剩的权衡
- 静态计算——一次性数字,未说明何时需要重新计算
目标:生成运营主管、采购人员或创始人今天就能执行的补货建议——数学计算清晰可见,假设条件一目了然,风险框架明确呈现。
适用场景
- - 需要为某个SKU或产品组确定实用的再订购点
- 需求正在增长、波动剧烈或具有季节性
- 交货期较长或不可靠
- 希望在不过度采购资金密集型库存的情况下减少缺货
- 团队需要向采购人员、创始人或运营主管解释补货逻辑
- 正在为新产品或新供应商建立初始补货规则
- 从凭直觉订购过渡到数据驱动的补货
不适用场景
- - 需要完整的供应链规划系统或ERP实施
- 历史需求数据太弱,无法支撑即使是粗略的假设
- 供应商约束条件未知且无人能够估算
- 任务是仓库库位规划或运营设计,而非补货规划
- 需要多层级或多仓库优化
输入项
收集以下输入项——明确标记任何缺失项:
需求数据:
- - 平均每日或每周单位销量(最近30/60/90天)
- 需求趋势方向(增长/稳定/下降)
- 需求变异性(日销量标准差或变异系数)
- 已知的季节性、促销活动或即将推出的新品
- 历史缺货期(用于调整需求估算)
供应数据:
- - 供应商平均交货期(从下单到收货,以天计)
- 交货期变异性(最佳情况/最差情况/标准差)
- 最小订购量(MOQ)
- 箱装倍数或包装限制
- 供应商可靠性记录(延迟发货频率、质量问题)
库存数据:
- - 当前在手库存(单位)
- 当前在途库存(单位,预计到货时间)
- 存储容量限制
- 当前库存持有成本(占年销售成本的百分比,或每单位每月美元数)
业务背景:
- - 目标服务水平(例如95%、98%、99%)
- 缺货成本估算(损失利润 + 客户影响)
- 现金流约束或预算限制
- 审查周期/补货节奏(每日/每周/每月)
- 产品生命周期阶段(上市/增长/成熟/清仓)
参见 references/safety-stock-guide.md 获取服务水平与z值表。
参见 references/demand-analysis-guide.md 获取需求估算方法。
工作流程
1. 分析需求模式
在计算任何内容之前,先理解需求信号:
平均日需求:[X] 单位/天
需求标准差:[σd] 单位/天
趋势:[每期增长Y%/稳定/下降Y%]
季节性:[无/有季节性,高峰期在Z月]
数据质量:[强(90天以上)/中等(30-90天)/弱(少于30天)]
如果需求数据较弱,请突出标记——整个计算都依赖于此输入。
参见 references/demand-analysis-guide.md 获取处理趋势、季节性和稀疏数据的方法。
2. 建模交货期
供应商交货期很少是恒定的。对平均值和变异性进行建模:
平均交货期:[LT] 天
交货期标准差:[σLT] 天
最佳情况:[X] 天
最差情况:[Y] 天
数据来源:[供应商报价/历史采购订单/假设]
规则:如果交货期仅基于供应商报价(而非历史数据),则增加20-30%的缓冲。供应商往往过于乐观。
3. 计算安全库存
安全库存弥合了平均预期与现实世界变异性之间的差距:
方法1:服务水平法(数据存在时首选)
SS = z × √(LT × σd² + d² × σLT²)
其中:
z = 服务水平z值(95%为1.65,97.5%为1.96,99%为2.33)
LT = 平均交货期(天)
σd = 日需求标准差
d = 平均日需求
σLT = 交货期标准差(天)
方法2:覆盖天数启发式(数据有限时使用)
SS = 平均日需求 × 安全天数
其中安全天数通常为5-14天,取决于:
- - 交货期长度(交货期越长 → 安全天数越多)
- 需求变异性(变异性越高 → 安全天数越多)
- 缺货成本(成本越高 → 安全天数越多)
参见 references/safety-stock-guide.md 获取z值表和方法选择指南。
4. 计算再订购点
ROP = (平均日需求 × 平均交货期) + 安全库存
ROP = (d × LT) + SS
解读结果:当在手库存降至 [ROP] 单位时,下达新订单。
如果存在在途库存,使用有效库存位置:
库存位置 = 在手库存 + 在途库存 - 缺货订单
触发再订购条件:库存位置 ≤ ROP
5. 确定再订购数量
基本方法:
再订购数量 = 平均日需求 × 目标覆盖天数
考虑约束条件的方法:
原始数量 = 需求 × 覆盖天数
根据MOQ调整:max(原始数量, MOQ)
根据箱装倍数调整:向上取整至最近的箱装倍数
根据现金调整:min(调整后数量, 预算 ÷ 单位成本)
根据存储调整:min(调整后数量, 可用存储空间)
EOQ方法(当持有成本和订购成本已知时):
EOQ = √(2 × 年需求 × 订购成本 / 每单位年持有成本)
参见 references/output-template.md 获取完整输出格式。
6. 构建风险权衡框架
每次补货决策都涉及权衡。使其可见:
| 情景 | 缺货风险 | 占用现金 | 覆盖天数 |
|---|
| 保守(ROP + 20%) | 极低 | 高 | [X] 天 |
| 推荐(ROP) |
低 | 中等 | [Y] 天 |
| 激进(ROP - 20%) | 中等 | 低 | [Z] 天 |
尽可能量化:
- - [X] 天的缺货将造成约 $[Y] 的利润损失
- 额外 [X] 单位将占用 $[Y] 现金达 [Z] 周
7. 质量检查建议
在交付前,使用 assets/reorder-checklist.md 进行验证:
- - 需求估算是否基于数据(而非猜测)?
- 是否考虑了交货期变异性?
- 安全库存是否根据服务水平或风险承受能力进行了校准?
- 再订购数量是否尊重MOQ和包装约束?
- 现金流影响是否可见?
- 假设条件是否明确陈述?
- 是否有何时重新计算的指导?
输出
返回一个结构化的包(参见 references/output-template.md):
- 1. 假设条件表
- 每个输入值及其来源和