The call came at 2:17 a.m. Six trailers stacked up at receiving, the forward-pick area out of open slots, forklifts circling the aisles looking for somewhere — anywhere — to drop pallets. Two weeks before Thanksgiving, a 220,000-square-foot 3PL building sitting at 97% location occupancy. The WMS capacity alert was still on the factory default: 100%. Which is to say, there was no alert at all.

We spent that night doing three things: shoving slow movers into the ends of aisles (nearly blocking a fire lane, which earned us a proper scolding from the safety manager the next morning), canceling three next-day receiving appointments, and the shift supervisor didn't leave the office until sunrise. I've believed one thing ever since: a WMS without capacity alerts goes into peak season naked. An alert isn't there to tell you you're full. It's there to tell you while you still have room to act.

Two lines, not one: what 80% and 90% actually mean

Most WMS capacity alerts ship with a single threshold, parked at 95% or even 100%. Run two instead: yellow at 80%, red at 90%. Yellow means start moving — activate the overflow plan, slow down non-urgent receiving, push slow movers up into high bay. Red means stop feeding the zone — no new putaway assignments go in, receiving appointments need a human sign-off.

Then differentiate by zone. A fast-turning receiving staging area should alert at 85%. Bulk reserve storage can ride to 90%. An oversized and bulky zone has few slots to begin with — alert at 75%. Cold storage deserves the tightest line of all: freezer slots are expensive and hard to reshuffle, and every extra forklift trip at twenty below costs real money. Fold in ABC classification too: the forward-pick zone for A movers needs a tighter line than the C-mover area, because when the A zone jams, the whole pick line jams with it.

One more setting people overlook: how often occupancy gets recalculated. Plenty of WMS setups run it as an overnight batch — fine in February, useless in November, when a day-old number can't guide today's receiving. Daily at minimum in off-peak, hourly in peak. And standardize the denominator: slot count, pallet positions, or cubic volume? A bulk-floor zone and a high-bay zone measured on different bases can't be compared side by side. Pick one, write it into the SOP, apply it building-wide.

Picker with RF scanner working a nearly full high-bay racking aisle

An alert that only sends an email is decoration

The dumbest use of a capacity alert is firing off an email. In peak season, that email is a stone dropped in a well. When an alert trips, the system should do four things on its own: stop assigning — locations in a red zone get no new putaway tasks, and inbound work reroutes to overflow automatically; open the overflow — every zone gets pre-designated overflow locations, switched on by the alert rather than discovered by a supervisor squinting at a location map at midnight; page the supervisor — not email, but an RF gun pop-up plus a text, acknowledged within fifteen minutes; and throttle receiving — above yellow, appointments go to manual review, and above red, non-urgent ones get pushed.

Build in escalation while you're at it: no acknowledgment in fifteen minutes, and the alert goes to the operations manager; thirty minutes with no action, and it lands on the director's phone. Alerts that nobody owns are just expensive log files.

Of the four, auto-stop-assign is the one that matters most. Every location-gridlock cascade starts the same way: the system keeps assigning slots into a nearly full zone, the forklift arrives to find nowhere to put the pallet, so it stages it in the aisle, the aisle clogs, and pick productivity halves. Shut the assignment tap and the cascade never starts.

A capacity dashboard that shows where it'll blow

Alerts are points; the dashboard is the map. It doesn't need to be fancy — four cuts are enough: by zone, by ABC class, by temperature zone, and by client. That last one is non-negotiable in a 3PL building — you want to see at a glance whose freight is eating the zone.

Each cell shows four numbers: current occupancy, in-transit volume committed to that zone, reserved but not yet received, and days of cover at the current ship rate. Days of cover is the most underrated number on the board: a zone at 75% with three days of inbound arriving and a ship rate that clears one day's worth daily is more dangerous than a zone at 85% with nothing inbound. Walk the dashboard every Monday morning; daily in peak. Permission the dashboard, too: supervisors see the whole building, shift leads see only their zones, and in a 3PL the client portal shows each client only their own footprint — client A should never see client B's inventory profile. Skip the permissions now and you'll rebuild them later.

Peak-season capacity is worked backwards, not counted

Counting slots after the freight arrives is always too late. Peak capacity planning runs in reverse: lay the promo calendar, last year's same-period volumes, and open purchase orders across the next eight weeks, compute the weekly peak of on-hand plus in-transit, and compare it against zone capacity. A gap over 10%? Start negotiating temp space now, or talk clients into early ship-outs of their slow movers.

Give it six to eight weeks of lead time. Temp warehouse contracts, overflow racking, even extra night-shift forklift drivers — none of that materializes in a week. One year we spotted the second week of November blowing up seven weeks out, leased 30,000 square feet of vacant space next door as overflow, and peak occupancy topped out at 88%. Two weeks later and we'd have been bidding against everyone else — assuming any space was left at all.

One more thing: don't switch the alerts off when peak ends. An 80% yellow line in the slow season still earns its keep — it's the earliest signal that freight is quietly settling into a zone and turning into dead stock.

If your WMS alerts are still on defaults, don't try to configure perfection on day one. Take it in this order: split the single threshold into 80/90; set per-zone lines, tightening freezer and bulky zones first; switch on auto-stop-assign — the highest-ROI toggle in the whole setup; designate and system-record overflow locations per zone; and get days-of-cover onto the dashboard. Run one peak season on that setup and you'll come back grateful. Full locations are never a luck problem. They're an alerting problem.