Stocks & broths
Fish Stock
Fumet de poisson · A light, delicately flavored liquid extracted from fish bones, frames, and trimmings with aromatics. The primary function is to yield clean, clear fish gelatin in solution, providing body and a subtle oceanic essence that serves as a foundation for sauces, soups, and risottos. It is not a finished broth; it is a building block.

The formula
1 kg bones : 1.5–2 L cold water
Scale bones and water proportionally. Add aromatics (onion, celery, carrot, leek, fennel) at roughly 5–8% of bone weight. Use 1 bouquet garni per 2 L. Simmer 20–30 min; do not boil. Strain through cheesecloth. Yield: approximately 1.2–1.6 L from 1 kg bones.
Identity
- Made from raw fish bones, frames, heads (gills removed), and trimmings — never from pre‑cooked fish
- Simmered, never boiled; gentle heat prevents cloudiness and bitter lipid oxidation
- Aromatics are sweated first, not charred; no tomato in classical French preparation
- Strained through fine mesh or cheesecloth; degreased while hot
- Used the same day fresh, or frozen; flavor degrades rapidly (48 h refrigerated)
Ingredients
| Base | White fish bones, frames, heads, trimmings (sole, cod, turbot, halibut, etc.) | Use raw, cold‑water fish. Avoid oily fish (mackerel, sardine) unless specifically desired — their fat oxidizes and turns bitter. Gills removed from heads. |
| Liquid | Cold water | Covers bones by 2–3 cm. Ice water optional; extracts less albumin initially, yields clearer stock. |
| Aromatics | Onion (or shallot), celery, carrot, leek, fennel (optional) | Roughly chopped mirepoix‑style. Ratio: ~60 g each onion and celery, 30 g carrot per kg bones. Leek and fennel add depth; use sparingly. |
| Seasoning | Bouquet garni (bay leaf, thyme, parsley stems) | Tied herbs. Classic: 1 bay leaf, 2–3 sprigs thyme, 5–6 parsley stems, 3–5 peppercorns. No salt. |
| Acid | Dry white wine (optional, deglaze aromatics) | A small pour (~50–100 mL per 2 L) adds acidity and lifts flavor. Deglaze the sweated aromatics before adding bones. |
Method
- 1Rinse fish bones and trimmings thoroughly in cold water to remove blood, slime, and viscera.Blood and slime cause cloudiness, off‑flavors, and premature albumin coagulation that makes stock murky.
- 2Sweat the rough‑cut mirepoix in a stockpot with a small amount of butter or oil over medium heat until slightly softened and fragrant, 3–4 minutes. Deglaze with white wine if using.Softening the cell walls releases pectin and volatile aromatics. Wine adds acidity that brightens the finished stock.
- 3Add the rinsed fish bones to the pot. Cover completely with cold water (2–3 cm above bones). Bring to a full boil over high heat.A rapid initial boil coagulates surface albumin proteins (scum) which can be skimmed off before switching to a gentle simmer.
- 4Skim the gray‑white albumin foam aggressively for 3–5 minutes. Reduce heat to the lowest possible simmer. Add bouquet garni.Albumin skimming is the primary method for achieving a clear stock. Once skimmed, a bare simmer avoids turbulence that would re‑suspend particles.
- 5Simmer uncovered (or with a tilted lid) at 80–85 °C for 20–30 minutes. Do not boil. If fat is visible on the surface, skim lightly.Prolonged boiling oxidizes fish lipids, creating bitter, fishy off‑notes. Low temperature extracts gelatin (collagen hydrolysis) without emulsifying oils into the liquid.
- 6Strain immediately through a fine‑mesh strainer lined with cheesecloth into a clean container. Do not press the solids.Pressing forces cloudy, bitter liquid from the solids into the stock. Cheesecloth removes fine bone particles. Strain while hot to prevent gelatin from congealing.
- 7Degrease the hot stock by tilting the container and spooning off the congealed fat layer, or use a fat separator.Fish fat is highly unsaturated and prone to oxidation, which ruins flavor. Removing it extends refrigerated shelf life and improves stability in finished sauces.
Techniques that matter
Gentle Simmering (Low‑Temperature Extraction)
Fish collagen converts to gelatin at 65–75 °C. Boiling causes lipid oxidation, turbulence, and cloudiness. A bare simmer extracts maximum gelatin with minimum bitterness.
Albumin Skimming
Fish proteins denature and coagulate at 60–65 °C. Rapidly boiling at the start coagulates surface proteins into visible foam that can be removed, clarifying the stock before it becomes suspended.
Degreasing
Unsaturated fish fats oxidize rapidly and develop rancid, bitter flavors. Removing them is not optional in classical cooking — it directly determines whether the stock tastes clean or fishy.
Cold‑Start Bone Extraction
Some classical recipes cover bones with cold water and bring to a simmer slowly. This extracts albumin more gradually, yielding a slightly darker but equally clear stock with milder flavor.
Variations & derivatives
Fumet de poisson (Fish Fumet)Classical French
A concentrated fish stock reduced by half after straining. Used for sauces (beurre blanc, sauce normande) and as a cooking liquid for fish en papillote. Intensely flavored; use in small amounts.
Bouillabaisse‑style fish stockProvence, France
Includes saffron, tomatoes, and sometimes orange zest. Intended as the base for the full bouillabaisse soup, not a neutral foundation.
Dashi (fish and kelp stock)Japan
Made from skipjack tuna (katsuobushi) and kombu seaweed. Technically a different category — a tea‑style infusion rather than a simmered stock. Used as the neutral fish stock equivalent in Japanese cuisine.
Latin American fish stockCaribbean / Coastal Latin America
May include green plantain, culantro, or recao. Used for ceviche‑based soups and seafood stews. Less formal in structure but functionally equivalent.
Used in these dishes
Substitutions
- Fish stock → Clam juice or light chicken stock — Clam juice is the closest flavor match; chicken stock works for body but lacks oceanic character. Neither has the same gelatin content.changes result
- Fish stock → Water + fish sauce + white wine reduction — Fish sauce provides glutamates for umami. A splash of wine adds acidity. This improvised substitute lacks gelatin and body but salvages a dish in emergencies.changes result
Troubleshooting
Stock is cloudy and milky
Boiled aggressively during extraction, or bones were not rinsed of blood and albumin before cooking → Next time: rinse bones, start with cold or ice water, bring to boil and skim, then reduce to a bare simmer. For a cloudy stock already made: pass through a cloth‑lined strainer; it will improve but not fully clarify.
Stock tastes bitter and fishy (rancid)
Used oily fish (mackerel, bluefish) or simmered too long, causing lipid oxidation; bones were previously cooked → Do not use oily fish unless the recipe specifically calls for it. Limit cooking time to 30 minutes. Discard — bitterness cannot be removed from a finished stock.
Stock has no body / tastes watery
Used too few bones for the water volume, or simmered too briefly to extract collagen → Use at least 1 kg bones per 1.5 L water. Extend the simmer to 30 minutes. Add a small amount of collagen‑rich fish skin or cartilage if available.
Stock turned sour or off‑smelling within 24 hours
Insufficient skimming, inadequate degreasing, or slow cooling allowing bacterial growth → Cool stock in an ice bath within 30 minutes of straining. Refrigerate at ≤4 °C. Freeze immediately if not using within 24 hours.