{
  "slug": "inventory-reorder-point",
  "title": "Reorder Point Calculator",
  "heading": "Reorder Point & Safety Stock Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/inventory-reorder-point",
  "summary": "When to reorder and how much buffer stock to hold.",
  "description": "Stockouts come from variability, not averages. Safety stock sizes the buffer from demand and lead-time variability at your chosen service level, and the reorder point tells you the on-hand quantity that should trigger a purchase order.",
  "formula": "Safety stock = Z × √(LT × σd² + d² × σLT²); ROP = average demand × lead time + safety stock.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=inventory-reorder-point",
  "inputs": [
    {
      "id": "dailyDemand",
      "label": "Average daily demand",
      "kind": "number",
      "hint": null,
      "default": 120,
      "unit": "units",
      "min": 0,
      "max": null
    },
    {
      "id": "demandSd",
      "label": "Daily demand std deviation",
      "kind": "number",
      "hint": null,
      "default": 35,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "leadTime",
      "label": "Lead time",
      "kind": "number",
      "hint": null,
      "default": 21,
      "unit": "days",
      "min": 0,
      "max": null
    },
    {
      "id": "leadSd",
      "label": "Lead time std deviation",
      "kind": "number",
      "hint": null,
      "default": 4,
      "unit": "days",
      "min": 0,
      "max": null
    },
    {
      "id": "service",
      "label": "Service level",
      "kind": "select",
      "hint": null,
      "default": "95",
      "options": [
        {
          "value": "90",
          "label": "90% (Z = 1.28)"
        },
        {
          "value": "95",
          "label": "95% (Z = 1.65)"
        },
        {
          "value": "98",
          "label": "98% (Z = 2.05)"
        },
        {
          "value": "99",
          "label": "99% (Z = 2.33)"
        }
      ]
    },
    {
      "id": "unitCost",
      "label": "Unit cost",
      "kind": "number",
      "hint": null,
      "default": 8.5,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "rop",
      "label": "Reorder point (units)",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "safety",
      "label": "Safety stock (units)",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "cycle",
      "label": "Cycle stock during lead time",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "daysCover",
      "label": "Days of cover in safety stock",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "capital",
      "label": "Capital tied up in safety stock",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Average daily demand: 120 units",
      "Daily demand std deviation: 35",
      "Lead time: 21 days",
      "Lead time std deviation: 4 days",
      "Service level: 95% (Z = 1.65)",
      "Unit cost: 8.5 $"
    ],
    "outputs": [
      "Reorder point (units): 3,355",
      "Safety stock (units): 835",
      "Cycle stock during lead time: 2,520",
      "Days of cover in safety stock: 7",
      "Capital tied up in safety stock: $7,098"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter average daily demand (units).",
      "Enter daily demand std deviation.",
      "Enter lead time (days).",
      "Enter lead time std deviation (days).",
      "Enter service level.",
      "Enter unit cost ($).",
      "Read your reorder point (units) 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": {
        "dailyDemand": 72,
        "demandSd": 21,
        "leadTime": 13,
        "leadSd": 2.4,
        "service": "95",
        "unitCost": 5.1
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "dailyDemand": 120,
        "demandSd": 35,
        "leadTime": 21,
        "leadSd": 4,
        "service": "95",
        "unitCost": 8.5
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "dailyDemand": 192,
        "demandSd": 56,
        "leadTime": 34,
        "leadSd": 6.4,
        "service": "95",
        "unitCost": 13.600000000000001
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Why does lead-time variability matter so much?",
      "a": "It is multiplied by average demand, so a supplier that swings four days on a 120-unit-a-day SKU contributes far more variance than day-to-day demand noise."
    },
    {
      "q": "Is a higher service level always better?",
      "a": "No. Going from 95 to 99 percent raises safety stock by about 40 percent for one-tenth the stockout reduction. Reserve high service levels for A items."
    }
  ],
  "related": [],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Reorder Point Calculator (https://www.revenuelab.fyi/toolbox/inventory-reorder-point)"
}