{
  "id": "lead-time",
  "version": "ca7a8c2b9e9a",
  "status": "published",
  "name": "Lead Time Calculator",
  "question": "What is my lead time?",
  "summary": "Adds up order processing, production, transit and receiving days into the total lead time, finds the date the goods arrive (in calendar or business days), and gives the reorder point from daily demand and safety stock.",
  "category": "logistics",
  "subcategory": "shipping",
  "url": "https://www.acalculator.org/logistics/lead-time-calculator",
  "markdown": "https://www.acalculator.org/logistics/lead-time-calculator.md",
  "kind": "function",
  "method": "Lead time = order processing + production + transit + receiving (days); arrival = order date + lead time (calendar days, or business days skipping Saturdays and Sundays); reorder point = daily demand × lead time + safety stock.",
  "assumptions": [
    "Business days skip Saturdays and Sundays only; public holidays are not skipped.",
    "Each part of the lead time is a whole number of days. Use averages from past orders, or the supplier’s quote.",
    "The reorder point assumes steady daily demand; the safety stock covers the variation."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "date": {
        "title": "Order date",
        "description": "The day the order is placed.",
        "type": "string",
        "format": "date"
      },
      "proc": {
        "title": "Order processing",
        "description": "Days for the supplier to accept and prepare the order.",
        "type": "integer",
        "minimum": 0,
        "maximum": 365
      },
      "prod": {
        "title": "Production or picking",
        "description": "Days to make the goods or pick them from stock.",
        "type": "integer",
        "minimum": 0,
        "maximum": 365
      },
      "ship": {
        "title": "Transit",
        "description": "Days the shipment is on the way.",
        "type": "integer",
        "minimum": 0,
        "maximum": 365
      },
      "recv": {
        "title": "Receiving",
        "description": "Days to unload, check and put the goods into stock.",
        "type": "integer",
        "minimum": 0,
        "maximum": 365
      },
      "days": {
        "title": "Count",
        "description": "Whether the days are calendar days, or business days that skip Saturdays and Sundays.",
        "type": "string",
        "enum": [
          "calendar",
          "business"
        ]
      },
      "demand": {
        "title": "Daily demand (optional)",
        "description": "Average units used or sold per day, counted in the same kind of days, for the reorder point.",
        "type": "number",
        "minimum": 0,
        "maximum": 1000000000
      },
      "safety": {
        "title": "Safety stock (optional)",
        "description": "Units kept in reserve against late deliveries or extra demand.",
        "type": "number",
        "minimum": 0,
        "maximum": 1000000000000
      }
    }
  },
  "outputs": {
    "days": {
      "label": "Lead time",
      "description": "Order processing + production + transit + receiving, in days.",
      "format": "integer"
    },
    "arrival": {
      "label": "Goods in stock on",
      "description": "The order date plus the lead time, in calendar days or business days.",
      "format": "date-long"
    },
    "calendarDays": {
      "label": "Calendar days",
      "description": "The calendar days from the order date to the date the goods are in stock.",
      "format": "integer"
    },
    "weeks": {
      "label": "Lead time in weeks",
      "description": "The calendar days ÷ 7.",
      "format": "number"
    },
    "reorderPoint": {
      "label": "Reorder point",
      "description": "Daily demand × lead time + safety stock: order again when stock falls to this level.",
      "format": "number"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "date": "2026-10-02",
      "proc": 2,
      "prod": 10,
      "ship": 5,
      "recv": 1,
      "days": "calendar"
    },
    "outputs": {
      "days": 18,
      "arrival": "2026-10-20",
      "calendarDays": 18,
      "weeks": 2.5714285714285716
    },
    "text": "The lead time is 18 days, so goods ordered on October 2, 2026 are in stock on Tuesday, October 20, 2026."
  },
  "examples": [
    {
      "given": {
        "date": "2026-10-05",
        "proc": 2,
        "prod": 10,
        "ship": 5,
        "recv": 1,
        "days": "calendar"
      },
      "expect": {
        "days": 18,
        "arrival": "2026-10-23",
        "calendarDays": 18
      },
      "source": "hand calculation in content.mdx: 2 + 10 + 5 + 1 = 18; October 5 + 18 days = October 23; Wikipedia, Lead time (supply chain: from the order to the goods ready), https://en.wikipedia.org/wiki/Lead_time"
    },
    {
      "given": {
        "date": "2026-10-05",
        "proc": 2,
        "prod": 10,
        "ship": 5,
        "recv": 1,
        "days": "business"
      },
      "expect": {
        "days": 18,
        "arrival": "2026-10-29",
        "calendarDays": 24
      },
      "source": "hand calculation in content.mdx: 18 weekdays after Monday, October 5 is Thursday, October 29; Wikipedia, Lead time (supply chain: from the order to the goods ready), https://en.wikipedia.org/wiki/Lead_time"
    },
    {
      "given": {
        "date": "2026-10-09",
        "proc": 1,
        "prod": 0,
        "ship": 3,
        "recv": 0,
        "days": "business",
        "demand": 40,
        "safety": 100
      },
      "expect": {
        "days": 4,
        "arrival": "2026-10-15",
        "reorderPoint": 260
      },
      "source": "Wikipedia, Reorder point (reorder point = normal consumption during lead time + safety stock), https://en.wikipedia.org/wiki/Reorder_point; hand calculation in content.mdx: 40 × 4 + 100 = 260; Friday + 4 weekdays = Thursday, October 15"
    },
    {
      "given": {
        "date": "2024-02-27",
        "proc": 0,
        "prod": 0,
        "ship": 3,
        "recv": 0,
        "days": "calendar",
        "demand": 12.5
      },
      "expect": {
        "arrival": "2024-03-01",
        "reorderPoint": 37.5
      },
      "source": "hand calculation in content.mdx: February 27 + 3 days = March 1 in 2024 (29 days in February); 12.5 × 3 = 37.5; Wikipedia, Reorder point (reorder point = normal consumption during lead time + safety stock), https://en.wikipedia.org/wiki/Reorder_point"
    }
  ],
  "sources": [
    "Wikipedia, Lead time: in a supply chain, the time from the moment the customer places an order to the moment it is ready for delivery. https://en.wikipedia.org/wiki/Lead_time (retrieved 2026-10-02)",
    "Wikipedia, Reorder point: reorder point = normal consumption during lead time + safety stock. https://en.wikipedia.org/wiki/Reorder_point (retrieved 2026-10-02)"
  ],
  "related": [
    "freight-class",
    "container-pallet"
  ],
  "changelog": []
}
