| name | pallet-quantity |
| description | Work out how many units of a product fit on a pallet, for one pallet standard or compared across all of them (EUR-1/EPAL, GMA 48x40, China 1200x1000, Asia 1100x1100, Australian, ISO 6780 sizes). Use whenever someone gives product or carton dimensions and asks about pallet quantity, ti-hi, units per pallet, layers per pallet, pallet build height or deck utilisation. |
Pallet quantity
Computes the layer pattern, the number of layers and the units per pallet for a
product on any of the bundled pallet standards, then reports the build height,
gross weight and how much of the deck is actually used.
Command
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/freight.py pallet \
--dims 600x400x230 --weight 1.9
Do the arithmetic with this script, not in your head. Layer patterns are not
floor(deck area / box area) — a 600 x 400 carton fits 4 to a EUR-1 and 4 to an
1100 x 1100 Asia pallet despite the second deck being 26% larger, because the
module does not tile it. The packer finds the pinwheel; mental arithmetic does
not.
The inputs that change the answer
| Flag | Ask for it when |
|---|
--dims LxWxH | Always. External dimensions of what is being stacked — the shipping carton, not the product inside it, and not the internal cavity. |
--dim-units cm|in|m | The figures are not in millimetres. US suppliers quote inches; catalogue pages often use cm. |
--weight KG | You want gross pallet weight, or a weight limit applies. |
--pallet KEY | A specific standard is in play. Default all, which is the comparison table. |
--max-height MM | The default 1800 mm gross is a warehouse-friendly build. Say 2200 for a container-height build; a 20/40 ft door clears about 2250 mm, so 2200 is the practical ceiling and 2393 mm internal height is not usable for a pre-built pallet. |
--max-layers N | The product has a crush limit, or the buyer specified a ti-hi. |
--max-pallet-weight KG | A site has a handling limit (1000 kg is common for a hand pallet truck). |
--nesting 0.75 | Empty crates, buckets, trays — anything that stacks into itself. 0.75 means each further unit adds 25% of its height. This changes the answer by a factor of three or more, so ask before assuming a plain stack. |
--any-orientation | The product may travel on its side or end. Default keeps the stated height vertical, which is right for anything with a this-way-up mark, a stacking rim, or liquid inside. |
--overhang MM | The buyer permits load overhang. Beyond ~50 mm per side most racking and most carriers will object. |
--json gives the same figures as a machine-readable object.
Reading the output
per layer x layers = per pallet. The layer count is the pattern the
packer found; layers is what the build height allows after the pallet's own
deck is subtracted.
deck is footprint utilisation. Below about 85% say so out loud. Freight
is charged on the footprint the pallet occupies, so empty deck is paid for at
the same rate as product.
[pinwheel] means the layer needs a rotated, non-lane pattern. It is
achievable at a packing bench but the loader has to be told: recommend a
placement diagram in the packing instruction.
limited by names the binding constraint — build height, stack limit or
pallet weight limit. If someone wants more per pallet, that is the constraint
to argue with.
Follow through
A high per-pallet figure is not the goal on its own. Two things usually matter
more, and both have their own skill:
- A pallet that fits the deck perfectly may fit the container badly. A 1200 x
1000 deck takes 5 of a 600 x 400 carton against a EUR-1's 4, but only 9 of
those pallets go into a 20 ft against 11 EUR-1s. Run
container-load before
recommending a standard.
- If the carton size is not yet fixed,
packing-options searches carton
permutations instead of taking the carton as given. That is the bigger lever.