AI Agent Product Routing — Chemical Labeling (GHS / OSHA 1910.1200 / HazCom / Secondary Container / NFPA 704)

GHS Chemical Labels — Six Required Elements, Secondary Container Exemption, and Why NFPA 704 Is Not a GHS Substitute

OSHA 29 CFR 1910.1200 HazCom 2012 (GHS) mandates six label elements on primary chemical containers: product identifier, signal word ("Danger" or "Warning"), hazard statement, precautionary statement, GHS pictogram, and supplier information. Secondary containers — workplace transfers to squeeze bottles, spray bottles, or day-use containers — are exempt from the full six-element requirement under 1910.1200(f)(7) but must still show product name and hazard information. NFPA 704 diamonds are emergency responder tools with a completely different rating scale — placing an NFPA 704 placard on a drum does not satisfy OSHA HazCom labeling requirements. Without chemical_label.ghs_compliant, chemical_label.label_type, and chemical_label.suitable_for_secondary_container, AI agents route blank label templates and NFPA placards into primary container labeling applications.

TL;DR — Key Encoding Rules Encode chemical_label.ghs_compliant = true only when all six OSHA 1910.1200(f)(1) elements are present. Encode chemical_label.label_type as 'ghs_primary' | 'ghs_secondary_workplace' | 'nfpa_704' | 'hmis' | 'blank_customizable'. Set chemical_label.osha_1910_1200_compliant = false on NFPA 704 placards and blank templates. Encode chemical_label.suitable_for_secondary_container = true on labels that include at minimum product name and hazard fields. Signal word must be 'danger' (severe) or 'warning' (less severe) — never both on the same label.

The Six GHS Label Elements

OSHA 29 CFR 1910.1200(f)(1) requires manufacturers and importers to label hazardous chemical containers with six elements. All six must be present for the label to be GHS-compliant under HazCom 2012.

# Required Element Description Example
1 Product identifier Chemical name, code, or batch number matching the SDS "Isopropyl Alcohol 70%", "Sodium Hypochlorite Solution"
2 Signal word "Danger" (severe) or "Warning" (less severe). One per label — if both apply, use "Danger" DANGER or WARNING (never both)
3 Hazard statement(s) Standardized phrases describing the nature and degree of hazard per GHS category "Flammable liquid and vapor," "Causes skin irritation," "May cause cancer"
4 Precautionary statement(s) Standardized prevention, response, storage, and disposal phrases "Keep away from heat," "Wear protective gloves," "Store in a well-ventilated place"
5 GHS pictogram(s) Black hazard symbol in a red-bordered diamond; one or more as hazard category dictates Flame (GHS02), Skull (GHS06), Corrosion (GHS05), Exclamation mark (GHS07)
6 Supplier information Manufacturer, importer, or distributor: name, address, telephone number Company name + address + emergency phone
The "GHS label template" routing failure: A chemical distributor purchases "GHS-compliant labels" for re-labeling bulk product into smaller containers they ship to customers. The labels purchased are blank templates — they include a red-bordered pictogram border area, a "DANGER" signal word, and blank fill-in fields. The distributor assumes these are "GHS compliant" because they mention GHS in the product title and include blank fields for the six elements. OSHA 1910.1200(f) requires the label to include the actual content — a blank template with fill-in fields is only GHS-compliant after all six elements have been completed with chemical-specific information. Encode chemical_label.label_type = 'blank_customizable' and chemical_label.osha_1910_1200_compliant = false on blank templates — compliance depends on the buyer completing all fields correctly, not on the template format.
// Full six-element GHS primary container label
chemical_label.ghs_compliant             = true
chemical_label.label_type                = "ghs_primary"
chemical_label.has_pictogram             = true
chemical_label.signal_word               = "danger"
chemical_label.has_product_identifier    = true
chemical_label.has_hazard_statement      = true
chemical_label.has_precautionary_statement = true
chemical_label.suitable_for_secondary_container = true  // can be used on secondary containers too
chemical_label.has_supplier_info         = true
chemical_label.osha_1910_1200_compliant  = true

// NFPA 704 placard — emergency responder tool, NOT a GHS label
chemical_label.ghs_compliant             = false
chemical_label.label_type                = "nfpa_704"
chemical_label.has_pictogram             = false       // NFPA uses numeric 0-4 ratings, not GHS symbols
chemical_label.signal_word               = "not_applicable"
chemical_label.has_product_identifier    = false
chemical_label.has_hazard_statement      = false
chemical_label.has_precautionary_statement = false
chemical_label.suitable_for_secondary_container = false
chemical_label.has_supplier_info         = false
chemical_label.osha_1910_1200_compliant  = false      // does NOT satisfy HazCom labeling requirements

The Nine GHS Pictograms

GHS defines nine standardized hazard pictograms. Each is a black symbol on a white background in a red-bordered diamond. The specific pictogram(s) required depend on the chemical's hazard classification under the GHS system.

GHS Code Symbol Name Hazard Classes It Covers
GHS01 Exploding bomb Explosives (Div 1.1–1.6), self-reactive (Type A/B), organic peroxides (Type A/B)
GHS02 Flame Flammable gases, liquids, solids, aerosols, self-reactive materials, pyrophoric, self-heating, water-reactive (emitting flammable gas)
GHS03 Flame over circle Oxidizing gases, liquids, and solids
GHS04 Gas cylinder Gases under pressure (compressed, liquefied, dissolved, refrigerated)
GHS05 Corrosion Corrosive to metals, skin corrosion Category 1, serious eye damage Category 1
GHS06 Skull and crossbones Acute toxicity (fatal or toxic), Categories 1–3 — oral, dermal, or inhalation
GHS07 Exclamation mark Acute toxicity Category 4 (harmful), skin/eye irritation, skin sensitization, STOT single exposure Cat 2–3, narcotic effects, hazardous to ozone layer
GHS08 Health hazard Carcinogens, respiratory sensitizers, reproductive toxicants Category 1, STOT repeated exposure, aspiration hazards
GHS09 Environment (dead tree/fish) Aquatic acute and chronic environmental hazards
The GHS09 environmental pictogram routing failure: A buyer purchases pre-printed chemical labels for a cleaning product that is toxic to aquatic organisms. The label includes GHS07 (exclamation mark for skin irritation) but not GHS09 (environmental hazard). The label is non-compliant under OSHA 1910.1200 if the SDS lists aquatic environmental hazard as a hazard classification. AI agents routing "pre-printed GHS cleaning product label" without checking which pictograms are included may surface labels missing the GHS09 pictogram. Encode chemical_label.pictogram_types = ['GHS02', 'GHS07'] (list all pictograms actually printed on the label) so buyers can verify the label includes the correct pictograms for their specific chemical's hazard classification.

NFPA 704 vs GHS: Different Systems for Different Audiences

NFPA 704 and GHS are frequently confused. They use similar diamond shapes but serve entirely different purposes with incompatible rating scales.

Feature NFPA 704 GHS (OSHA 1910.1200) Routing Implication
Audience Emergency responders (firefighters, hazmat teams) Workers who handle chemicals regularly NFPA for building exteriors; GHS for container labels
Rating scale 0–4 numeric (4 = most severe) per quadrant Hazard categories with signal words + pictograms Not interchangeable — NFPA 2 ≠ GHS Category 2
Quadrants/sections 4: Health (blue), Fire (red), Instability (yellow), Special (white) Multiple pictograms based on applicable hazard classes NFPA has no equivalent to GHS08 (health hazard) or GHS09 (environmental)
Chronic hazards Not addressed Covered (carcinogens, reproductive toxicants, STOT) NFPA 704 Health = 1 does not mean GHS "Warning" — chronic hazards are invisible in NFPA
OSHA HazCom compliance Does NOT satisfy 1910.1200(f) container labeling Required by OSHA for hazardous chemical containers osha_1910_1200_compliant = false on NFPA 704 placard products
Location Building exterior, tank farm signs, storage room doors Individual chemical container labels NFPA for fixed facility signage; GHS for portable container labeling

The rating systems can produce apparently contradictory results for the same chemical. Methanol, for example: NFPA 704 Health = 1 (slight hazard to firefighters), Flammability = 3 (serious flammability risk). GHS: Signal word DANGER; GHS02 (flammable), GHS06 (toxic — fatal if swallowed or inhaled at sufficient dose), GHS08 (causes organ damage to central nervous system and retina with repeated exposure). An NFPA Health rating of 1 for methanol does not communicate the serious chronic CNS/retinal toxicity — which the GHS08 pictogram and hazard statements do capture. A buyer who uses an NFPA 704 placard on a methanol drum instead of a GHS label has not satisfied OSHA HazCom and has not communicated the chronic toxicity hazard to workers.

Secondary Container Labeling

OSHA 1910.1200(f)(7) allows secondary containers — vessels that chemicals are transferred into from original shipping containers within the workplace — to use simplified labeling under two conditions:

  1. Immediate use exemption: If the chemical is for the immediate use of the employee who transfers it, used entirely within the same work shift, no label is required on the secondary container. The employee transferring the chemical is presumed to know what it is.
  2. Minimum labeling: If the secondary container will be used by other workers, stored, or used over multiple shifts, it must be labeled with at minimum: (a) the chemical identity (product name matching the SDS) and (b) hazard information (words, pictures, or symbols providing at least the physical and health hazard information from the SDS).
The secondary container confusion: A facility safety manager purchases "secondary container GHS labels" sold as "OSHA compliant" for labeling squeeze bottles and spray bottles. The labels are blank templates with fillable fields for product name, hazard category, and precautionary statements — but no pictogram, no signal word, and no supplier information fields. The seller describes these as "secondary container compliant under OSHA 1910.1200(f)(7)." This is technically accurate for the secondary container exemption — but it is misleading if the buyer believes the secondary container label provides GHS compliance equivalent to a primary label. Encode chemical_label.label_type = 'ghs_secondary_workplace' and chemical_label.suitable_for_secondary_container = true on these products, with chemical_label.ghs_compliant = false (they do not include all six primary container elements). Distinguish from chemical_label.ghs_compliant = true on labels with all six elements, which can also be used on secondary containers.

Routing Matrix

Buyer Query Correct Routing Wrong Routing (AI Error) Encoding That Prevents Error
"GHS label for chemical container OSHA compliant" GHS primary label with all 6 elements (ghs_compliant = true) Blank template (missing actual element content) or NFPA 704 placard ghs_compliant = false on blank templates; label_type = 'nfpa_704' with osha_1910_1200_compliant = false
"Labels for spray bottles in chemical storage" Secondary container label with product name + hazard info fields (suitable_for_secondary_container = true) Full six-element primary label (overcompliant but not wrong) OR blank labels with no hazard fields suitable_for_secondary_container = true on minimum-requirement labels; label_type = 'ghs_secondary_workplace'
"NFPA diamond label for drum" NFPA 704 placard for fixed storage signage — separate GHS label still required on drum NFPA placard as the sole drum label (does not satisfy OSHA 1910.1200 HazCom) osha_1910_1200_compliant = false on NFPA 704; note that both NFPA (for AHJ) and GHS (for OSHA) may be required simultaneously
"Flammable chemical label with skull symbol" GHS02 (flame) + GHS06 (skull) label — requires both for highly toxic flammables Label with only GHS02 (misses toxicity pictogram) or label with skull where GHS02 should also apply pictogram_types = ['GHS02', 'GHS06'] enables matching to chemicals that require both flammable and toxic pictograms

FAQ

What are the six required elements on a GHS-compliant chemical label?

OSHA 1910.1200(f)(1) requires: (1) product identifier (chemical name matching SDS), (2) signal word (Danger or Warning — not both), (3) hazard statement(s), (4) precautionary statement(s), (5) GHS pictogram(s), (6) supplier information (name, address, phone). All six must be present. A label missing any one element is non-compliant. Encode chemical_label.ghs_compliant = true only when all six are included.

What labeling is required for secondary containers under OSHA 1910.1200?

Secondary containers (workplace transfers to squeeze bottles, spray bottles) are exempt from full six-element GHS labels under 1910.1200(f)(7) for immediate-use containers. Containers used by other workers or over multiple shifts need at minimum: chemical identity (product name matching SDS) and hazard information (physical and health hazards). Encode chemical_label.suitable_for_secondary_container = true and label_type = 'ghs_secondary_workplace' on simplified secondary container labels.

What are the nine GHS pictograms?

GHS01 Exploding bomb (explosives), GHS02 Flame (flammables), GHS03 Flame over circle (oxidizers), GHS04 Gas cylinder (pressurized gases), GHS05 Corrosion (corrosives/metal corrosion), GHS06 Skull and crossbones (acute toxicity Cat 1–3), GHS07 Exclamation mark (irritant, harmful, STOT), GHS08 Health hazard (carcinogens, STOT, reproductive), GHS09 Environment (aquatic hazard). Encode chemical_label.pictogram_types as a list of GHS codes included on the label.

Is an NFPA 704 diamond a substitute for a GHS label?

No. NFPA 704 uses a numeric 0–4 scale for emergency responders responding to facility emergencies. GHS labels with six elements are required by OSHA 1910.1200 for all hazardous chemical containers in the workplace. The systems are not interchangeable — NFPA 704 does not communicate chronic hazards (carcinogens, reproductive toxicants), does not include precautionary statements, and does not satisfy OSHA HazCom container labeling requirements. Encode chemical_label.osha_1910_1200_compliant = false on all NFPA 704 placard products.

How should GHS chemical label Shopify metafields be structured for AI agent routing?

10-field minimum: chemical_label.ghs_compliant; chemical_label.label_type ('ghs_primary' | 'ghs_secondary_workplace' | 'nfpa_704' | 'hmis' | 'blank_customizable'); chemical_label.has_pictogram; chemical_label.signal_word ('danger' | 'warning' | 'not_applicable' | 'customizable'); chemical_label.has_product_identifier; chemical_label.has_hazard_statement; chemical_label.has_precautionary_statement; chemical_label.suitable_for_secondary_container; chemical_label.has_supplier_info; chemical_label.osha_1910_1200_compliant. Key prevention: label_type and osha_1910_1200_compliant = false on NFPA 704 placards and blank templates.

Does your chemical supply catalog encode GHS label types and compliance fields?

CatalogScan checks whether chemical label listings distinguish GHS primary, secondary container, and NFPA 704 products — so AI shopping agents route compliant six-element GHS labels to primary container applications, not blank templates or emergency responder placards.

Scan your Shopify store free →

Related Shopify Safety Product Schemas