Skip to main content

HACCP plan template for a UK cafe (with worked example)

A HACCP plan is a written document showing you've thought through where food can go wrong and what you do about it. Here's the structure UK EHOs expect, with a cafe example you can copy.


title: "HACCP plan template for a UK cafe (with worked example)" description: "A HACCP plan is a written document showing you've thought through where food can go wrong and what you do about it. Here's the structure UK EHOs expect, with a cafe example you can copy." date: "2026-05-08" keyword: "haccp plan template uk cafe" author: "LogFather"

UK food law requires every food business to have a documented food safety management system based on HACCP principles (Hazard Analysis and Critical Control Points). Retained EU Regulation 852/2004 sets the baseline; the FSA's Safer Food, Better Business (SFBB) pack is the simplified HACCP-based system most independents use.

You don't need a 50-page binder. You need a plan that genuinely reflects how food moves through your kitchen and what controls keep it safe. Here's what that looks like.

The 7 HACCP principles (in plain English)

| Principle | What it means in a cafe | |---|---| | 1. Conduct a hazard analysis | List everything that could go wrong (bacterial, chemical, physical, allergen) at each step from delivery to plate | | 2. Identify Critical Control Points (CCPs) | The handful of steps where if you mess up, you can't recover. Cooking. Reheating. Cooling. Hot-holding. | | 3. Set critical limits | The number that defines safe vs unsafe — 75°C for cooking, 8°C for chilled storage, 63°C for hot-holding | | 4. Monitor each CCP | Who checks, with what, how often, and where they record it | | 5. Define corrective actions | What you do when a check fails — discard, recook, recalibrate, etc. | | 6. Verify the system works | Periodic review — probe calibration, supplier audits, staff knowledge spot checks | | 7. Keep records | The paper trail that proves all of the above is actually happening |

In SFBB the language is softened ("safe methods", "the 4 Cs") but the bones are the same.

Worked example: typical UK cafe

Below is a stripped-down HACCP plan for a small cafe doing sandwiches, salads, soup, hot mains and traybakes. Copy the structure and replace the specifics with your own.

Step 1 — Goods in

Hazards: Bacterial growth from out-of-temp deliveries. Allergen contamination from incorrect labelling. Pest damage to packaging.

Controls:

  • Probe-check chilled deliveries on arrival; reject if >8°C.
  • Visual check of packaging integrity.
  • Cross-check delivery note against order (allergen accuracy).

Critical limit: Chilled food ≤8°C, frozen ≤−18°C, packaging intact.

Monitoring: Every delivery, signed off by receiver. Reading recorded.

Corrective action: Reject delivery, log incident, contact supplier. Use your free goods-in process via the cleaning schedule tool or paper logbook.

Step 2 — Storage

Hazards: Bacterial growth from out-of-range fridges/freezers. Cross-contamination between raw and ready-to-eat. Allergen cross-contact.

Controls:

  • Fridge target ≤5°C (legal max 8°C); freezer ≤−18°C.
  • Raw meat below ready-to-eat, in lidded containers.
  • Allergens stored away from neutral ingredients — labelled, sealed, separate where possible.

Critical limit: ≤8°C chilled, ≤−18°C frozen, no raw above ready-to-eat.

Monitoring: Three temperature checks per fridge per day (open/midday/close) recorded with the free temperature log.

Corrective action: Move stock to a working unit, log corrective action, engineer callout if persistent. See our guide on UK fridge temperature regulations for the full corrective-action ladder.

Step 3 — Preparation

Hazards: Cross-contamination (raw → ready-to-eat). Allergen cross-contact. Foreign objects (jewellery, hair, glass, packaging).

Controls:

  • Separate boards/knives for raw and ready-to-eat (colour-coded).
  • Hand wash between tasks; gloves changed between allergen-containing and allergen-free tasks.
  • Clean-down between menu items where allergen risk exists.

Critical limit: No physical mixing of raw and ready-to-eat surfaces. No cross-contact between allergens and allergen-free menu items.

Monitoring: Visual oversight; staff training records confirming everyone knows the protocol.

Corrective action: Discard contaminated item, deep-clean surface, retrain if process failure repeats.

Step 4 — Cooking (CCP)

Hazards: Survival of pathogens in undercooked food.

Controls:

  • Probe core temperature of cooked items; verify ≥75°C for ≥30 seconds (or equivalent — 70°C for 2 min, 80°C for 6 sec).
  • Visual checks (no pink chicken, juices run clear) as a secondary cue, never primary.

Critical limit: 75°C core, 30 seconds.

Monitoring: Probe reading on each batch of high-risk cooked items. Recorded in cooking-temp log.

Corrective action: Continue cooking, re-probe, re-record. If equipment fault suspected, switch off and call engineer.

Step 5 — Hot-holding (CCP)

Hazards: Bacterial growth between 5–63°C.

Controls:

  • Hot-hold equipment maintained ≥63°C.
  • Maximum 4-hour hot-hold window (FSA guidance for the "hot food once" rule).

Critical limit: ≥63°C, ≤4 hours.

Monitoring: Hourly temperature check on hot-held items.

Corrective action: Reheat to ≥75°C if recoverable, discard if outside 4-hour window, log.

Step 6 — Cooling and reheating (CCP)

Hazards: Bacterial growth in the danger zone during slow cooling. Survival of pathogens during inadequate reheating.

Controls:

  • Cool cooked food from 60°C to ≤8°C within 90 minutes (FSA guidance).
  • Reheat to ≥75°C core for ≥30 seconds, once only.

Critical limit: Cooling 60→8°C in 90 min. Reheat ≥75°C, once.

Monitoring: Probe reading before refrigeration; probe reading on reheated items.

Corrective action: If cooling fails, discard. If reheating fails, continue heating; if can't reach 75°C, discard.

Step 7 — Service / packing (PPDS)

Hazards: Allergen cross-contact. Mislabelling of pre-packaged items.

Controls:

  • Cross-reference label against allergen matrix at point of packing.
  • Update label same day if recipe changed.
  • Verbal allergen info available for any loose item.

Critical limit: Label matches recipe, allergens emphasised. See the Natasha's Law explainer for the full PPDS rules.

Monitoring: Spot-check of one PPDS label per day against current matrix.

Corrective action: Re-label, retrain, update matrix.

What the EHO actually wants to see

Not a thick binder. They want:

  1. One short document showing you've thought through your CCPs and limits (the SFBB pack covers this if completed properly, or the free HACCP worksheet tool gives you a step-through).
  2. Daily logs that match what the document promises (temperature, cleaning, goods-in, cooking, hot-holding).
  3. A current allergen matrix + compliant PPDS labels.
  4. Training records.
  5. A working brain attached to it. Staff who can answer "what do you do if a fridge reads 10°C?" without checking a folder.

Common HACCP plan failures

  • A printed SFBB pack with the "fill in" sections still blank
  • Critical limits copied from a template that doesn't match the equipment in the kitchen (e.g. plan says "75°C" but probe only reads to 60°C)
  • No corrective actions ever logged, suggesting either nothing's gone wrong in two years (not credible) or it has and wasn't recorded
  • Plan describes a workflow nobody on the floor recognises
  • No review date — last update three years ago, two menu changes since

Checklist: a credible HACCP plan

  • Lists each step from goods-in to service
  • Identifies CCPs with explicit critical limits
  • Names monitoring frequency and who's responsible
  • Defines corrective action for each CCP failure
  • Reviewed at least annually, after any menu change, after any near-miss
  • Lives somewhere the team can actually find it

One thing to do today

Open a blank page and write down the four CCPs in your kitchen and what number defines safe vs unsafe at each. If you can't, your plan isn't real yet — and that's the gap an EHO finds first. The free HACCP worksheet tool walks you through the whole structure in about 20 minutes; the worked example above is what the output should look like once it's filled in for your menu.