{
  "slug": "order-picking-productivity",
  "title": "Order Picking Productivity Calculator",
  "heading": "Order Picking Productivity Calculator",
  "category": "math",
  "url": "https://www.revenuelab.fyi/toolbox/order-picking-productivity",
  "summary": "Units, lines, and orders per labor hour across a shift.",
  "description": "Productivity tracking in picking needs more than one metric because units-per-hour, lines-per-hour, and orders-per-hour tell different stories depending on order composition. A shift with many single-unit orders will show high orders-per-hour but low units-per-hour; a shift picking bulk replenishment will show the reverse. This calculator computes all three from a shift's actual results so you can compare performance across shifts or pickers fairly, and benchmark against your own historical baseline rather than an industry number that may not reflect your order profile. It also computes a standardized 'equivalent lines' productivity figure using average units-per-line, which is usually the most stable metric for comparing performance across different order mixes over time.",
  "formula": "Units/hr = Units picked ÷ hours worked; Lines/hr and Orders/hr computed the same way.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=order-picking-productivity",
  "inputs": [
    {
      "id": "unitsPicked",
      "label": "Total units picked",
      "kind": "number",
      "hint": null,
      "default": 5400,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "linesPicked",
      "label": "Total lines picked",
      "kind": "number",
      "hint": null,
      "default": 2100,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "ordersPicked",
      "label": "Total orders picked",
      "kind": "number",
      "hint": null,
      "default": 950,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "hoursWorked",
      "label": "Total labor hours worked",
      "kind": "number",
      "hint": null,
      "default": 48,
      "unit": null,
      "min": 0.1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "linesPerHour",
      "label": "Lines per labor hour",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "unitsPerHour",
      "label": "Units per labor hour",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "ordersPerHour",
      "label": "Orders per labor hour",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "unitsPerLine",
      "label": "Average units per line",
      "format": "decimal",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Total units picked: 5400",
      "Total lines picked: 2100",
      "Total orders picked: 950",
      "Total labor hours worked: 48"
    ],
    "outputs": [
      "Lines per labor hour: 43.8",
      "Units per labor hour: 112.5",
      "Orders per labor hour: 19.79",
      "Average units per line: 2.57"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter total units picked.",
      "Enter total lines picked.",
      "Enter total orders picked.",
      "Enter total labor hours worked.",
      "Read your lines per labor hour 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": {
        "unitsPicked": 3250,
        "linesPicked": 1250,
        "ordersPicked": 575,
        "hoursWorked": 29
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "unitsPicked": 5400,
        "linesPicked": 2100,
        "ordersPicked": 950,
        "hoursWorked": 48
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "unitsPicked": 8650,
        "linesPicked": 3350,
        "ordersPicked": 1525,
        "hoursWorked": 77
      }
    }
  ],
  "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": "Which metric should I use to evaluate picker performance?",
      "a": "Lines-per-hour is generally the most stable and fair metric because it normalizes for order size without being distorted by bulk single-line orders the way units-per-hour can be. Use units-per-hour as a secondary check when comparing periods with very different average pick quantities per line, like a promotional period with case-pick orders."
    },
    {
      "q": "How do I set a fair productivity standard?",
      "a": "Time-study your own top-quartile performers over several weeks rather than importing an industry benchmark, since travel distance, SKU mix, and pick method (each vs. case vs. pallet) vary enormously between facilities. A standard set from your own data, adjusted for your specific layout, holds up much better under grievance or performance review scrutiny."
    },
    {
      "q": "Why did units-per-hour drop while lines-per-hour stayed flat?",
      "a": "This usually signals a shift toward smaller quantity-per-line orders — for example a promotional period driving many single-unit orders instead of case-pack orders. It's not necessarily a productivity problem; check unit-per-line trend before concluding pickers slowed down."
    },
    {
      "q": "Does this account for non-productive time like breaks and staging?",
      "a": "No — hours worked here should be net productive picking time if you want a true rate, or gross clocked hours if you want a fully loaded operational rate that includes breaks, meetings, and staging delays. Track both separately; the gap between them is a visibility metric on how much of the shift is actually spent picking."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/pick-rate-labor-cost",
    "https://www.revenuelab.fyi/toolbox/wave-picking-efficiency",
    "https://www.revenuelab.fyi/toolbox/receiving-dock-labor"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Order Picking Productivity Calculator (https://www.revenuelab.fyi/toolbox/order-picking-productivity)"
}