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.
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 |
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 |
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:
- 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.
- 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).
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
- Safety sign ANSI Z535 signal words — Danger vs Warning vs Caution vs Notice
- Secondary containment spill berm EPA 40 CFR 264 — IBC vs drum sizing errors
- Chemical glove material — butyl, neoprene, nitrile, latex compatibility routing
- Flammable liquid storage cabinet NFPA 30 — FM approved, oxidizer segregation