{
    "name": "Economic Order Quantity (EOQ) Calculator",
    "url": "https://calculators.geekmidst.com/calculators/economic-order-quantity-calculator",
    "markdown": "https://calculators.geekmidst.com/calculators/economic-order-quantity-calculator.md",
    "category": "Commerce & retail",
    "description": "Find the economic order quantity that minimises ordering plus holding cost, with orders per year, cycle length and the total annual cost.",
    "summary": "The economic order quantity balances the cost of placing orders against the cost of holding stock: EOQ = √(2 × annual demand × order cost ÷ holding cost per unit).",
    "also_called": [
        "EOQ calculator",
        "Optimal order quantity calculator"
    ],
    "applies_to": "Worldwide",
    "last_updated": "2026-10-29",
    "computation": "Results are computed in the visitor’s browser on the HTML page. This API describes the calculator; it does not compute results.",
    "inputs": [
        {
            "name": "annual_demand",
            "label": "Annual demand",
            "type": "number",
            "default": "12000",
            "unit": "units/year"
        },
        {
            "name": "order_cost",
            "label": "Cost per order",
            "type": "number",
            "default": "50"
        },
        {
            "name": "holding_mode",
            "label": "Holding cost entered as",
            "type": "segmented",
            "default": "amount",
            "options": {
                "amount": "Amount per unit",
                "percent": "% of unit cost"
            }
        },
        {
            "name": "holding_cost",
            "label": "Holding cost per unit per year",
            "type": "number",
            "default": "3",
            "shown_when": {
                "holding_mode": "amount"
            }
        },
        {
            "name": "unit_cost",
            "label": "Unit cost",
            "type": "number",
            "default": "15",
            "shown_when": {
                "holding_mode": "percent"
            }
        },
        {
            "name": "holding_pct",
            "label": "Annual holding cost rate",
            "type": "number",
            "default": "20",
            "unit": "%",
            "shown_when": {
                "holding_mode": "percent"
            }
        },
        {
            "name": "days",
            "label": "Days per year",
            "type": "number",
            "default": "365",
            "optional": true
        },
        {
            "name": "currency",
            "label": "Currency",
            "type": "currency",
            "default": "USD"
        }
    ],
    "outputs": [
        {
            "key": "eoq",
            "label": "Economic order quantity",
            "format": "number"
        },
        {
            "key": "eoq_units",
            "label": "EOQ (rounded up)",
            "format": "integer"
        },
        {
            "key": "orders_per_year",
            "label": "Orders per year",
            "format": "number"
        },
        {
            "key": "ordering_cost",
            "label": "Annual ordering cost",
            "format": "currency"
        },
        {
            "key": "holding_cost_total",
            "label": "Annual holding cost",
            "format": "currency"
        },
        {
            "key": "total_cost",
            "label": "Total annual cost",
            "format": "currency"
        },
        {
            "key": "cycle_days",
            "label": "Days between orders",
            "format": "number"
        }
    ],
    "formula": {
        "text": "EOQ = √(2DS ÷ H);  Orders per year = D ÷ EOQ;  Ordering cost = (D ÷ Q) × S;  Holding cost = (Q ÷ 2) × H",
        "variables": {
            "D": "annual demand in units",
            "S": "cost per order",
            "H": "cost to hold one unit for a year (or unit cost × holding rate)"
        }
    },
    "worked_example": {
        "inputs": {
            "annual_demand": "12000",
            "order_cost": "50",
            "holding_mode": "amount",
            "holding_cost": "3",
            "unit_cost": "15",
            "holding_pct": "20",
            "days": "365",
            "currency": "USD"
        },
        "steps": [
            "EOQ = √(2 × 12,000 × 50 ÷ 3) = √400,000 = 632.46 units.",
            "Orders per year = 12,000 ÷ 632.46 = 18.97, costing 948.68.",
            "Average stock 316.23 × 3 = 948.68 holding cost; total 1,897.37."
        ],
        "result": "Ordering about 632 units at a time minimises cost at $1,897.37 a year, with roughly 19 orders a year."
    },
    "interpretation": "At the EOQ the annual ordering and holding costs are equal. The total-cost curve is flat near the optimum, so rounding to a case or pallet size costs little.",
    "assumptions": [
        "Demand is constant and known through the year.",
        "Each order arrives complete, with no quantity discounts or stock-outs.",
        "Ordering cost per order and holding cost per unit are fixed."
    ],
    "limitations": [
        "Quantity discounts, perishability and storage limits can make a different quantity cheaper overall."
    ],
    "rules": null,
    "faqs": [
        {
            "question": "What goes into holding cost?",
            "answer": "Capital tied up in stock, storage space, insurance, shrinkage and obsolescence, often 15–30% of unit cost a year; use your own estimate."
        },
        {
            "question": "How does EOQ relate to the reorder point?",
            "answer": "EOQ says how much to order; the reorder point says when."
        }
    ],
    "sources": [],
    "related": [
        {
            "name": "Stock Reorder Point Calculator",
            "url": "https://calculators.geekmidst.com/calculators/stock-reorder-point-calculator"
        },
        {
            "name": "Safety Stock Calculator",
            "url": "https://calculators.geekmidst.com/calculators/safety-stock-calculator"
        },
        {
            "name": "Retail Inventory Turnover Calculator",
            "url": "https://calculators.geekmidst.com/calculators/retail-inventory-turnover-calculator"
        }
    ],
    "disclaimer": null,
    "publisher": "GM¹X CalcVerse"
}