Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Hazards Analysis

Effective Hazards Analysis Steps

Hazard Identification and Evaluation with Risk Analysis and Assessment

  1. Define the process

This step can involve collecting documentation such as a process flow diagram (PFD), piping and instrumentation diagram (P&ID), operating procedure and other relevant information. It is also important to gather information about the process, such as the materials used, and the operating conditions among other things.

  1. Identify the hazards analysis method to use

Hazards analysis methods include HAZOP, FMEA, and fault tree analysis (FTA). The choice of method will depend on the specific process and the goals of the analysis.

  1. Identify the Hazardous Top Level Event and contributing factors with

  • a Fault Tree Analysis (FTA)

    • Including deductive and inductive reasoning

  • a HAZOP (Hazards and Operability Study)

    • Including guide words and deviations

  1. Fill out a Hazards Analysis (HA) Table

For each failure mode (the lower level events in your falut tree anlaysis), fill out the hazards analysis table including the following information:

  • Task description or process step

  • Hazard type

  • Hazard description

  • Event consequence

  • Safeguards currently present to mitigate the hazard

  • Rank (1A to 5E) for severity and likelihood of the hazard

  • Recommendations to reduce the risk of the hazard

  1. Potentially complete a quantitative risk analysis for those hazards with a high risk ranking

  2. Incoporate other PSM elements per the OSHA 1910.119 standard

Effective Hazards Analysis Steps

Figure 1:Effective Hazards Analysis Steps

Hazards Analysis Methods

Some of the possible methods that can be used include:

  • Checklists

  • What If

  • Five (5) Why’s

  • Fishbone

  • Bowtie

  • JHA (Job Hazard Analysis)

  • HAZOP (Hazard and Operability Study)

  • FTA (Fault Tree Analysis)

  • FMEA (Failure Mode and Effects Analysis)

Bowtie

Bowtie

Figure 2:Bowtie Example

Click to See Code
import graphviz

# Create a new directed graph
dot = graphviz.Digraph('Bowtie', comment='Process Safety Bowtie', format='png')
dot.attr(rankdir='LR', size='12,5')

# Define Styles
dot.attr('node', shape='box', style='filled', fontname='Arial')

# --- THE CENTER (Top Event) ---
dot.node('TopEvent', 'LOSS OF CONTAINMENT\n(Exothermic Runaway)', 
         fillcolor='red', fontcolor='white', width='2.5')

# --- LEFT SIDE (Threats & Preventative Barriers) ---
with dot.subgraph(name='cluster_threats') as t:
    t.attr(label='THREATS', color='blue')
    t.node('T1', 'Cooling System Failure', fillcolor='lightblue')
    t.node('T2', 'Reactant Overcharge', fillcolor='lightblue')
    
    t.node('B1', 'Redundant Pumps', shape='diamond', fillcolor='lightgray')
    t.node('B2', 'Auto Feed-Cut', shape='diamond', fillcolor='lightgray')

# --- RIGHT SIDE (Consequences & Mitigative Barriers) ---
with dot.subgraph(name='cluster_consequences') as c:
    c.attr(label='CONSEQUENCES', color='orange')
    c.node('C1', 'Vessel Rupture', fillcolor='peachpuff')
    c.node('C2', 'Toxic Release', fillcolor='peachpuff')
    
    c.node('M1', 'Pressure Relief Valve', shape='diamond', fillcolor='lightgray')
    c.node('M2', 'Scrubber System', shape='diamond', fillcolor='lightgray')

# --- CONNECTIONS ---
# Left to Center
dot.edge('T1', 'B1')
dot.edge('B1', 'TopEvent')
dot.edge('T2', 'B2')
dot.edge('B2', 'TopEvent')

# Center to Right
dot.edge('TopEvent', 'M1')
dot.edge('M1', 'C1')
dot.edge('TopEvent', 'M2')
dot.edge('M2', 'C2')

# Render the diagram
dot.render('reactor_bowtie', view=True)
print("Bowtie diagram generated as 'reactor_bowtie.png'")

Fishbone and Five (5) Why

FishBone and Five Why

Figure 3:Fishbone and Five Why Example

Click to See Code
# Create a directed graph for the Fishbone Diagram Example
fish = graphviz.Digraph('Fishbone', comment='Root Cause Analysis', format='png')
fish.attr(rankdir='LR', size='12,8')

# Define Global Styles
fish.attr('node', fontname='Arial', style='filled')

# --- THE HEAD (The Effect/Problem) ---
fish.node('Effect', 'PUMP SEAL FAILURE\n& LEAK', 
          shape='deeppink', fillcolor='salmon', width='2.5')

# --- THE MAIN BONES (Categories: The 6 Ms) ---
categories = {
    'Machine': ['Worn Bearings', 'Improper Alignment'],
    'Method': ['Inadequate PM Schedule', 'Incorrect Startup Procedure'],
    'Material': ['Incompatible O-ring Elastomer', 'Abrasive Particles in Fluid'],
    'Manpower': ['Lack of Training', 'Fatigue / Overtime'],
    'Measurement': ['Faulty Pressure Gauge', 'No Vibration Monitoring'],
    'MotherNature': ['Extreme Ambient Heat', 'Corrosive Atmosphere']
}

# --- BUILDING THE STRUCTURE ---
for cat, causes in categories.items():
    # Create the category node (the large bones)
    fish.node(cat, cat, shape='ellipse', fillcolor='lightblue')
    fish.edge(cat, 'Effect', penwidth='3') # Thick line for main bones
    
    # Create the individual causes (the small bones)
    for cause in causes:
        fish.node(cause, cause, shape='none', style='none', fontsize='10')
        fish.edge(cause, cat)

# Render the diagram
fish.render('pump_fishbone', view=True)
print("Fishbone diagram generated as 'pump_fishbone.png'")

# Create a directed graph for the 5 Whys analysis
five_whys = graphviz.Digraph('FiveWhys', comment='Root Cause Analysis', format='png')
five_whys.attr(rankdir='TB', size='8,10') # Top to Bottom flow

# Define Node Styles
five_whys.attr('node', fontname='Arial', style='filled', shape='box', margin='0.2')

# --- THE STAGES ---

# 1. The Problem Statement
five_whys.node('Problem', 'PROBLEM:\nAgitator Motor Overheated and Tripped', 
               fillcolor='#e74c3c', fontcolor='white')

# 2. Why 1
five_whys.node('Why1', 'WHY?\nMotor internal cooling fan failed', 
               fillcolor='#f39c12')

# 3. Why 2
five_whys.node('Why2', 'WHY?\nFan blades were severely corroded', 
               fillcolor='#f1c40f')

# 4. Why 3
five_whys.node('Why3', 'WHY?\nSeal on the motor housing degraded,\nallowing corrosive vapors in', 
               fillcolor='#d4e157')

# 5. Why 4 (The Root Cause)
five_whys.node('RootCause', 'ROOT CAUSE:\nIncorrect seal material (elastomer)\nselected for this chemical environment', 
               fillcolor='#27ae60', fontcolor='white')

# 6. Countermeasure
five_whys.node('CM', 'COUNTERMEASURE:\nReplace with Chemically Resistant Seal\n& Update Material Selection Standard', 
               shape='component', fillcolor='#ecf0f1')

# --- THE CONNECTIONS ---
five_whys.edge('Problem', 'Why1', label=' why?')
five_whys.edge('Why1', 'Why2', label=' why?')
five_whys.edge('Why2', 'Why3', label=' why?')
five_whys.edge('Why3', 'RootCause', label=' why?')
five_whys.edge('RootCause', 'CM', style='dashed', label=' action')

# Render the diagram
five_whys.render('5_whys_analysis', view=True)
print("5 Whys diagram generated as '5_whys_analysis.png'")

The recommended methods for hazards analysis that we used effectively in evaluating explosive, pyrotechnic, and propellant based processes included:

  • Fault Tree Analysis (FTA) with deductive and inductive reasoning followed by Failure Mode and Effects Analysis (FMEA) where the HA table is filled out for each failure mode.

  • HAZOP (Hazards and Operability Study) with guide words and deviations

JHA Template

Figure 4:JHA Template

FTA to HA Table

Figure 5:Fault Tree Analysis to Hazards Analysis Table

When Should you Conduct a Hazards Analysis? As early in the process as feasible.

Many complex processes have been designed and built prior to completion of a hazards anlysis (FTA with a FMEA, or HAZOP). This makes integration of engineering controls into the process very difficult or costly or both. Ideally you complete a hazards anlysis at the design stage and other stages including:

  • Design (a Design Hazards Analysis)

  • Construction and Startup

  • Operation

  • Decomissioning

  • Accident Investigation

Process Safety Information (PSI) is Critical

Process safety information including details of the process, the materials used, and the operating conditions is critical to completing a hazards analysis. We’ll talk a lot more about PSI.

Needed Information for Effective Hazards Analysis

Figure 6:Needed Information for Effective Hazards Analysis