---
name: packing-options
description: Enumerate and rank master-carton packing permutations for a product - how many units per carton, arranged which way, giving which carton dimensions - and score each one by units per pallet and units per container. Use when the carton size is not yet fixed, when choosing a case pack, when asked what pack quantity ships best, or when a current carton is suspected of wasting pallet space.
---

# Packing options

The carton is usually the biggest lever on freight cost and the one people leave
alone. This searches it: every arrangement of every requested pack count, over
every orientation of the unit, filtered by handling limits, then each survivor
priced out to a pallet and a container.

## Command

```bash
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/freight.py options \
  --dims 300x200x150 --weight 1.2 --pallet eur1 --container 20gp
```

`--dims` here is **one unit**, not the carton — the whole point is that the
carton is the output.

| Flag | Default | Meaning |
| --- | --- | --- |
| `--per-carton` | `1,2,3,4,6,8,10,12,16,20,24` | Pack counts to try. Narrow it when the buyer has a fixed case pack, widen it when they do not. |
| `--wall` | `5` | Carton wall per side in mm. 5 mm is double-wall corrugate; single-wall is nearer 3 mm. |
| `--carton-tare` | `0.5` | Empty carton weight in kg. |
| `--max-carton-weight` | `20` | Handling limit. 20 kg is a common one-person maximum; 15 kg for repeated lifting, 30 kg where two-person handling is accepted. |
| `--max-carton-dim` | `800` | Longest allowed carton side in mm. |
| `--pallet` / `--container` | `eur1` / `20gp` | What the ranking is scored against. |
| `--max-height` | `1800` | Pallet build height. |
| `--top` | `12` | Rows to print. |

## Reading the output

Columns are: pack count, the `nx x ny x nz` arrangement inside the carton, the
resulting external carton, its gross weight, cartons and units per pallet, deck
utilisation, build height, and units per container.

Ranking is **by units per container, then deck utilisation, then larger packs**.
That is one criterion out of several, so present it as a shortlist rather than an
answer. Before recommending one, weigh:

- **Carton cost and count.** Ten times as many small cartons at the same load is
  worse, not better. A row with 1 unit per carton often ties the top of the table
  because it wastes no packaging air — it is the ceiling, not usually the choice.
- **What the buyer will accept.** Retail case packs, minimum order quantities and
  shelf-ready pack rules override geometry.
- **What the packer can run.** An arrangement that needs an odd insert or a
  bespoke box size costs tooling and lead time.
- **Handling.** Right at the weight limit is a claim and an injury waiting to
  happen. Leave headroom.

## The module worth knowing

Footprints that are submultiples of 1200 x 800 mm — 600 x 400, 400 x 300,
300 x 200, 200 x 150 — tile a EUR-1 deck at 100% and also tile a 1200 x 1000
deck at 100%. This is ISO 3394, and it is why those numbers turn up everywhere
in European retail packaging. If a shortlisted carton lands near one of those
footprints, nudging it onto the module is usually free and buys the last few
percent of deck.

Once a carton is chosen, run `container-load` on the carton's external
dimensions to get the shipping figure, and `freight-cost` to turn it into money.
