warehouse managementcarrier cutoff3PL operationsshift planningSLA monitoringlogistics automation

How do you hit every carrier cutoff in a fulfilment warehouse?

By Harshil Lakhani ·

In short

To hit carrier cutoffs, plan per carrier, not per day. Count only orders that can really be picked, add the orders still expected before each cutoff, subtract what may roll over to tomorrow, and divide by the hours left. Compare that needed rate with the floor's real pick rate, move pickers early, and report on-time rates per carrier.

You hit carrier cutoffs by planning per carrier, not per day. For each carrier, count the orders that can really be picked, add the orders still expected before its cutoff, and compare the rate that needs with the rate the floor is actually making. When the gap appears, move pickers early, and alert only when a pickup is genuinely at risk.

I built a live planning board for a Dutch 3PL fulfilment company that ships around 2,500 to 3,000 orders a day for marketplace and webshop sellers. It replaced a single-deadline board and a daily Excel schedule. This is what I learned.

Why does one daily deadline give the wrong answer?

The first board ran on one deadline for everything: 23:15. But each carrier collects at its own time. In this warehouse one carrier leaves at 16:00, a German DHL service at 20:00, and DHL Netherlands at 23:00.

On one evening with around 600 pickable orders, the single-deadline board said "on track, needs 55 an hour". At that moment more than 300 orders were already past their carrier's deadline, and DHL NL alone needed about 140 an hour. One number cannot express three deadlines, and the one it showed was the reassuring one.

Group by shipment method, not carrier name. "DHL NL Pakket" collects at 23:00, while "DHL Paket 0-2kg" is a German service on the 20:00 run. Matching on "DHL" puts them in the same group. A fallback group catches every method nobody has assigned yet, including the one that appears the day a new carrier goes live.

What counts as pickable backlog?

The open order count in a WMS is not floor work. On this board the queue was over-reported by roughly 40% until these were removed:

  • orders waiting for an address check
  • orders on hold by the seller or customer service
  • backorders with no stock in the building
  • orders pending payment or marketplace clearance
  • orders with a future ship date
  • orders on a blocked shipping method
  • orders whose lines are all already shipped
  • orders whose lines all have a cancellation request

Each excluded order gets exactly one reason, so the buckets add up to the excluded total. One ChannelDock detail: the default order query hides orders with an unverified address, so you have to ask for them explicitly or the address-check bucket reads zero.

How do you calculate the needed pick rate?

Per carrier group:

  1. Take the pickable backlog for that carrier.
  2. Add the orders still expected before its cutoff.
  3. Subtract the target close: the orders you allow to roll over to tomorrow.
  4. Divide by the hours left until the cutoff.

The target close matters more than people expect. Orders keep arriving all evening. If the board demands zero at cutoff, it shows a permanent shortfall that is not real. On one real afternoon the same data gave 238 orders an hour needed without a target close and 167 with one, on a floor doing 243. Same data, opposite verdicts.

A worked example. 1,300 orders on the floor, 700 still expected, 700 allowed to roll over: 1,300 to process. With 5.5 hours left, the floor needs about 236 orders an hour. It is running 190. The gap is 46 an hour, or about 250 orders short at cutoff.

How do you work out the picker deficit?

Total headcount can look fine while one stream is starving. Split the floor by how it picks. The board started with single-item, multi-line and one dedicated client stream, then moved to the WMS batch types the team already uses, each with its own target per hour.

For each stream:

  • needed rate = stream backlog ÷ hours left
  • gap = needed rate − current rate
  • extra pickers = gap ÷ one picker's rate, rounded up

In the example above, single-item orders were on track and the whole gap sat on multi-line orders: 40 an hour short at 30 orders per picker. That is two extra pickers, and the board says so in plain words.

A what-if panel lets the shift lead test it first: add two pickers from 18:00 on multi-line, apply a 0.9 efficiency factor, and see the projected backlog at cutoff.

Where does the real pick rate come from?

From pick events, not from shipped orders. The board reads the WMS user log and calculates pace over the last 15, 30 and 60 minutes. Fifteen minutes is the early warning for a jammed conveyor or a crashed scanner. Sixty minutes is the benchmark. User logs only carry numeric ids, so names come from the batch records, which list the picker on each wave.

How do you forecast order inflow?

The WMS only answers for "now". It cannot tell you the backlog at 10:00 last Tuesday. So the board writes its own hourly snapshot and day report, and the forecast is built from those.

The method:

  1. Take the same weekday from previous weeks, in quarter-hour blocks from 06:00.
  2. Cap single blocks that spike far above the other weeks. Bulk imports cause these.
  3. Compare today's arrivals so far with the history and scale the rest of the curve.
  4. Split expected arrivals by each carrier's usual share.

Late orders were the surprise. Marketplace orders reach the WMS 5 to 20 minutes after they were placed, sometimes an hour, stamped with the original time. Counting each quarter once lost them. One day the board showed 48 arrivals for 11:00 against 163 in the WMS. Now each quarter is recounted every 15 minutes until it has been closed for 90.

The remaining day is then played forward a quarter-hour at a time, earliest deadline first, the way the floor works. This replaced a "last hour" method that, at 09:00, predicted 550 orders would miss with fifteen hours to go, only because the morning shift always picks one carrier first.

When should a cutoff alert fire?

A card that shows each carrier's position all day stops being read by evening. An alert only appears when something needs action:

  • under an hour to the pickup and the current rate will not clear the queue
  • under thirty minutes, whatever the rate
  • the pickup has gone and orders were left behind

Orders stuck from earlier days are left out of the alert. They were never going to make this truck.

How do you report carrier SLA?

Report per carrier and overall. Three late orders out of three thousand reads as 99.9% overall and 99.0% for a small carrier, and the penalty sits in that carrier's contract.

Rules that made the numbers trustworthy:

  • Count only decided orders. An order whose deadline has not passed is neither on time nor late.
  • List every miss with its reference, deadline and label time, so anyone can check it.
  • Separate client holds from warehouse misses by replaying each late order's history.
  • Re-check each missed order's carrier just before the email goes out, because orders sometimes move carrier after the fact.
  • Send each carrier's email once its deadline plus grace has passed, not in fixed time windows. The hosted scheduler I first used ran only 18 of 73 hourly jobs over three days.
  • Claim each email in a database transaction before sending, so two runs never send it twice.

How do you replace the Excel shift schedule?

The shift lead built a new Excel sheet every day: teams, team leaders, one row per person with role, hours, task and switches like "Pick, from 9:00 Pack". The board now holds that schedule. Each row can carry a scanner number so devices stop going missing, and checklists are handed out by role or by person from the same schedule.

For staff who still plan elsewhere, a screenshot of the planning tool is read by AI. It extracts only name, hours and department. It never guesses which stream someone works in, because a guess becomes invented capacity on a wall screen. If a column has no readable date, it is dropped instead of filed under a guessed day.

What should you measure?

  • needed versus actual pick rate, per carrier group
  • projected backlog at each cutoff
  • on-time rate per carrier and overall
  • warehouse misses versus client holds
  • forecast error per hour
  • backlog handed to the morning shift versus target

Should you build or buy cutoff planning?

Buy if your WMS shows per-carrier cutoffs, a pickable backlog and live pick rates out of the box. Most do not combine all three. Build when your exclusions, batch types and carriers are specific to your floor. The arithmetic is simple. The work is in getting the inputs right.

Cutoff planning checklist

  • Cutoff and grace per shipment method group
  • Pickable backlog with one exclusion reason per order
  • Target close instead of zero
  • Inflow forecast by weekday and quarter-hour
  • Pace from pick events over 15, 30 and 60 minutes
  • Picker deficit per stream, rounded up
  • Alerts only when the answer changes
  • SLA per carrier, decided orders only
  • Schedule and roster in the same system

This planning board is part of my logistics automation services. Read the cutoff and SLA planning board case study and the earlier warehouse operations dashboard. Parcels that reach the dock on time still need to land on the right carrier lane, which is covered in parcel sorter accuracy monitoring.

Missing cutoffs and not sure why? Get in touch and I will look at your floor data with you.

Frequently asked questions

Needed rate equals pickable backlog plus orders still expected before the cutoff, minus the orders you allow to roll over to tomorrow, divided by the hours left. Do it per carrier group. One combined deadline hides carriers that are already late behind a total that looks fine.

Divide the rate gap for the stream or batch type by one picker's normal rate in that stream, then round up. A gap of 40 orders an hour on multi-line orders at 30 orders an hour per picker means two extra pickers. Apply an efficiency factor of about 0.9 for changeovers and fatigue.

Use the same weekday from previous weeks in quarter-hour blocks, cap one-off spikes from bulk imports, and scale the curve by how today compares so far. Recount recent quarters for about 90 minutes, because marketplace orders often reach the WMS 5 to 20 minutes after they were placed.

No. Orders keep arriving all evening, and one that lands ten minutes before the truck cannot be picked in time. Aim for a target close: a small backlog the morning shift starts with. Holding the floor to zero creates a permanent shortfall that is not real, and the team stops trusting the screen.

Per carrier. Three late orders out of three thousand reads as 99.9% overall but can be 99.0% for a small carrier, and the carrier contract is where penalties sit. Count only orders whose deadline has passed, and separate client holds from real warehouse misses.

Need an automation like this?

Tell me what your team does by hand and which tools are involved.

Discuss your project