HACCP plan for fish: receiving, storing, freezing and cooking in a restaurant
Fish has more hazards than most foods and each one has its own control. A restaurant plan for fish has five control points: buy from an approved source and receive it cold, keep it at 41°F or below (a lower number than most kitchens use for meat is better still), freeze fish that will be served raw or undercooked to kill parasites, cook the rest to 145°F, and keep fish out of vacuum packaging unless you have a plan for that too. This page gives limits, worked rows and a daily log for a restaurant, fish market counter, poke or sushi counter, or any kitchen that cooks or sells finfish.
Free logs are on the logs page. Numbers come from the FDA Food Code and FDA's fish hazards guide; your health department's adopted version decides, so confirm them before you print the plan.
Do you need a written HACCP plan for fish?
For a plain restaurant, no separate filing: fish goes into the general food safety plan as a high-risk food, and the Food Code covers it [1]. There is one trap with the word "HACCP" here. A federal seafood HACCP rule exists (21 CFR Part 123), but it applies to processors and importers, not to retail restaurants or stores that sell directly to consumers [2]. If you only cook and sell fish to the customer in front of you, that rule is not yours; your health department and the Food Code are. A written plan is required, or a variance is, when you do something the Food Code treats as special: vacuum pack or sous vide fish, smoke or cure fish, or serve parasite-destroyed raw fish without the standard freezing record. Ask your health department before you start any of these.
For the structure of a whole plan, see the food safety plan template and the HACCP plan for a restaurant guide.
What can go wrong with fish
Fish carries hazards that meat and poultry do not. The ones to plan for, in the order cooks meet them:
| Hazard | Which fish | What controls it |
|---|---|---|
| Histamine (scombrotoxin) | Tuna, mahi-mahi, mackerel, bluefish, amberjack, sardines, anchovies | Cold chain from the boat to your cooler; cooking does not destroy it |
| Parasites (such as Anisakis) | Wild salmon, cod, herring, and many other fish eaten raw or undercooked | Freezing to a set temperature and time, or cooking |
| Bacteria: Listeria, Salmonella, Vibrio | Cold smoked fish, raw fish, fish held warm | 41°F or below; cooking to 145°F; clean handling |
| Clostridium botulinum | Fish in vacuum packaging, smoked fish in a sealed pack | Reduced oxygen packaging controls; a plan or variance |
| Ciguatera toxin | Large reef fish such as barracuda, grouper, snapper from warm waters | Approved source; do not buy from unknown suppliers; cooking does not destroy it |
| Cross-contamination | Raw fish on boards, hands and sinks | Separate boards and utensils; shelf order |
| Allergen | All finfish | Labeling; separate fryer oil and tools where you can |
Histamine matters most for the plan. It forms in the flesh of certain fish when they warm up before they are cooked or frozen. It is not killed by cooking or freezing, so no step in your kitchen can fix a fish that was held too warm earlier. The only control is the cold chain and the supplier you buy from [2].
The flow
- Receive whole fish, fillets or frozen product
- Store on ice or in the cooler, below ready-to-eat food
- Thaw (if frozen) under refrigeration
- Cut, portion and prepare
- Freeze for parasite destruction, if the fish will be raw
- Cook, or serve raw with the consumer advisory
- Hold, cool and reheat leftovers
Receiving fish
Buy from an approved source and ask your supplier for the origin and, for tuna and similar fish, how the supplier controls temperature. Check the temperature at the door: fresh fish at 41°F or below, or on ice; frozen fish solid with no signs of thawing [1]. Look at the fish too. Use all the checks:
- Temperature: probe the thickest part of a fillet, or the cavity of a whole fish. A cooler truck reading is not enough.
- Eyes: clear and bulging on whole fish; cloudy or sunken means old.
- Gills: bright red to pink, not brown or slimy.
- Flesh: firm, springs back when pressed; no gaping, no dried edges.
- Smell: fresh and like the sea, not sour or ammonia.
- Frozen fish: no ice crystals inside the pack, no freezer burn, no liquid in the box. These suggest it thawed and was refrozen.
The receiving temperature log guide has the form and the reject wording. Keep the invoice or the label with the supplier name and the date.
- Limit: 41°F or below fresh or on ice; frozen hard; approved source.
- Monitoring: probe each delivery; look at the fish.
- Corrective action: reject warm, soft or smelly fish. For scombroid fish, reject if above 41°F; do not accept it "just this once."
Storing fish
Store fresh fish at 41°F or below, and for a better shelf life as cold as 32 to 34°F on ice in a drained pan, so that melting ice does not sit around the fish. Put fish on a shelf below ready-to-eat food and above ground meat and poultry; the Food Code orders shelves by cooking temperature, and fish is cooked to 145°F [1]. Raw shellfish and fish are kept apart from cooked food. Use fish first in, first out, and set a use-by for each type in the plan; two or three days from receiving is a common choice for fresh fillets, a plan choice rather than a Food Code figure.
Check the cooler with the routine in the walk-in cooler log guide.
Thawing frozen fish
Thaw frozen fish in the cooler, in its tray, with a drain, or under cold running water at 70°F or below for the shortest time you can, or as part of cooking [1]. Do not thaw on the counter. One special case: if the fish is vacuum packed, take it out of the bag before thawing, because the oxygen-free pack lets C. botulinum grow as the fish warms. Fish thawed once is not frozen again for later use unless the plan says it is safe for that product, because quality drops and each thaw is a chance to warm up.
Parasite destruction: freezing fish served raw
Fish eaten raw or lightly cooked (sushi, sashimi, ceviche, crudo, tartare, poke, cold-smoked or marinated fish) must be frozen first to kill parasites, unless an exemption applies. The Food Code gives three options [1]:
- Freeze and store at -4°F (-20°C) or below for 7 days total.
- Freeze at -31°F (-35°C) or below until solid, and store at that temperature for 15 hours.
- Freeze at -31°F (-35°C) or below until solid, and store at -4°F (-20°C) or below for 24 hours.
A home-style freezer at 0°F is not cold enough. Check what your freezer reads with the freezer temperature log guide before you count days. Many kitchens buy fish that the supplier has already frozen to these limits and has certified in writing; keep that letter or the invoice statement for 90 days after the fish is sold or served. The exemptions in the Food Code are specific: certain tunas, molluscan shellfish, and fish raised in aquaculture on formulated feed. Do not guess which fish are exempt; read the code section with your health department.
The raw fish rules go further in the sushi restaurant plan, and shellstock has its own tags in the raw oysters plan.
- Limit: one of the three freezing pairs above, or a written supplier statement.
- Monitoring: freezer thermometer log; date and time the fish went in; supplier letter on file.
- Corrective action: if the freezer warmed, restart the clock or cook the fish.
Cooking fish: 145°F
The Food Code limit for fish is 145°F for 15 seconds [1]. Cooked to 145°F the flesh is opaque and flakes easily with a fork. A fish cooked to order below 145°F, such as seared tuna or medium salmon, is "undercooked" under the code: it needs the consumer advisory on the menu, and should come from a source that has handled the temperature and the parasite control. Do not serve undercooked fish to a highly susceptible guest [1]. Probe the thickest part of the fish. Stuffed fish and fish cooked in a stuffing or a salt crust are cooked to 165°F in the center of the stuffing, as it contains other ingredients.
- Limit: 145°F for 15 seconds; 165°F for stuffed fish.
- Monitoring: probe each batch, and the thickest piece.
- Corrective action: keep cooking.
Reduced oxygen packaging and smoked fish
Bagged fish is where a fish plan stops being optional. Vacuum packing, sous vide and smoking fish can let C. botulinum grow without any smell or sign. The Food Code makes fish in reduced oxygen packaging a HACCP plan item, and in many places a variance, with strict rules on temperature, time and how the fish is frozen or labeled [1]. If you want to vacuum pack fish for storage or cook it sous vide, read the vacuum sealing plan and the sous vide plan, and the smoked and cured meats plan if you smoke or cure salmon. Buying vacuum-packed smoked salmon from a supplier is fine; unpack it, keep it at 41°F or below and follow the use-by.
Holding, cooling and reheating cooked fish
Cooked fish is held hot at 135°F or above, or cooled in two stages: 135°F to 70°F within 2 hours, then to 41°F within 4 more [1]. Fish dishes with sauces, chowders and fish stews follow the same cooling rule as any soup, in shallow pans; see the cooling log guide. Reheat to 165°F within 2 hours before serving again, as set out in the reheating temperature log guide.
Preventing cross-contamination
- Use a separate board, knife and tray for raw fish. Many kitchens use a blue board for fish.
- Wash, rinse and sanitize the board and knife after raw fish and before anything else.
- Wash hands after handling raw fish.
- Change gloves between fish and other food; gloves do not replace hand washing.
- Keep raw fish and raw shellfish away from ready-to-eat items on shelves and in prep.
- Use a fryer for fish that is not shared with allergen-free items, or tell the guest.
Worked plan rows for fish
| Step | Hazard | Limit | Monitoring | If it fails | Record |
|---|---|---|---|---|---|
| Receive fresh | Histamine; bacterial growth | 41°F or below; approved source | Probe each delivery | Reject | Receiving log |
| Receive frozen | Thawing in transit | Frozen hard, no crystals inside pack | Look and feel | Reject | Receiving log |
| Store | Growth | 41°F or below, on drained ice | Cooler log | Move; discard if over 4 h above | Cooler log |
| Thaw | Growth; botulinum if bagged | In cooler or under 70°F running water; out of the bag | Timer | Discard if left out | Prep sheet |
| Freeze for raw | Parasites | -4°F for 7 days, or -31°F pairs | Freezer log; supplier letter | Restart clock or cook | Freezer log |
| Cook | Bacteria | 145°F for 15 s; 165°F if stuffed | Probe thickest piece | Keep cooking | Cook log |
| Hold hot | Growth | 135°F or above | Probe every 2 h | Reheat once to 165°F or discard | Hold log |
| Cool | Growth | 135 to 70°F in 2 h; to 41°F in 6 h total | Probe at 2 h and 6 h | Reheat and cool again, or discard | Cooling log |
A daily fish log
Example entries showing how rows read, not records:
| Time | Item | Reading | Initials | Action |
|---|---|---|---|---|
| 7:10 a.m. | Delivery, salmon fillets 20 lb | 37°F | AL | Accepted; eyes and flesh checked |
| 7:15 a.m. | Delivery, yellowfin tuna 8 lb | 46°F | AL | Rejected; above 41°F; supplier called |
| 7:30 a.m. | Reach-in freezer, parasite-destruction shelf | -8°F | AL | None; fish in at 7:30 a.m., out no earlier than 7 days |
| 12:20 p.m. | Seared salmon, lunch | 148°F | BP | None |
| 2:00 p.m. | Fish chowder, 2 pans | 135°F to 69°F in 1 h 45 min | BP | None; at 41°F by 5:30 p.m. |
Keep records as long as your health department requires; if unsure, a year is a safe default. Keep the freezing letters for 90 days after the fish is sold.
Common mistakes
- Accepting warm tuna "because it looks fine." Histamine does not smell or show.
- Using a 0°F home-style freezer for the parasite step. It needs -4°F or colder.
- Thawing fish in its vacuum bag on the counter.
- Using the same board for fish and salad.
- Serving seared or raw fish with no advisory on the menu.
- Vacuum packing fish without a plan.
- No supplier letter for fish sold raw.
Questions
What temperature should fish be cooked to?
145°F for 15 seconds under the Food Code; 165°F when stuffed.
What temperature should fish be stored at?
41°F or below; many kitchens keep it colder, on drained ice, to hold quality.
Does a restaurant need a seafood HACCP plan?
The federal seafood HACCP rule is for processors and importers. Restaurants follow the Food Code, with a written plan or variance for special processes such as vacuum packing or smoking fish.
How do you freeze fish to kill parasites?
-4°F or below for 7 days, or -31°F until solid and held 15 hours, or -31°F until solid and then -4°F for 24 hours.
Can I serve sushi fish without freezing it?
Only the fish the Food Code exempts (certain tunas, shellfish, and aquacultured fish on formulated feed), or fish your supplier documents as frozen. Ask your health department.
Where do I get logs?
Use the free sheets on our logs page and add the fish rows from the example above.
Sources
- FDA Food Code 2022 (3-202.11 receiving, 3-401.11 cooking, 3-402.11 parasite destruction, 3-501.16 holding, 3-502.11 variance, 3-603.11 consumer advisory), U.S. Food and Drug Administration
- Fish and Fishery Products Hazards and Controls Guidance, U.S. Food and Drug Administration
Related: all food safety guides, HACCP plan for chicken.