Logistics & supply chain / Transport operations

Dangerous Goods (DG) Multimodal Load Governance: IMDG Segregation Matrix Validation, ADR 1.1.3.6 1,000-Point Multiplier, Tunnel Restriction Codes, and IATA DGR NOTOC Verification

By Vikasraj YadavPublished 13 min read

For transport operations manager, warehouse controller, logistics finance and compliance leads · Compare approaches

TL;DR — what you’ll learn

  • In chemical, agrochemical, lithium-battery, paint/coatings, and pharmaceutical solvent logistics, planning mixed outbound loads (`road trailers, ocean FCL/LCL containers, and airfreight ULDs`) without an automated **UN Number (`UN 0004`–`UN 3550`) Multi-Modal Dangerous Goods Rule Engine** causes severe regulatory and safety failures: **Incompatible Hazmat Co-Loading** (`e.g., packing Class 5.1 Oxidizers alongside Class 3 Flammable Liquids or Class 8 Acids vs. Cyanides/Alkalis`), **Ocean Terminal Container Rejections** under `IMDG Code Chapter 7.2`, **Road Police Fines & Tunnel Detentions** under `ADR Tunnel Restriction Codes (A–E)`, and **Invalid Shipper's Declarations (`DGD`)**.
  • Deploying a deterministic `imdg iata dangerous goods segregation load check` engine enforces **Pairwise $N \times N$ Class + UN-Specific Segregation Rules (`IMDG 7.2.4`, `ADR 7.5.2`, `49 CFR 177.848`, `IATA DGR Table 9.3.A`)**, **ADR 1.1.3.6 Small-Load `1,000-Point` Exemption Multipliers (`Transport Categories 0, 1, 2, 3, 4`)**, **Limited Quantity (`LQ`) & Excepted Quantity (`EQ`) Inner/Outer Packaging Caps**, **Dynamic Worst-Case Tunnel Restriction Code (`TRC`) Route Filtering**, and **Multi-Language Instructions in Writing (`TREMcard`) + Container Packing Certificate (`CPC`) Generation**.
  • Across an illustrative specialty chemical and battery 3PL shipping `48,000` mixed hazmat/non-hazmat consignments/year across road (`ADR / 49 CFR`), sea (`IMDG`), and air (`IATA DGR`), deploying `imdg iata dangerous goods segregation load check` reduced port/airline DG rejection holds from `3.4%` (`1,632 shipments/yr`) to `0.0%`, saved `$1.12M/year` by legally optimizing LTL dispatch waves under the `ADR 1.1.3.6 < 1,000-point` threshold, and passed `100%` of port state and highway hazmat inspections.
  • Governance implements [IMO IMDG Code (International Maritime Dangerous Goods Code, Amendment 41-22 / 42-24, Chapter 7.2 Segregation)](https://www.imo.org/en/OurWork/Safety/Pages/DangerousGoods-default.aspx), [UNECE ADR (Agreement Concerning the International Carriage of Dangerous Goods by Road, Section 1.1.3.6 & Chapter 8.6 Road Tunnel Restrictions)](https://unece.org/transport/dangerous-goods), and [IATA Dangerous Goods Regulations (DGR 67th Edition, Section 9 Handling & Table 9.3.A)](https://www.iata.org/en/publications/dgr/).

Topics: imdg iata dangerous goods segregation load check · hazmat logistics management · imdg iata compliance

Industrial distribution centre loading dock apron with an unbranded white commercial box truck docked at a hydraulic leveller bay and a glass-fronted yard dispatch control room in natural morning daylight

Illustrative distribution centre loading dock apron and yard dispatch office; not a client facility.

All quantities, amounts, product codes and events are illustrative teaching examples.

Executive Summary: Why Static "Hazard Class" Lookup Tables Fail in Real-World DG Shipping

A dangerous goods shipment cannot be validated merely by checking its primary 1-to-9 Hazard Class (e.g., Class 3 Flammable Liquid or Class 8 Corrosive). Real-world multimodal DG compliance requires evaluating 8 interacting attributes per UN Number across every leg of the transport chain:

  1. Class-Level vs. UN-Specific Segregation Overrides (Acids vs. Alkalis/Hypochlorites within Class 8):
    • In the standard IMDG Code 7.2.4 Segregation Table, combining Class 8 Corrosive with Class 8 Corrosive shows "X" (No general segregation required).
    • However, IMDG Code 7.2.5 / Segregation Groups (SGG1 Acids vs. SGG18 Alkalis, SGG6 Cyanides, SGG8 Hypochlorites) strictly prohibits stowing Concentrated Sulfuric Acid (UN 1830, Class 8, Acid) in the same container with Sodium Hydroxide Solution (UN 1824, Class 8, Alkali) or Sodium Hypochlorite (UN 1791, Class 8) because an accidental leak generates violent exothermic reaction or lethal chlorine/hydrogen cyanide gas! A naive class-only check passes this lethal combination; a true imdg iata dangerous goods segregation load check engine evaluates Primary Class + Subsidiary Hazards + 18 IMDG Segregation Groups (SGG1–SGG18) + Specific Stowage/Segregation Codes (SG1–SG78).
  2. Multimodal "Strictest-Link" Trap (Road ADR to Sea Ferry/Ro-Ro IMDG):
    • Under European ADR Road Rules (Table 7.5.2.1), most Class 3, Class 4.1, Class 6.1, and Class 8 packages are permitted to be loaded together on the same road trailer (except with Class 1 Explosives).
    • However, the moment that road trailer boards a short-sea Roll-on/Roll-off (Ro-Ro) ferry or is stuffed into an ocean container, IMDG Code 7.2.4 ("1 - Away from" or "2 - Separated from") applies—making pairs like Class 3 Flammable Liquids + Class 5.1 Oxidizers or Class 4.3 Dangerous When Wet + Class 8 Liquids strictly illegal inside the same CTU (Cargo Transport Unit)!
  3. Unoptimized ADR 1.1.3.6 1,000-Point Rule Thresholds:
    • Under ADR 1.1.3.6 (and similar national small-load exemptions), if the weighted sum of dangerous goods on a single transport unit remains $\le 1,000\text{ points}$, the shipment is legally exempt from orange-plate placarding, ADR driver certification (in certain jurisdictions/scopes), tunnel restrictions, and full ADR vehicle equipment—saving $350–$900 per LTL delivery run. Conversely, loading 1,005 points onto a standard non-ADR van triggers immediate vehicle impoundment.
  4. Tunnel Restriction Code (TRC) Route Violations:
    • Every UN number + Packing Group combination carries a Tunnel Restriction Code (B, B1000C, C, C5000D, D, D/E, E, or (-) ). Driving aplacarded trailer carrying a D/E load through a Category D Alpine or Urban Underwater Tunnel is a serious criminal/regulatory offense requiring automatic GIS route avoidance.

Technical Architecture: Pairwise Segregation Matrix, 1,000-Point Calculator, and Multimodal Document Gate

Mathematical Foundation: Pairwise Compatibility Matrix, ADR 1,000-Point Rule & IATA Q-Value

1. Pairwise Multimodal Segregation Matrix & Segregation Group Predicate

For a candidate Cargo Transport Unit (CTU — trailer, container, or aircraft ULD) containing package set $\mathcal{P} = {1, 2, \dots, n}$ moving across transport modes $\mathcal{M} \subseteq {\text{ADR}, \text{IMDG}, \text{IATA}, \text{49CFR}}$, let each item $i \in \mathcal{P}$ have hazard profile:

$$\mathbf{h}i = \left(\text{UN}i, , c{\text{prim},i}, , \mathcal{C}{\text{sub},i}, , \text{PG}i, , \mathcal{G}{\text{SGG},i}, , \mathcal{S}_{\text{SG},i}, , \text{LQ}_i\right)$$

For every unordered pair $(i, j) \in \mathcal{P} \times \mathcal{P}$ ($i < j$) and every mode $m \in \mathcal{M}$, the required segregation level $L_m(i, j) \in {0\text{ (Permitted)}, , 1\text{ (Away From / Separate Pallet)}, , 2\text{ (Separated From — Prohibited in Same Closed CTU)}, , 3\text{ (Complete Hold Separation)}, , 4\text{ (Longitudinal Separation)}}$ is the strictest maximum across primary classes, subsidiary risks, and chemical segregation groups:

$$L_m(i, j) = \max\left{ \max_{a \in {c_{\text{prim},i}} \cup \mathcal{C}{\text{sub},i}} ; \max{b \in {c_{\text{prim},j}} \cup \mathcal{C}{\text{sub},j}} T{\text{class},m}(a, b), ;; T_{\text{SGG},m}\left(\mathcal{G}{\text{SGG},i}, \mathcal{S}{\text{SG},j}\right), ;; T_{\text{SGG},m}\left(\mathcal{G}{\text{SGG},j}, \mathcal{S}{\text{SG},i}\right) \right}$$

For a single closed box trailer or 20ft/40ft FCL container under IMDG Code 7.2.3.2, the load is legally valid if and only if:

$$\max_{m \in \mathcal{M}} ; \max_{1 \le i < j \le n} L_m(i, j) \le L_{\text{CTU_allowed}}(m)$$

2. ADR 1.1.3.6 1,000-Point Exemption Calculation ($P_{\text{ADR}}$)

Under ADR 1.1.3.6.3, every UN number/Packing Group is assigned to a Transport Category (TC $\in {0, 1, 2, 3, 4}$) with a maximum total quantity per transport unit $Q_{\max}(\text{TC})$ and a point multiplier $f(\text{TC})$:

  • TC 0 (e.g., UN 1950 Toxic Aerosols, certain Class 1/4.3/6.2): $Q_{\max} = 0$, $f(0) = \infty$ (1.1.3.6 never allowed).
  • TC 1 (typically PG I high-danger substances): $Q_{\max} = 20\text{ L/kg}$ (or $50\text{ kg}$ for selected items), Multiplier $f(1) = 50\text{ points per L or kg}$ ($20 \times 50 = 1,000$).
  • TC 2 (typically PG II medium-danger substances): $Q_{\max} = 333\text{ L/kg}$, Multiplier $f(2) = 3\text{ points per L or kg}$ ($333 \times 3 = 999 \le 1,000$).
  • TC 3 (typically PG III low-danger substances): $Q_{\max} = 1,000\text{ L/kg}$, Multiplier $f(3) = 1\text{ point per L or kg}$.
  • TC 4 (e.g., UN 3268 Air Bag Modules, Empty Uncleaned Packagings): Unlimited, Multiplier $f(4) = 0\text{ points}$.

For a mixed load of items $k \in {1 \dots n}$ where $q_k$ is net mass (kg for solids/liquefied gases) or nominal capacity (L for liquids/compressed gases):

$$P_{\text{ADR}} = \sum_{k=1}^{n} q_k \cdot f\left(\text{TC}_k\right) \le 1,000\text{ points} \quad \text{AND} \quad \mathbb{I}\left(\exists k : \text{TC}_k = 0\right) = 0$$

3. IATA DGR All-Packed-in-One Outer Packaging $Q$-Value Rule

When multiple compatible dangerous goods $k \in {1 \dots r}$ are packed together inside a single UN-approved outer fibreboard box (4G) for airfreight (IATA DGR 5.0.2.11), where $q_k$ is the net quantity of substance $k$ in the box and $M_k$ is the maximum permitted net quantity per package from IATA DGR Table 4.2 (Passenger or Cargo Aircraft column), the dimensionless $Q$-Value must satisfy:

$$Q_{\text{IATA}} = \sum_{k=1}^{r} \frac{q_k}{M_k} \le 1.0 \quad (\text{rounded up to the first decimal place})$$

Worked Numerical Example: Multi-Consignment Chemical & Battery Dispatch Wave (4 Candidate Pallets)

Consider a chemical and industrial distribution center building an outbound load from 4 candidate customer pallets destined for a multimodal Road (ADR) + Short-Sea Ferry (IMDG) transit:

  • Pallet 1 (PAL-01): Acetone (UN 1090), Class 3 (Flammable Liquid), Packing Group II, Flashpoint $-20^\circ\text{C}$, Transport Category TC = 2 ($f = 3$), Tunnel Code (D/E). Quantity: 8 steel drums (1A1) $\times 25\text{ L} = \mathbf{200\text{ L}}$.
  • Pallet 2 (PAL-02): Toluene (UN 1294), Class 3 (Flammable Liquid), Packing Group II, Transport Category TC = 2 ($f = 3$), Tunnel Code (D/E). Quantity: 4 drums $\times 25\text{ L} = \mathbf{100\text{ L}}$.
  • Pallet 3 (PAL-03): Phosphoric Acid Solution (UN 1805), Class 8 (Corrosive), Packing Group III, Segregation Group SGG1 (Acids), Transport Category TC = 3 ($f = 1$), Tunnel Code (E). Quantity: 4 jerricans (3H1) $\times 20\text{ L} = \mathbf{80\text{ L}}$.
  • Pallet 4 (PAL-04): Hydrogen Peroxide, Aqueous Solution 35% (UN 2014), Primary Class 5.1 (Oxidizer), Subsidiary Risk Class 8 (Corrosive), Packing Group II, Segregation Code SG16 / SG59, Transport Category TC = 2 ($f = 3$), Tunnel Code (E). Quantity: 2 jerricans $\times 25\text{ L} = \mathbf{50\text{ L}}$.

Step 1: Pairwise IMDG / ADR Segregation Check

  • Pair (PAL-01 UN 1090 Class 3 vs. PAL-04 UN 2014 Class 5.1(8)):
    • Under IMDG Code Table 7.2.4, Class 3 (Flammable Liquid) vs. Class 5.1 (Oxidizing Substance) = "2" (Separated From).
    • Inside a single closed road trailer or ocean container on an IMDG ferry leg, "Separated From (2)" is STRICTLY PROHIBITED (cannot be loaded in the same closed Cargo Transport Unit).
    • System Decision: The engine immediately BLOCKS co-loading PAL-04 (UN 2014) on the same trailer/container with PAL-01 and PAL-02, splitting PAL-04 onto a separate carrier dispatch!
  • Remaining Load (PAL-01 + PAL-02 + PAL-03):
    • Class 3 (UN 1090 / UN 1294) vs. Class 8 (UN 1805 Phosphoric Acid, non-flammable liquid): IMDG 7.2.4 shows "X" (Permitted in same CTU; no conflicting SG code). COMPATIBLE PASS.

Step 2: ADR 1.1.3.6 1,000-Point Calculation on PAL-01 + PAL-02 + PAL-03

$$\text{Points}(\text{PAL-01, TC 2}) = 200\text{ L} \times 3 = 600\text{ points}$$ $$\text{Points}(\text{PAL-02, TC 2}) = 100\text{ L} \times 3 = 300\text{ points}$$ $$\text{Points}(\text{PAL-03, TC 3}) = 80\text{ L} \times 1 = 80\text{ points}$$ $$P_{\text{ADR, Total}} = 600 + 300 + 80 = \mathbf{980\text{ points}} \le 1,000\text{ points!}$$

  • Result on Road Leg: Because $P_{\text{ADR}} = 980 \le 1,000$, on the domestic road leg the truck legally operates under ADR 1.1.3.6 Small-Load Exemption (exempt from orange plates and Category D/E road tunnel blocks)! (Note: Had a 5th drum of Toluene (25 L x 3 = 75 points) been added, total points would hit 1,055 > 1,000, requiring full ADR orange plates, ADR-certified driver, TREMcard, and strict avoidance of Category D and E road tunnels under worst-case TRC (D/E)).

Multimodal DG Load Check & Compliance Output Schema

{
  "dgLoadValidationResult": {
    "loadValidationId": "DG-CHK-20261020-7731",
    "shipmentId": "SHP-CHEM-EU-9042",
    "transportModes": ["ROAD_ADR_2025", "SEA_FERRY_IMDG_42_24"],
    "cargoTransportUnitType": "CLOSED_BOX_TRAILER_136",
    "rejectedIncompatibleItems": [
      {
        "palletId": "PAL-04",
        "unNumber": "UN2014",
        "properShippingName": "HYDROGEN PEROXIDE, AQUEOUS SOLUTION",
        "primaryClass": "5.1",
        "subsidiaryRisk": ["8"],
        "conflictWithPalletId": "PAL-01",
        "conflictUnNumber": "UN1090",
        "conflictClass": "3",
        "regulatoryCitation": "IMDG Code 7.2.4 Segregation Table: Class 3 vs Class 5.1 = Code 2 (Separated From - Prohibited in same closed CTU)",
        "actionTaken": "AUTO_SPLIT_TO_SEPARATE_SHIPMENT"
      }
    ],
    "approvedManifestItems": [
      { "palletId": "PAL-01", "unNumber": "UN1090", "class": "3", "pg": "II", "tc": 2, "qtyLiters": 200, "adrPoints": 600, "tunnelCode": "D/E" },
      { "palletId": "PAL-02", "unNumber": "UN1294", "class": "3", "pg": "II", "tc": 2, "qtyLiters": 100, "adrPoints": 300, "tunnelCode": "D/E" },
      { "palletId": "PAL-03", "unNumber": "UN1805", "class": "8", "pg": "III", "sgg": "SGG1_ACIDS", "tc": 3, "qtyLiters": 80, "adrPoints": 80, "tunnelCode": "E" }
    ],
    "adr1136Calculation": {
      "tc1SubtotalPoints": 0,
      "tc2SubtotalPoints": 900,
      "tc3SubtotalPoints": 80,
      "totalAdrPoints": 980,
      "exemptUnder1000PointRule": true,
      "unencumberedWorstCaseTunnelCodeIfPlacarded": "D/E"
    },
    "imdgFerryRequirements": {
      "minimumFlashpointCelsius": -20.0,
      "marinePollutantPresent": false,
      "placardsRequiredForSeaLeg": ["CLASS_3_FLAMMABLE_LIQUID", "CLASS_8_CORROSIVE"],
      "containerPackingCertificateGenerated": true
    }
  }
}

Verification & Acceptance Playbook (ACT-L164)

  1. ACT-L164-01 — Intra-Class 8 Acid vs. Alkali/Hypochlorite Segregation Group Block (SGG1 vs. SGG8/SGG18):
    • Scenario: Attempt to consolidate UN 1789 (Hydrochloric Acid, Class 8, PG II, SGG1 Acids) and UN 1791 (Hypochlorite Solution, Class 8, PG III, SGG8 Hypochlorites, Segregation Code SG20 "Stow away from acids") into the same LCL ocean container.
    • Expected System Behavior: Even though both items are Primary Class 8, the imdg iata dangerous goods segregation load check engine must evaluate UN 1791's special segregation code SG20 against UN 1789's membership in SGG1 (Acids), immediately blocking co-loading (ERR_IMDG_SGG1_ACID_HYPOCHLORITE_INCOMPATIBLE — Chlorine Gas Hazard).
  2. ACT-L164-02 — ADR 1.1.3.6 1,000-Point Breach & Driver ADR License / Tunnel Gate:
    • Scenario: Add 25 L of UN 1294 (TC 2, multiplier = 3) to the 980-point load so total points reach 1,055 > 1,000, while the assigned carrier driver does not hold an active ADR Driver Training Certificate (or the planned GPS route passes through the Mont Blanc / Gotthard Category E Tunnel).
    • Expected System Behavior: Upon crossing 1,000 points, the TMS gate must flip placardRequired = true, block dispatch of the non-ADR-certified driver (ERR_DRIVER_ADR_CERTIFICATE_REQUIRED), activate worst-case Tunnel Restriction Code (D/E) on the GIS router (rerouting around Category D and E tunnels), and require printing of the multi-language Instructions in Writing (TREMcard) in the driver's native language.
  3. ACT-L164-03 — Lithium Ion Battery (UN 3480 / UN 3481) IATA Cargo Aircraft Only (CAO) & SoC Gate:
    • Scenario: Attempt to tender standalone Lithium Ion Batteries (UN 3480, Packing Instruction 965 Section IA) on a Passenger Aircraft (PAX) booking or with a declared battery State of Charge SoC = 45% > 30%.
    • Expected System Behavior: The IATA DGR validation gate must reject the booking (ERR_UN3480_FORBIDDEN_ON_PASSENGER_AIRCRAFT and ERR_UN3480_SOC_EXCEEDS_30PCT_LIMIT), requiring both a Cargo Aircraft Only (CAO) allotment and verified SoC <= 30% certification before printing the red-hatched IATA Shipper's Declaration (DGD).

Frequently Asked Questions (FAQ)

Why do shipments that are legal by road (ADR) get rejected at the port gate for ocean (IMDG)?

Road regulations (ADR Table 7.5.2.1) assume the driver can stop the truck and evacuate within seconds if an incident occurs, so ADR permits almost all non-explosive classes (Classes 2, 3, 4.1, 4.2, 4.3, 5.1, 5.2, 6.1, 8, 9) to be loaded together on one trailer. At sea, a fire or chemical reaction inside a sealed container stowed 8 tiers deep in a vessel hold cannot be reached by firefighters—so the IMDG Code (Chapter 7.2) enforces strict physical segregation between oxidizers, flammables, corrosives, and water-reactive goods. Therefore, any load that will board a ferry or container ship must be validated against IMDG rules from the moment it is loaded at the inland warehouse.

How do Limited Quantity (LQ) exemptions change segregation and placarding rules?

When dangerous goods are packed in small inner receptacles (e.g., <= 1.0 L or <= 5.0 L depending on UN number and Packing Group, inside outer packages <= 30 kg gross weight marked with the black-and-white LQ diamond), they are generally exempt from IMDG 7.2 class segregation between different LQ packages (unless they react dangerously with each other, such as Acids + Alkalis/Cyanides). However, once total gross mass of LQ packages exceeds 8 metric tons on an ADR road vehicle (or inside an IMDG container carrying only LQ), exterior LQ Marks (250 x 250 mm) and advance multimodal DG declaration remain mandatory.

What is the "Container Packing Certificate (CPC)" under IMDG Code 5.4.2?

Every ocean container (or road vehicle boarding a sea vessel) carrying dangerous goods must be accompanied by a legally signed Container/Vehicle Packing Certificate (CPC) certifying that the container was clean, dry, and structurally serviceable, that no incompatible goods were packed together, that all packages were inspected for damage and properly marked/labeled, and that drums/pallets were mechanically braced/lashed per the IMO/ILO/UNECE CTU Code.

How do Tunnel Restriction Codes (B, C, D, E) work in European and Asian road routing?

Road tunnels are classified into 5 categories (A = unrestricted through E = most restrictive) based on explosion, toxic gas release, and fire risk:

  • A load with Tunnel Code (B) (e.g., large Class 1 explosives) is barred from Categories B, C, D, and E tunnels.
  • A load with Tunnel Code (D/E) (e.g., UN 1090 Acetone in packages) is barred from Categories D and E tunnels when carried in packages (and barred from C, D, and E if carried in bulk/tanks).
  • A load with Tunnel Code (E) (e.g., UN 1805 Phosphoric Acid) is barred only from Category E tunnels.

Discuss this workflow

Describe your current systems, the recurring exception and the outcome you need. Keep shipment, customer and financial records out of the initial message.

Draft an assessment email

References

Sources checked 20 October 2026. Vendor documentation supports platform facts; the worked examples and diagrams are original.

About the author

Vikasraj Yadav writes about operational decisions, software and automation for NextEdge Labs.