Altor guide · 2026-09-02
Building a DG compliance program that survives an audit
The binder is current. The SOP was signed last year. Training certificates sit in a folder. Then a PHMSA inspector, a customer auditor, or the acceptance desk at the cargo terminal pulls the last ten declarations. The person who signed is not on the roster. The standing instruction still shows a cargo quantity on a passenger booking. The program on the shelf and the program on the paper are not the same thing.
That is the audit that actually happens. It is a test of whether the written process matches the current list and the people who still have the pen.
What the regulation actually requires
There is no single 49 CFR section titled DG compliance program. The program is the offeror duties, written so they can be performed the same way on a Tuesday as on an audit day.
Classification sits on the person who offers the material. 49 CFR 173.22 requires that person to class and describe it under parts 172 and 173, and to determine that the packaging is authorized and correctly assembled. 49 CFR 171.8 is the offeror definition.
Shipping papers sit in 49 CFR Part 172, Subpart C. 49 CFR 172.202 is the basic description. For air, IATA DGR 8.1 is the Shipper's Declaration, completed to IATA DGR 8.1.6. The signature is a certification under 49 CFR 172.204 and IATA DGR 8.1.6.12. The operator then runs IATA DGR 9.1.3.
Training is 49 CFR Part 172, Subpart H. 49 CFR 172.702 requires the hazmat employer to train each hazmat employee, instruct that employee in the requirements that apply to the function, and test on those subjects. 49 CFR 172.704 covers general awareness, function specific training, safety training, and security awareness. In depth security training applies when 49 CFR 172.800 requires a transportation security plan. Initial training must be completed within 90 days of employment or a change in job function, with direct supervision until then, per 49 CFR 172.704(c)(1). Recurrent training is at least once every three years, per 49 CFR 172.704(c)(2). 49 CFR 172.704(d) requires a current record covering the preceding three years. Air functions also sit under IATA DGR 1.5.
A transportation security plan is not a default. 49 CFR 172.800(b) lists the materials that trigger it. Security awareness training still applies even when Subpart I does not. Emergency response information is 49 CFR 172.602. An SDS often meets that duty. It does not replace the declaration.
ICAO TI Table 3-1, implemented in IATA DGR Section 4.2, and 49 CFR 172.101, are the tables the SOP has to point at. Frozen numbers are not a table.
A worked example from the current table. UN 1090 Acetone, Class 3, packing group II. Passenger aircraft: packing instruction 353, 5 L per package. Cargo aircraft: packing instruction 364, 60 L per package. A standing work instruction that says acetone ships at 10 L has already picked a column. If the booking is passenger, IATA DGR 9.1.3 will read 5 L.
UN 1263 Paint, Class 3, packing groups I, II, and III, is the other freeze. Packing group II passenger aircraft is packing instruction 353 at 5 L. Packing group III passenger aircraft is packing instruction 355 at 60 L. A SKU card that always prints packing group II does not survive a batch that tests packing group III.
The mistake people make
Desks confuse a binder with a program.
The dock uses last week's Word template, not the SOP. The training folder holds certificates for people who no longer sign. The people who sign are not in the 49 CFR 172.704(d) records. 49 CFR 172.702 still forbids performing the function without instruction in the requirements that apply, except for the supervised 90 day window in 49 CFR 172.704(c)(1).
The work instruction also stores a net quantity as if IATA DGR Section 4.2 had one column. Copying 10 L from a UN 1090 freighter run onto a passenger booking is a program failure, not a typing error. Section 14 of the SDS is treated as the classification procedure. 49 CFR 173.22 still requires the offeror to class this consignment against the current list. A form that was correct two IATA editions ago still prints. The operator is working from the current edition.
When those habits hit acceptance, the freight parks. The discrepancy report cites the declaration. Recovery after a rejection sits at https://altor.consulting/rejected.html. An audit later pulls the same paper and asks who was trained to produce it.
How to fix it
Write the duties, then prove the last declarations followed them.
Name the offeror functions: classification under 49 CFR 173.22, description under 49 CFR 172.202 and IATA DGR 8.1.6, packaging, marks, labels, and the certification under 49 CFR 172.204. Map the people who actually perform each function. Train those people under 49 CFR 172.702 and 49 CFR 172.704, and under IATA DGR 1.5 for air. Keep the 49 CFR 172.704(d) record for the names that appear on the signature line.
Point every SOP at the current IATA DGR Section 4.2 list and at 49 CFR 172.101, not at a stored UN line. For UN 1090 packing group II, lock aircraft type from the booking first, then write packing instruction 353 at 5 L for passenger aircraft, or packing instruction 364 at 60 L for cargo aircraft. For UN 1263, lock packing group from this batch before you write packing instruction 353 or 355.
Keep the current editions in a place the desk actually opens. When the edition changes, rebuild the templates from a blank. Walk paper against the box in the same order IATA DGR 9.1.3 will, before tender. A second set of eyes on a completed declaration is ordinary care, not a substitute for the program or the signature.
Altor pre-checks completed Dangerous Goods Declarations line by line against the current regulations and returns a written report, with every finding cited, within one business day. You keep the pen. altor.consulting
Catch the rejection before the carrier does
Send your completed declaration before you tender it. A line by line advisory report comes back within 24 hours, every finding cited. $95 flat, one click, and you keep the pen.
Pre-check my DGD · $95 → All servicesRelated: shipment rejected? 24 hour fix · the 2026 lithium battery rule change · all guides
