Two plans of the same cargo. The first fills 91.4% of the container, the second 87.6%. Every tool on the market will tell you to ship the first one. On the dock, the second one is finished forty minutes earlier — and nothing in the utilisation figure would ever have told you that.
The number that does not measure the job
Volume utilisation answers exactly one question: how much air did you pay to ship. That is a real question and it is why the number exists. But a container is not a warehouse — it is a queue. Everything comes out in roughly the order it went in, through one end, usually by hand or by one forklift, and often into different vans going to different places.
So a plan has a second property that utilisation is blind to: whether the cargo comes out in usable runs. Ninety boxes of one product in an unbroken band is a plan somebody unloads. The same ninety boxes tucked individually into whatever gaps the solver found is a plan somebody sorts on the floor first — and sorting on the floor is where the hour goes. Both plans can carry the same cargo in the same container at almost the same density.
Counting the thing that hurts
The measurement is simple enough to be worth stealing. Walk the placed load in the order it will be unloaded — depth first, then across, then up — and read off the product code of each box as you pass it. Every time the code changes from the previous box, that is one switch. A perfectly banded plan of twelve products has eleven switches. A shuffled plan of the same twelve products can have hundreds.
That raw count is not yet useful, because it means nothing on its own. Forty switches is excellent for a load of thirty products and catastrophic for a load of two. It has to be divided by something, and the whole difficulty of this metric — the part that took real loads to get right — is deciding what.
The denominator decides the answer
The obvious choice is switches per box. It is easy, it is bounded between zero and one, and it is the right instrument for one specific job: comparing two plans of the same cargo, where the box count is identical on both sides and cancels out. Ask it whether a change made a plan messier and it answers correctly.
Ask it whether a plan is messy in absolute terms and it lies, because switch count does not scale with how many boxes a load contains. It scales with how many distinct products it contains. Here are three real loads, measured both ways:
| Load | Products | Boxes | Switches per box | Switches per band |
|---|---|---|---|---|
| Load A | 5 | 950 | 0.033 | 6.2 |
| Load B | 24 | 174 | 0.241 | 1.75 |
| Load C | 8 | 320 | 0.512 | 20.5 |
Load C is the one the engine’s tidiness rule exists to refuse. It is in the table because a comparison with no bad example in it teaches nothing.
Read the per-box column and Load B looks seven times worse than Load A, and nearly as bad as Load C — the one we reject outright. Read the per-band column, which measures each load against what a perfectly banded plan of its own products would give, and Load B is the tidiest of the three. Which is exactly what it looks like to the person unloading it: forty-two changes across twenty-four different products. That is a plan you can work. Load A, with five products and nearly a thousand boxes, has a far better per-box score and is meaningfully more broken up than B, because a band of one product should have run for two hundred boxes and instead ran for thirty.
Per band, and what 1.0 means
So the denominator is not the box count but the number of distinct products, because a perfectly banded plan has exactly one unbroken run per product. That gives a scale with an interpretable floor: 1.0 is a plan where every product comes out in a single run, 2.0 is a plan where each product is broken into two pieces on average, and 20 — Load C — is a load that has been shuffled.
That floor is the useful part. A number between zero and one tells you nothing about whether you are close to as good as this cargo can get; a number where 1.0 is provably the best possible plan for these particular products tells you immediately how much room is left. Both metrics stay in the engine, because they answer different questions: per box for “did this change make it worse”, per band for “is this good enough to ship”.
What to do with this
You do not need our solver to use any of it. If you plan loads with a spreadsheet, a whiteboard or a different tool entirely, the measurement is a walk down the load and a running count:
- Walk the load in unloading order and count product changes
- Divide by the number of distinct products, not by the box count
- 1.0 is perfectly banded — anything past about 3 will be sorted on the floor
And when a tool offers you a plan that is two points of utilisation better than another, that is now a question rather than an answer: two points of air against how many extra trips across the dock. Often the denser plan is still right — a full container is a real saving and a tidy one is only a convenience. But it is a trade you should get to see, and almost no load planner shows it to you, including ours until we started measuring it.