Formula reference — Warehouse Process Design Toolkit
Version 1.0.0. The website engines and the Excel pack use the same identities. This page walks the free Capacity & FTE model in full. The other 24 calculators follow the same published identities in /tools and in 01-calculators of the Excel pack.
Purpose
Estimate how many people a single warehouse process needs, and whether current resources can process the daily volume.
The model is for one process at a time (for example receiving, picking, or packing). It is not a whole-warehouse simulation.
Inputs
| Name | Unit | Meaning |
|---|
| Daily volume | units/day | Demand the process must complete in one operating day |
| Process time | minutes/unit | Standard or observed time to process one unit |
| Operating hours | hours/shift | Rostered shift length before break deduction |
| Shifts | shifts/day | Number of shifts that together cover daily volume |
| Break allowance | minutes/shift | Time removed from each shift (breaks, meetings already inside the shift) |
| Planned utilisation | % | Share of net time assumed to be productive. Enter 85, not 0.85, in the website form. |
| Current resources | FTE | People assigned to this process across the day |
| Working days | days/week | Used only for weekly totals |
One FTE is one person working one shift. Three people on each of two shifts = 6 FTE.
If operating hours are already net of breaks, set break allowance to 0.
Identities
gross minutes / shift = operating hours × 60
net minutes / shift = gross minutes / shift − break allowance
productive minutes / FTE = net minutes / shift × planned utilisation
required minutes / day = daily volume × process time
required FTE = required minutes / day ÷ productive minutes / FTE
headcount / shift = required FTE ÷ shifts
available volume / day = current resources × productive minutes / FTE ÷ process time
theoretical max / day = current resources × net minutes / shift ÷ process time
capacity utilisation = daily volume ÷ available volume / day
capacity gap = daily volume − available volume / day
additional resources = max(0, required FTE − current resources)
Scenarios reuse the same identities at 80%, 100% and 120% of daily volume.
Worked example
Daily volume = 1,000 units
Process time = 3 minutes
Net available time = 450 minutes
Planned utilisation = 100%
required FTE = 1,000 × 3 ÷ 450 = 6.67
At 85% planned utilisation:
required FTE = 1,000 × 3 ÷ (450 × 0.85) = 7.84
With 6 current FTE:
available volume = 6 × 450 × 0.85 ÷ 3 = 765 units/day
capacity utilisation = 1,000 ÷ 765 = 130.7%
additional resources = 7.84 − 6 = 1.84 FTE
What planned utilisation is not
Planned utilisation is an allowance on available time (fatigue, walking, communication, minor disruption).
Capacity utilisation is an output: demand divided by available capacity.
They are not interchangeable. Setting planned utilisation to 100% is a ceiling, not a recommended operating target.
Limitations
- One process, average daily volume. Peaks need the peak-capacity model (paid toolkit).
- Process time is treated as constant. It does not model learning curves, mix, or congestion.
- Absence, holidays, training and indirect labour are not included in the free model.
- The model does not certify safety, layout, or industrial-engineering standards.
- Users must validate process times on the floor before using results for hiring or investment.
Test cases
Every published case lives in REFERENCE_CASES and is executed by npm test.
A calculator is not released if any of those cases fail.
Other v1 identities
FTE with absence and indirect
direct unadjusted = volume × process time ÷ productive minutes
direct with absence = direct unadjusted ÷ (1 − absence rate)
indirect = direct with absence × indirect %
total = direct with absence + indirect
Productivity
earned hours = units × standard minutes ÷ 60
performance = earned hours ÷ paid hours
units per paid hour = units ÷ paid hours
Dock capacity
theoretical slots = docks × hours × 60 ÷ turn time
planning capacity = theoretical slots × occupancy target
required docks = vehicles × turn time ÷ (hours × 60 × occupancy target)
Vehicle processing
hourly arrival = vehicles ÷ hours
hourly capacity = resources × 60 ÷ process time
peak-hour queue = max(0, daily vehicles × peak-hour share − hourly capacity)
Storage
effective locations = locations × fill target
required locations = pallets on hand ÷ fill target
days of cover = pallets on hand ÷ daily pallet demand
Capacity gap levers
work content hours = max(0, unit gap × process time ÷ 60)
paid OT hours = work content hours ÷ planned utilisation
process time to close = current FTE × productive minutes ÷ demand
FTE overtime check
weekly paid hours short = additional direct FTE × net hours / shift × working days
weekly productive hours = additional direct FTE × productive hours / shift × working days
weekly OT hours available = current direct FTE × OT hours / person / week
Compare paid hours with paid overtime. Do not compare productive hours with paid overtime.
Peak hour
peak-day volume = average day × peak-day factor
peak-hour volume = peak-day volume × peak-hour share
peak-hour FTE = peak-hour volume × process time ÷ (60 × utilisation)
Peak-hour FTE assumes the busy hour has no break inside it. Day FTE still deducts the shift break.
Warehouse space (building / rent)
Pallet racking (SEMA-aligned planning)
frame depth = pallet depth − front overhang − rear overhang
pallets / beam = floor( beam length ÷ (pallet width + side clearance) )
levels = 1 + floor( (clear height − top clearance − pallet height)
÷ (pallet height + vertical clearance + beam depth) )
positions / bay = pallets / beam × levels
bays = ceil( pallets ÷ positions / bay )
double-row units = ceil( ceil(bays ÷ bays per run) ÷ 2 )
racking depth = double-row units × (2 × frame + flue)
aisles = double-row units + 1
run length = bays per run × beam + 2 × end clearance
net area = (racking depth + aisle depth) × run length
building area = net area × (1 + operational uplift)Floor stack
levels = floor( max stack height ÷ pallet height )
positions / block = levels × deep × lanes wide
blocks = ceil( pallets ÷ positions / block )
Goods-in / lorry hall
marshalling positions = daily pallets × dwell hours ÷ operating hours
m² / position = pallet width × depth × (1 + handling allowance)
docks = vehicles × turn time ÷ (hours × 60 × occupancy)
Building total
stock = stock pallets, or daily demand × days of cover
racked = stock × racked share
floor = stock − racked
building m² = racking area + floor area + marshalling + ancillary
These are planning envelopes. They are not a rack, civil or fire design.
Commercial and fleet
rate card labour hours = Σ (volume × minutes) ÷ 60
storage £ / pallet-week = allocated building (building + overhead share) × (1 + profit) ÷ pallets on hand
trucks = daily moves ÷ (hours × 60 × utilisation ÷ minutes per move)
UK cover factor = contracted hours ÷ productive hours after holiday and absence
safety stock (max) = max day × max lead − average day × average lead
UK trailer cube = 26 UK or 33 Euro on 13.6 m; min(cube, floor(payload ÷ kg))
yard moves = drop arrivals × moves/arrival + live arrivals