Short answer
Raw meat's colour comes mainly from myoglobin, and depends on what is bound to its iron: purple deoxymyoglobin without oxygen (inside the cut or in a vacuum pack), bright red oxymyoglobin in air, and brown metmyoglobin once the iron oxidises. Cooking denatures myoglobin, but how brown it goes depends on pH, packaging and freezing as well as temperature, so cooked colour is not a reliable guide to doneness. A thermometer is.
Myoglobin is the muscle protein that stores oxygen. At its centre is a haem group with an iron atom, and meat colour is essentially a report on that iron. With nothing bound and the iron in the ferrous state, it is deoxymyoglobin, purplish-red; that is the colour of freshly cut beef and of meat in a vacuum pack. Expose the surface to air and oxygen binds within minutes, giving bright cherry-red oxymyoglobin — the 'bloom' butchers expect. Over time, or at low oxygen levels, the iron oxidises to the ferric state and the pigment becomes brown metmyoglobin. Muscle has enzyme systems that reduce metmyoglobin back again, and as they are used up the brown spreads.
Vacuum-packed beef looks purple because there is no oxygen; it reddens after opening. Overwrapped trays let air in, so the surface stays red until metmyoglobin builds up. A leaking vacuum pack is the worst case: a little oxygen, around one to three per cent, favours brown metmyoglobin. Some modified-atmosphere packs include carbon monoxide, which binds to form carboxymyoglobin, a stable red that does not brown the way oxymyoglobin does. In every case the colour describes the chemistry of the pigment and the pack, not the microbiology of the meat.
Heat denatures myoglobin and turns the interior grey-brown, which is why colour became a folk test for doneness. But the temperature at which that happens shifts. Meat that was already rich in metmyoglobin, or frozen and thawed, or packed in high oxygen can brown prematurely and look done while still undercooked. Meat with a high pH, or in which myoglobin is mostly in the deoxy form, can stay pink even when fully cooked; in pork, a pH of 6.3 or above almost always gives persistent pinkness. Cured meats, and meat cooked near vegetables or in smoke, can also stay pink for chemical reasons unrelated to temperature.
US beef industry guidance gives 160°F (about 71°C) for ground beef and 145°F (about 63°C) for steaks and roasts, measured with a thermometer. Follow the guidance where you live.
Chicken breast has very little myoglobin, so it looks pale raw and white cooked; the thighs have more and can stay pinkish near the bone. Pork sits in between, and pork loin from animals with high muscle pH is the classic case of 'pink but done'. Fish muscle is mostly white, with the red lateral strip carrying myoglobin; tuna is red because it has a lot. Across all of them the same conclusion holds: colour is a clue to chemistry, not a measurement of safety.
| Form | Bound at the iron | Iron state | Colour | Typical situation |
|---|---|---|---|---|
| Deoxymyoglobin | Nothing | Ferrous (Fe²⁺) | Purple | Freshly cut interior, vacuum pack |
| Oxymyoglobin | Oxygen | Ferrous (Fe²⁺) | Bright red | Surface exposed to air, overwrap tray |
| Carboxymyoglobin | Carbon monoxide | Ferrous (Fe²⁺) | Red | Some modified-atmosphere packs |
| Metmyoglobin | Water | Ferric (Fe³⁺) | Brown | Low oxygen (about 1–3%), long display, leaking vacuum pack |
Why: Premature browning: myoglobin denatured early because of oxidation, freezing or packaging history.
Fix: Check the internal temperature with a probe thermometer.
Why: High muscle pH or pigment in the deoxy form resists heat denaturation.
Fix: Trust the thermometer reading, not the colour.
Why: No oxygen in the pack, so myoglobin stays as deoxymyoglobin.
Fix: Open and leave on a plate for a few minutes; it should bloom red.
Each statement is labelled by kind — established fact, a standard’s requirement, observed market data, a convention, or Colourwise’s own interpretation or analysis — with the strength of the evidence behind it.
FactStrong evidence
Fresh meat colour depends on the chemical state of myoglobin: deoxymyoglobin is purple, oxymyoglobin and carboxymyoglobin are red, and metmyoglobin, with iron in the ferric state, is brown; brown metmyoglobin is favoured at around 1–3% oxygen.
Source: Resource Guide: Color Series — Chemistry of Fresh Meat Color
FactModerate evidence
Premature browning, persistent pink and colour reversion make colour alone an unreliable way to judge whether cooked beef has reached a safe internal temperature; a thermometer is the recommended check.
Caveat: Industry-body guidance; recommended temperatures should be taken from the reader's local food-safety authority.
Source: Color Changes in Cooked Beef
FactModerate evidence
Pork with a muscle pH of 6.3 or higher almost always stays pink even at well-done temperatures, and persistent pink can begin to appear from around pH 6.0.
Source: Cooked Color in Pork
Colourwise interpretationModerate evidence
Brown or grey raw meat is not by itself evidence of spoilage, and red raw meat is not evidence of freshness; the colour reports the oxygen and oxidation state of myoglobin rather than bacterial load.
Based on: Follows from the AMSA description of how packaging and oxygen control myoglobin state independently of microbial growth.
Reviewed 29 September 2026. Colourwise summarises its sources in its own words and does not reproduce standards text or proprietary colour data. Spotted an error? Tell us.