{
  "slug": "wave-picking-efficiency",
  "title": "Wave Picking Efficiency Calculator",
  "heading": "Wave Picking Efficiency Calculator",
  "category": "math",
  "url": "https://www.revenuelab.fyi/toolbox/wave-picking-efficiency",
  "summary": "Compare single-order picking against wave/batch picking travel savings.",
  "description": "Wave picking (also called batch picking) groups multiple orders into a single pick tour so a picker collects for several orders in one pass through the warehouse instead of walking a separate round trip for each order. The efficiency gain comes almost entirely from spreading fixed travel time across more orders per tour. This calculator compares total labor time for single-order picking against a proposed wave size, showing the labor hours and cost saved per shift and per year. Diminishing returns set in as wave size grows — going from 1 order per tour to 6 saves a lot, going from 12 to 18 saves much less — because pick time itself (not travel) becomes the larger share of total tour time at bigger wave sizes, so there's usually an optimal wave size beyond which cart capacity or sort complexity outweighs further travel savings.",
  "formula": "Time per order (waved) = (Travel time per tour ÷ wave size) + Pick time per order; savings = single-order time − waved time.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=wave-picking-efficiency",
  "inputs": [
    {
      "id": "travelPerTour",
      "label": "Travel time per pick tour",
      "kind": "number",
      "hint": null,
      "default": 420,
      "unit": "sec",
      "min": 0,
      "max": null
    },
    {
      "id": "pickTimePerOrder",
      "label": "Pick + pack time per order",
      "kind": "number",
      "hint": null,
      "default": 90,
      "unit": "sec",
      "min": 0,
      "max": null
    },
    {
      "id": "waveSize",
      "label": "Orders per wave/tour",
      "kind": "number",
      "hint": null,
      "default": 8,
      "unit": null,
      "min": 1,
      "max": 30
    },
    {
      "id": "ordersPerDay",
      "label": "Orders per day",
      "kind": "number",
      "hint": null,
      "default": 3000,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "wage",
      "label": "Burdened hourly wage",
      "kind": "number",
      "hint": null,
      "default": 22,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "annualSavings",
      "label": "Estimated annual labor savings",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "wavedTimePerOrder",
      "label": "Effective time per order (waved)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "savedSecPerOrder",
      "label": "Seconds saved per order vs single-pick",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "dailyHoursSaved",
      "label": "Labor hours saved per day",
      "format": "decimal",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Travel time per pick tour: 420 sec",
      "Pick + pack time per order: 90 sec",
      "Orders per wave/tour: 8",
      "Orders per day: 3000",
      "Burdened hourly wage: 22 $"
    ],
    "outputs": [
      "Estimated annual labor savings: $1,751,750",
      "Effective time per order (waved): 142.5",
      "Seconds saved per order vs single-pick: 367.5",
      "Labor hours saved per day: 306.25"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter travel time per pick tour (sec).",
      "Enter pick + pack time per order (sec).",
      "Enter orders per wave/tour.",
      "Enter orders per day.",
      "Enter burdened hourly wage ($).",
      "Read your estimated annual labor savings 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": {
        "travelPerTour": 250,
        "pickTimePerOrder": 55,
        "waveSize": 5,
        "ordersPerDay": 1800,
        "wage": 13
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "travelPerTour": 420,
        "pickTimePerOrder": 90,
        "waveSize": 8,
        "ordersPerDay": 3000,
        "wage": 22
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "travelPerTour": 670,
        "pickTimePerOrder": 145,
        "waveSize": 13,
        "ordersPerDay": 4800,
        "wage": 35
      }
    }
  ],
  "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": "What wave size should I target?",
      "a": "Most operations find the sweet spot between 6 and 15 orders per wave, constrained by cart capacity (how many order totes fit on the pick cart) and pick-to-tote sort complexity. Beyond that range, the marginal travel savings per additional order in the wave shrinks fast while sortation error risk climbs, since pickers have more totes to keep straight."
    },
    {
      "q": "Does wave picking increase sortation error risk?",
      "a": "Yes — batching orders means a mis-sort puts the wrong item in the wrong tote, which doesn't happen in single-order picking. Pick-to-light, put-to-light, or barcode-verified sortation stations largely offset this risk and are standard companions to any wave-picking implementation above small wave sizes."
    },
    {
      "q": "What if orders in a wave ship on different trucks or times?",
      "a": "Wave picking works best when orders in the same wave have similar cutoff times, since the whole wave typically completes together before moving to pack and ship. Mixing orders with very different ship windows into one wave can delay urgent orders behind slower ones, so wave composition should group by cutoff time as well as pick-path proximity."
    },
    {
      "q": "How does this interact with slotting optimization?",
      "a": "Wave picking and slotting optimization compound — better slotting reduces travel time per tour, and batching spreads that already-reduced travel time across more orders. Running both improvements together typically yields a bigger combined gain than either one alone, so sequence a slotting project before finalizing wave size to avoid under-sizing the wave based on outdated travel times."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/pick-rate-labor-cost",
    "https://www.revenuelab.fyi/toolbox/slotting-travel-savings",
    "https://www.revenuelab.fyi/toolbox/order-picking-productivity"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Wave Picking Efficiency Calculator (https://www.revenuelab.fyi/toolbox/wave-picking-efficiency)"
}