HACCP flow diagram

A HACCP flow diagram shows every step a food product goes through, so that hazards can be analysed step by step and critical control points (CCPs) identified. This example follows cooked chicken portions from receipt of raw chicken and dry ingredients, through storage, preparation, cooking, blast chilling, packing and labelling, to chilled storage and dispatch. Four steps are marked as CCPs, each with a corrective action when the check fails. It is an illustration, not a HACCP plan or compliance advice.

Food businesses draw this as part of building a HACCP plan: the Codex HACCP guidelines make an accurate flow diagram, confirmed on site against the real process, one of the steps before hazards are analysed. A critical control point is a step where control is essential to prevent or remove a hazard, or reduce it to an acceptable level. The actual critical limits, such as temperatures and times, come from the business’s own hazard analysis and the rules that apply to it.

HACCP flow diagram Receive rawchicken CCP 1:deliveryOK? Reject thedelivery Chilled storage,raw Receive dryingredients Ambientstorage Trim, portionand season Cook CCP 2:cookedthrough? Continuecooking Blast chill CCP 3:cooled intime? Discardthe batchand record Pack and label CCP 4:metalfound? Isolate the packand recheck theline Chilled storage,cooked Dispatch No Yes No Yes No Yes Yes No
Open in editor

Mermaid source

---
title: HACCP flow diagram
---
flowchart LR
  receive[Receive raw chicken] --> ccp1{CCP 1: delivery OK?}
  ccp1 -->|No| rejectLoad([Reject the delivery])
  ccp1 -->|Yes| chillRaw[Chilled storage, raw]
  dry[Receive dry ingredients] --> ambient[Ambient storage]
  chillRaw --> prep[Trim, portion and season]
  ambient --> prep
  prep --> cook[Cook]
  cook --> ccp2{CCP 2: cooked through?}
  ccp2 -->|No| more[Continue cooking]
  more --> ccp2
  ccp2 -->|Yes| cool[Blast chill]
  cool --> ccp3{CCP 3: cooled in time?}
  ccp3 -->|No| discard([Discard the batch and record])
  ccp3 -->|Yes| pack[Pack and label]
  pack --> ccp4{CCP 4: metal found?}
  ccp4 -->|Yes| isolate[Isolate the pack and recheck the line]
  isolate --> pack
  ccp4 -->|No| chillStore[Chilled storage, cooked]
  chillStore --> dispatch([Dispatch])

Stock Mermaid vs Line9 on this HACCP flow diagram

Run the same source through the stock Mermaid engine and it often will not look as good. In some cases, Mermaid is able to deliver a usable graph, but not always. On this one:

The same HACCP flow through stock Mermaid — a strip about five times wider than it is tall, with small labels and a crossing near the metal check
Stock Mermaid · same source View full size ↗

Stock Mermaid draws this process as a strip about five times wider than it is tall, so to fit into a page or screen it has to be scaled down and the labels become small. It also has an avoidable crossing: the ‘No’ branch from ‘CCP 4: metal found?’ crosses the edge returning from ‘Isolate the pack and recheck the line’. Line9 lays out the same source in a more compact shape with no crossing edges, so it can be shown at a size where every label is readable.

For a fuller product comparison — layout, export, CLI, and pricing — see Line9 vs mermaid.live.

Render your own

Paste any Mermaid flowchart into the free online editor — no account needed. Prefer the terminal? Install the line9 CLI (free for personal use).

More scenarios on the Mermaid examples hub.