Reference data: what is specified, what is typical, what to verify

July 30, 2026 · View on GitHub

data/pallets.csv and data/containers.csv are the only sources of truth in this plugin. Both carry a provenance column, and it means something:

ProvenanceRead it as
specifiedFixed by the named standard. A pallet claiming to be a EUR-1 and measuring something else is not a EUR-1.
typical / carrier-typicalThe common build. Right for planning, wrong for a contract. Verify before committing.
indicativeVaries widely by maker. Always verify against the actual unit.

Compiled and checked 2026-07-30.

Pallets

Footprints are standardised; deck heights and tare weights mostly are not. The EUR-1's 144 mm deck is specified in UIC 435-2 / EN 13698-1. Chinese export pallets run 120-165 mm depending on whether they are block or stringer built, and the 145 mm in the data file is mid-range, not a specification. Tare weights are typical builds — wooden GMA pallets alone range from about 15 to 23 kg.

ISO 6780 defines six footprints, all present here: 1219 x 1016 (ISO1, the North American GMA 48 x 40 in), 1200 x 1000 (ISO2), 1140 x 1140 (ISO3), 1200 x 800 (ISO4, the EUR-1 footprint), 1100 x 1100 (ISO5) and 1067 x 1067 (ISO6).

China builds to 1200 x 1000, not to EUR-1. GB/T 2934-2007 makes 1200 x 1000 the preferred size, aligning with ISO2. The superseded GB/T 2934-1996 carried four sizes including 1200 x 800, so a Chinese factory can quote a EUR-1 footprint — nothing in its own standard points it there. Domestic adoption is genuinely mixed, and plastic pallets are more concentrated than wooden ones (roughly half are 1100 x 1100 or 1200 x 1000) because injection moulds are expensive to develop. A plastic crate factory is exactly the kind of plant likely to own 1100 x 1100 moulds.

Which is why the 1100 x 1100 case is worth arguing about. The 600 x 400 module does not tile it: the best layer is a four-box pinwheel that still leaves 21% of the deck empty, and ocean freight is charged on the full footprint. If a supplier's moulds are 1100 x 1100, asking for 1200 x 1000 or for loose loading is a real saving rather than a preference.

Switching a European buyer's EUR-1 spec to the Chinese 1200 x 1000 costs nothing per pallet and something per container. Both 1200 mm decks take both the 600 x 400 and 400 x 300 modules at 100% utilisation, so the wider deck gives 5 per layer instead of 4. But two 1200 mm sides side by side need 2400 mm in a 2352 mm container, so the pallets must go 1000 mm across the width and leave a dead lane: 9 per 20 ft against 11, 20 per 40 ft against 23. More per pallet, fewer pallets per box. Run both.

The Australian 1165 x 1165 is a poor container fit by design — 10 to a 20 ft, 20 to a 40 ft. It was sized for rail, not for ISO boxes.

ISPM 15 applies to wood, and only to wood. Wooden packaging and dunnage must be heat treated or fumigated and carry the IPPC mark; non-compliant wood at the destination port means fumigation, re-export or destruction at the importer's cost and on the importer's clock. Plastic pallets sidestep it entirely, and a one-way nestable plastic export pallet may be cheaper than the risk of a missing certificate.

Containers

Internal height is not the constraint on a pre-built pallet; the door is. A 20 ft and 40 ft GP measure 2393 mm internally but the doors clear about 2280 mm. A pallet built to the ceiling does not go in. Practical maximum build height for a general-purpose box is 2200 mm gross including the deck.

Payloads are nominal and vary three ways — by container build, by carrier, and by the road weight limit at each end of the journey. A 20 ft rated at 28,200 kg is routinely capped well below that by the truck leg. Treat the figure as a ceiling to check against, not an allowance to plan to.

A 40 ft HC is usually the default 40 ft box, not the GP: 305 mm more height for the same floor. Ask for HC pricing before booking a GP.

Reefer dimensions vary by make more than any other row here, internal height especially, and the indicative marking is doing real work. Verify against the unit that has actually been allocated.

The 13.6 m curtainsider row exists for the loading-metre basis. European road groupage is often billed per loading metre (LDM), and 33 EUR-1 floor spots across 13.6 m is where that convention comes from. The row is there so a road quote can be checked with the same arithmetic as an ocean one.

Sources

Standards, by identifier — check the current text before relying on a clause:

  • ISO 6780 — Flat pallets for intercontinental materials handling: principal dimensions and tolerances.
  • ISO 668 — Series 1 freight containers: classification, external dimensions and ratings.
  • ISO 3394 — Dimensions of rigid rectangular packages: the 600 x 400 module and its submultiples.
  • UIC 435-2 / EN 13698-1 — EUR-1 / EPAL 1 specification, including the 144 mm deck.
  • GB/T 2934-2007 — General-purpose flat pallets for through transit of goods, China's national standard; 1200 x 1000 preferred. Supersedes GB/T 2934-1996, which was an equivalent adoption of ISO 6780:1988 and carried four footprints.
  • AS 4068-1993 — Flat pallets for materials handling, Australia; 1165 x 1165.
  • JIS Z 0601 — Japanese pallet standard; 1100 x 1100.
  • ISPM 15 — International standards for phytosanitary measures No. 15, regulation of wood packaging material in international trade.
  • IATA — 1:6000 cm3/kg volumetric factor for air freight chargeable weight.

Container internal dimensions and cubic capacities are the nominal figures common to carrier specification sheets for general-purpose dry boxes; the pallet-market adoption claims above were compiled from pallet-industry and Chinese pallet-manufacturer sources on 2026-07-30. The trade-practice statements — that suppliers of empty nesting crates commonly quote loose loading, that plastic mould concentration follows tooling cost — are inferred from the loading economics and standard supplier packing language, not confirmed with a named supplier.

Changing the data

Add a row to the CSV rather than editing the script. freight.py units lists whatever is in the files, and every subcommand accepts the new key immediately. Set provenance honestly, and put what you actually verified in notes — the next person reading a figure out of this plugin has no other way to know how much to trust it.