A trailer-loading optimizer has one job: take a list of pallets and decide where each one goes, so the whole load fits, stays stable, and comes off in the right order at every stop. That sounds like something you could do by hand. With ten pallets, maybe. With forty mixed pallets across five clients, there are more ways to arrange them than there are seconds in the age of the universe, so "just try them all" was never on the table.
What you need instead is a method that's fast, repeatable, and good. Here's exactly how PalletPlan's load planner does it, from an empty trailer to a finished plan. No black box.
The problem: too many arrangements to count
Loading is a packing problem, and packing problems are hard in the formal sense: the number of possible layouts explodes as you add pallets. You can't check them all, and neither can a person standing at the dock with a clipboard. Dispatchers cope by falling back on habit and leaving "just in case" gaps, which is exactly where wasted space and freight cost creep in.
The goal isn't to find the single perfect layout. It's to find a very good one quickly, and to find the same one every time so you can actually trust it. PalletPlan does that in two layers.
Layer one: placing a single pallet
Start with an empty trailer, roughly 13.6 m long, 2.45 m wide, 2.7 m tall. The first pallet goes in the front-left corner on the floor. The moment it lands, it opens up new corners beside it and behind it. The algorithm keeps a running list of these open corners (they're called extreme points), and every new pallet gets dropped at the best one available.
"Best" follows a strict pecking order: lowest first, to keep things on the floor; then closest to the nose of the trailer; then across the width. In practice the packer fills a slice across the width before stepping deeper toward the back.
It also tries every pallet both ways round and keeps whichever fills the width better. On a 2.45 m-wide trailer, a EUR pallet turned narrow-side-out (0.8 m) packs three across; turned the long way (1.2 m), only two. Same floor strip used, but that's 50% more pallets in every row, so the optimizer rotates them the efficient way without anyone thinking about it.
Two checks run before anything is placed: does the pallet actually fit inside the trailer, and does it overlap something already there? Overlaps are rejected outright with box-collision math. Nothing is ever allowed to clip through another pallet.
Layer two: trying many orders
Placement order changes everything. Put the big, awkward pallets in first and the small ones flow into the gaps around them. Put the small ones first and the big ones get stranded with nowhere left to go. So the first pass always sorts pallets biggest-first and packs them in that order.
One pass is rarely the best, though. So PalletPlan runs the packer again and again, up to 50 times, each run shuffling the order a little within that biggest-first bias and keeping the best result it finds. This is a technique called GRASP (Greedy Randomized Adaptive Search Procedure), which is a long name for a simple idea: stay greedy, add a controlled dose of randomness, keep the winner. The whole search finishes in under three seconds and stops early once the results plateau.
What "best" actually means
Every finished layout gets a score, and this is where the optimizer's priorities show. The first rule is absolute: fit more pallets. A plan that loads 38 of 40 pallets always beats one that loads 37, no matter how tidy the smaller plan looks. Only when two plans fit the same number does anything else come into play.
After that, four things decide the winner, in this order of weight:
- Client clustering (highest weight, 0.40). Keeping each customer's freight in one block, so the driver pulls a whole order at once instead of digging through the trailer.
- Space utilization (0.30). How much of the trailer's volume actually gets used.
- EUR floor preservation (0.15). Leaving clean EUR-pallet-sized floor areas open for last-minute freight and returns.
- Stacking efficiency (lowest weight, 0.10). A small reward for using vertical space, kept low on purpose so the optimizer never stacks just to pad its own score.
That ordering is a deliberate call. On a multi-stop route, a driver hunting for one client's pallets costs more real time than a couple of percent of fill ever will, so clustering outranks raw utilization.
The parts that matter on the dock
A handful of behaviors exist purely because real loads are messy:
- Same-client stacking. When one pallet can safely sit on another from the same client, the optimizer builds that column instead of spreading the client across the floor. You can also hard-block cross-client stacking when freight has to stay separated.
- Delivery order. Set your stop sequence and the packer feeds the last stop in first, so it lands deep in the trailer, and stop #1 last, nearest the doors. That's the LIFO loading drivers rely on, handled for you.
- Locked pallets. If part of the trailer is already loaded, lock those positions and the optimizer treats them as fixed obstacles, planning only around what's left. It will never hand you a plan that needs a driver to unload freight that's already on board.
- Gap closing. A final pass slides floor pallets together so you don't end up with a wasted aisle running down the middle of the load.
What it deliberately leaves alone, for now: axle-weight balancing, fragility rules, and splitting a load across multiple trailers. Those are real concerns, and weight distribution especially deserves attention, but they stay in the dispatcher's hands rather than being faked by the tool.
Same input, same plan, every time
One detail does more for trust than all the rest: the optimizer is deterministic. Every bit of its "randomness" runs through a fixed seed, so the same pallet list produces the exact same plan on every run, on every machine. Press optimize twice and you get an identical layout.
That matters because a plan you can't reproduce is a plan you can't rely on. You run PalletPlan, read the result, change one thing, and re-run, treating it as a tool you steer rather than a slot machine. It takes the combinatorial heavy lifting off your plate and leaves the judgment calls to the person who knows the route.
See it on your own pallets
The fastest way to understand the algorithm is to feed it a real load. Drop in your pallet list (sizes, clients, delivery stops, and what stacks on what) and watch it build the plan in a few seconds. Read the step-by-step method it automates, or just open the planner and throw one of your harder routes at it.
Try PalletPlan free · How it works · Pricing
Related reading: How to Load a Trailer Efficiently | Cut Freight Costs with Smarter Load Planning | Trailer Weight Distribution and Axle Limits