{
  "slug": "reorder-point-safety-stock-3pl",
  "title": "Reorder Point Calculator",
  "heading": "Reorder Point Calculator",
  "category": "math",
  "url": "https://www.revenuelab.fyi/toolbox/reorder-point-safety-stock-3pl",
  "summary": "The inventory level that should trigger a new purchase order.",
  "description": "The reorder point is the on-hand-plus-on-order inventory quantity at which you must place a new order to avoid stocking out before the replenishment arrives. It's simply the demand you expect to consume during lead time, plus a safety stock buffer for variability. Get this number wrong on the low side and you stock out before the next shipment lands; too high and you're carrying excess inventory and tying up warehouse space and cash. This calculator computes the reorder point from average daily demand, lead time, and a safety stock figure (which you can generate with the companion safety stock calculator), then shows how many days of cover that reorder point represents so you can sanity-check it against your actual replenishment cycle.",
  "formula": "Reorder point = (Average daily demand × Lead time in days) + Safety stock.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=reorder-point-safety-stock-3pl",
  "inputs": [
    {
      "id": "avgDemand",
      "label": "Average daily demand",
      "kind": "number",
      "hint": null,
      "default": 120,
      "unit": "units",
      "min": 0,
      "max": null
    },
    {
      "id": "leadTime",
      "label": "Lead time",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "days",
      "min": 0,
      "max": null
    },
    {
      "id": "safetyStock",
      "label": "Safety stock",
      "kind": "number",
      "hint": null,
      "default": 420,
      "unit": "units",
      "min": 0,
      "max": null
    },
    {
      "id": "onHand",
      "label": "Current on-hand inventory (optional)",
      "kind": "number",
      "hint": null,
      "default": 1800,
      "unit": "units",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "rop",
      "label": "Reorder point",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "demandDuringLT",
      "label": "Expected demand during lead time",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "daysUntilRop",
      "label": "Days until on-hand hits reorder point",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "shouldOrder",
      "label": "Order now? (1=yes, 0=no)",
      "format": "number",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Average daily demand: 120 units",
      "Lead time: 12 days",
      "Safety stock: 420 units",
      "Current on-hand inventory (optional): 1800 units"
    ],
    "outputs": [
      "Reorder point: 1,860",
      "Expected demand during lead time: 1,440",
      "Days until on-hand hits reorder point: 0",
      "Order now? (1=yes, 0=no): 1"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter average daily demand (units).",
      "Enter lead time (days).",
      "Enter safety stock (units).",
      "Enter current on-hand inventory (optional) (units).",
      "Read your reorder point on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "avgDemand": 72,
        "leadTime": 7,
        "safetyStock": 250,
        "onHand": 1080
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "avgDemand": 120,
        "leadTime": 12,
        "safetyStock": 420,
        "onHand": 1800
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "avgDemand": 192,
        "leadTime": 19,
        "safetyStock": 670,
        "onHand": 2880
      }
    }
  ],
  "limitations": [
    "Results are rounded for display; the underlying calculation keeps full precision.",
    "Very large or very small inputs may hit floating-point limits in the browser.",
    "Inputs outside the accepted range are clamped rather than rejected."
  ],
  "faq": [
    {
      "q": "Is reorder point the same as safety stock?",
      "a": "No. Safety stock is only the buffer portion for variability; the reorder point is the full trigger quantity, which equals expected lead-time demand plus that safety stock buffer. People often confuse the two and set their purchasing trigger to the safety stock number alone, which guarantees a stockout under average conditions."
    },
    {
      "q": "Should I use lead time from the PO date or the order confirmation date?",
      "a": "Use PO submission to physical receipt at your dock, including any inbound transit and receiving/putaway delay before the stock is sellable. Using only the supplier's manufacturing lead time and ignoring freight transit is the most common way reorder points end up too low."
    },
    {
      "q": "What if demand isn't steady — it's seasonal?",
      "a": "Recalculate average daily demand using only the season you're heading into, not a trailing 12-month average that blends peak and trough. A single annual-average reorder point will underorder ahead of peak and overorder ahead of trough every single cycle."
    },
    {
      "q": "How often should reorder points be recalculated?",
      "a": "Monthly for A-items with volatile demand, quarterly for B-items, and semi-annually for stable C-items is a reasonable cadence. Any time lead time shifts meaningfully — new supplier, mode change from ocean to air, new distribution point — recalculate immediately rather than waiting for the scheduled review."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/safety-stock-service-level",
    "https://www.revenuelab.fyi/toolbox/eoq-carrying-cost",
    "https://www.revenuelab.fyi/toolbox/inventory-turns-dsi"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Reorder Point Calculator (https://www.revenuelab.fyi/toolbox/reorder-point-safety-stock-3pl)"
}