What Is Whole Milk? Butterfat, Casein, and Lactose at Work
Butterfat carries the body and the aroma, casein micelles hold the suspension together, and lactose is the only sugar in the bottle. Nearly every practical question about milk in a drink turns out to be a question about one of those three.
Whole milk is cow's milk with its fat left in at around 3.5 per cent, and it is the drink every other carton on this shelf is quietly described against. A plant drink is thinner than it, foams less well than it, or splits where it does not.
That makes it worth understanding on its own terms rather than as a default. Three components do nearly all the work.
Butterfat carries the body and most of the aroma, casein is the protein that holds the whole suspension together, and lactose is the only sugar in the bottle.
Almost every practical question about milk in a drink turns out to be a question about one of those three. Why it foams, why it does not curdle in coffee when a nut drink will, why it turns solid when it goes off, and why skimmed looks faintly blue all fall out of the same short list.
Whole milk at a glance
- What it is
- Cow's milk standardised to about 3.5 g fat per 100 ml
- Protein
- Around 3.4 g per 100 ml, roughly four fifths of it casein
- Sugars
- About 4.7 g per 100 ml, all of it lactose, none of it added
- Acidity
- Close to pH 6.7, only just on the acid side of neutral
- Why it is white
- Fat globules and casein micelles scattering light
- In coffee
- Rarely splits, because casein tolerates the acidity
- Caffeine
- None
What the word whole is actually promising
Whole does not mean untouched. It means the fat has been standardised back up to a set figure after the milk was separated, which is the opposite of what most people assume the word is doing.
Raw milk from a herd varies through the year and between breeds, so a dairy separates the cream from the milk and then recombines the two to a legal standard. Whole comes out at around 3.5 per cent fat, semi-skimmed at about 1.7, and skimmed at a fraction of a per cent, which is why the three are so consistent from carton to carton.

The fat ladder, and what each step costs
- WholeAbout 3.5 g per 100 ml. Full body, best flavour carry
- Semi-skimmedAbout 1.7 g. Noticeably thinner, still workable in coffee
- SkimmedUnder 0.5 g. Thin, faintly blue, froths stiffly and tastes of little
- UnhomogenisedWhole milk with a visible cream line, sold as cream-top
That standardisation is also why the number on the carton is a target rather than a measurement of any particular cow. It is a manufacturing specification, and it is the reason a recipe can call for whole milk and expect the same result anywhere.
Why milk is white, and why skimmed looks blue
Milk has no white pigment in it.
What it has is an enormous number of particles suspended in a clear liquid, and those particles scatter light in every direction before it can pass through.
Two kinds of particle do the scattering. Fat globules are the larger of the two and they bounce all wavelengths more or less equally, which produces a warm, opaque, slightly yellow white.
Casein micelles are far smaller and they scatter short wavelengths more strongly than long ones, exactly as the atmosphere does.

Take the fat out and you take away the large scatterers. What is left is casein doing its short-wavelength work unopposed, and the result is the faint blue cast that skimmed milk has in a clear glass and never quite loses in a cup of tea.
The same logic explains the colour of the plant drinks.
A strained nut drink like almond has very little of either particle in it, so it is translucent rather than opaque, and it disappears into a dark coffee instead of lightening it.
Casein micelles, and why dairy holds together where plant proteins do not
Casein is about four fifths of the protein in milk, and it does not float about as individual molecules. It is packaged into micelles, which are roughly spherical clusters of protein held together internally by tiny clusters of calcium phosphate.
The outside of each micelle is coated in a protein layer that sticks out into the liquid like a brush and keeps the micelles apart. That layer is the reason milk is a stable suspension rather than a bag of protein waiting to fall out of it, and it is a genuine structure rather than a mixture.

Plant proteins have nothing equivalent. They sit in a simpler suspension held up by charge alone, which is why a modest acid that leaves casein untroubled is enough to bring them out of it, and why the splitting question is a plant-drink problem far more than a dairy one.
The margin is not infinite. Casein comes apart when the acidity reaches about pH 4.6, at which point the micelles lose their mutual repulsion and clump, and everything from cheese-making to a bottle of milk left out too long happens at that number.
Coffee sits nowhere near it.
What homogenisation changed, and what it cost
Left alone, milk separates. Fat globules are less dense than the liquid around them and they float, which is why old bottles carried a plug of cream at the neck and why the milk underneath was thin.
Homogenisation is a mechanical fix rather than a chemical one. The milk is forced at pressure through a very narrow gap, which tears the fat globules from around four micrometres across down to under one, and particles that small stay suspended indefinitely because they rise too slowly to matter.

| Unhomogenised | Homogenised | |
|---|---|---|
| Fat globule size | About 4 micrometres | Under 1 micrometre |
| Cream line | Forms within hours | Never forms |
| Mouthfeel | Richer, less even | Smoother, more uniform |
| Foam | Coarser, harder to control | Predictable and fine |
| Flavour release | Slower, in pulses | Immediate and consistent |
The cost is real, and it is mostly a loss of character. Broken-up globules present far more surface to the tongue at once, so homogenised milk reads as smooth and slightly flat next to a cream-top bottle.
That older texture arrives in richer bursts, because the fat is still in lumps large enough to be met one at a time.
For anything built on steamed milk the trade is worth it, since a flat white needs the foam to behave the same way twice. For drinking cold from a glass, plenty of people prefer the older texture, and that is a defensible preference rather than nostalgia.
Why it foams the way it does
Foam is a protein job, and in milk it is not casein that does it. The whey proteins, the fifth of the protein that is not casein, unfold when they reach the boundary between air and liquid and link up into a film that holds the bubbles.
Fat works against that film. A fat globule arriving at a bubble wall spreads across it and breaks it, which is why skimmed milk froths higher and stiffer than whole and why the froth it makes is coarse, dry and gone in a minute.

What whole milk gives up in volume it takes back in quality. The fat coats the bubbles as well as breaking them, so the foam that survives is denser, wetter and glossier.
It also carries flavour that a skimmed froth cannot, since most of what milk tastes of is dissolved in the fat rather than the water.
That is the reason cafes work in whole milk by default and treat everything else as a request. The technique for getting there belongs to the steaming process itself, and the milk chemistry only decides what is available to work with, which is also why a handheld frother gives a much better result on whole than on skimmed.
Temperature sets the ceiling on all of it, and past roughly 70 degrees the whey proteins have already done their unfolding elsewhere and will not build a film again. Milk overheated once will not foam properly a second time.
Where the sweetness comes from
There is exactly one sugar in plain milk and nobody added it. Lactose makes up about 4.7 g per 100 ml, which on a nutrition panel looks like a sweetened drink and tastes nothing like one.
Lactose is a weak sweetener, somewhere around a fifth to a third as sweet as table sugar at the same concentration. That gap is why milk reads as faintly sweet rather than sweet, and why a glass of it does not compete with a spoonful of sugar in a cup of tea.

Warming changes the perception without changing the number. Heat frees lactose from the protein structure it sits within and raises how much of it the tongue registers.
That is the whole reason properly steamed milk tastes sweet while the same milk cold from the fridge tastes of very little.
Lactose-free milk makes the point from the other direction. It is ordinary milk with the enzyme lactase added, which splits lactose into glucose and galactose, and because both of those are sweeter than the lactose they came from, the milk tastes distinctly sweeter with nothing added to it.
How it behaves in coffee and in tea
Milk in a hot drink is doing three separate things: lightening the colour, softening the bitterness, and adding body. Only the second of those has much to do with the coffee.
Bitterness suppression is a fat and protein effect. Both bind to the compounds that read as bitter and slow their delivery to the tongue, which is why the same espresso tastes softer with 30 ml of whole milk in it than with the same volume of skimmed.

In espresso
Softens bitterness sharply, and 30 ml changes the drink completely
In tea
Binds the tannins, which is why milky tea reads as smoother than black
Over ice
Thins fast, since melt dilutes fat and protein together
In a pan
Scorches at the base unless stirred, because the proteins stick
Tea is the easier of the two hot drinks for a simple reason: it is less acidic than coffee and served in a larger volume, so the milk is diluted immediately rather than meeting a concentrated acid. That is why the plant drinks that fail in a flat white often pass in a mug of builder's tea.
Milk that is close to turning is the exception that catches people out. It has already acidified enough to sit near the point where casein clumps, so it splits in coffee that it would have survived a week earlier, and the coffee gets blamed for it.
Pasteurised, UHT and the flavour difference
Nearly all milk sold in shops has been heated, and the difference between the two common treatments is a matter of how hot and how long rather than of what was done.
Standard pasteurisation runs the milk at about 72 degrees for fifteen seconds and then chills it fast. Ultra-heat treatment takes it to 135 degrees or above for a couple of seconds, which is enough to give it months of unopened shelf life at room temperature.

| Pasteurised | UHT | |
|---|---|---|
| Temperature | About 72 C for 15 seconds | 135 C or more, for seconds |
| Unopened life | Days, refrigerated | Months, at room temperature |
| Flavour | Clean, close to fresh | A cooked, faintly caramel note |
| Foaming | Reliable | Slightly weaker, more variable |
| Where it wins | Anything drunk cold or steamed | Storage, travel, a long pantry |
The cooked note in UHT is neither a fault nor a sign of age. At those temperatures milk sugars and proteins begin to react in the same way they do in a pan, producing traces of caramel and sulphur compounds that are absent from a chilled bottle, and some countries prefer that flavour enough to sell it as standard.
Where the difference shows most is in a drink with nothing to hide behind. A cold glass reveals it instantly, and it disappears almost entirely under cocoa or a dark roast, which is why the same carton can seem obvious in one drink and invisible in the next.
How it sours, and what the curdling in the fridge tells you
Souring is a biological process with a chemical result, and both halves are worth separating because they explain two different things people notice.
Lactic acid bacteria are present in small numbers in every carton and they feed on lactose, converting it to lactic acid. That drops the pH steadily, and the sour smell arrives well before anything visible happens.

The visible stage arrives at the number from earlier. Once the acid brings the milk down to about pH 4.6, the casein micelles lose the charge that kept them apart and clump into curds, leaving watery whey behind them.
Nothing was added and nothing was heated: the milk simply reached the point where its own structure stops working.
- Judge milk by smell before pouring it, since the sour note comes first.
- Keep the bottle in the body of the fridge rather than the door, where the temperature swings.
- Never pour from the bottle into a hot drink and then return it to the fridge.
- Expect a nearly sour bottle to split in coffee before it looks or smells wrong in a glass.
- Keep an eye on how a bottle behaves rather than only on the date, as storage does most of the work.
The same reaction is put to work deliberately in yoghurt, buttermilk and soft cheese, which is a useful reminder that curdling is a change of state rather than spoilage. What makes a forgotten bottle undrinkable is what else grew in it alongside the lactic acid bacteria, not the curd itself.
The figures every plant drink on this shelf is set against
Comparisons between milk and its alternatives get muddled because people compare different things at once. The panel is the place to start, because it is the same four rows on every carton.
| Whole milk | Soy | Oat | Almond | |
|---|---|---|---|---|
| Energy | Around 64 kcal | 40 to 55 | 45 to 60 | 13 to 25 |
| Fat | 3.5 g | 1.8 to 2.5 g | 1.5 g | 1.1 g |
| Protein | 3.4 g | 3.0 to 3.3 g | 1.0 g | 0.5 g |
| Sugars | 4.7 g, all lactose | 0 to 2.5 g | 2.5 to 4 g, none added | 0 to 0.5 g |
Read the protein row across and most of the behaviour follows. Soy is the only common plant drink that lands near dairy on that figure, which is why it is the only one that foams comparably without help, and why the rest carry gums and stabilisers to imitate a body they do not have.

The sugars row is where labels mislead most often. Milk's 4.7 g is lactose that was always there, oat shows 2.5 to 4 g of maltose released by enzymes from its own starch, and neither has anything added, so a low-sugar claim on a rice or cashew carton is describing a thin drink rather than a virtuous one.
What replaces it, and what each substitute gives up
No single drink on the shelf replaces whole milk across all three of its jobs, which is why substitution nearly always changes the drink rather than merely swapping an ingredient.

Oat
The easiest in coffee, sweeter than dairy, and thinner in the mouth
Almond
Thin, faintly nutty, and the most likely to split
The instructive case is coconut, because it has the fat and none of the protein. It gives a drink body and mouthfeel and then refuses to foam at all, which is the clearest demonstration that the two properties are separate and that fat alone was never what made milk work.
Anyone swapping for a specific job should decide which of the three they actually need. If it is body, the fat-heavy options work; if it is foam, only soy and pea come close; and if it is the flavour-carrying that lets cocoa and coffee taste rounder, nothing matches dairy fat, which is the honest limit on the whole substitution question.
Where a drink splits or foams badly, the fault is usually in the pairing rather than the carton, and the common failures are worth reading before blaming the milk.
Common questions
Why does whole milk not curdle in coffee when plant drinks do?
Casein, four fifths of the protein in milk, is packaged into micelles with a protein layer on the outside that keeps them apart. That structure holds until the acidity reaches about pH 4.6, and coffee sits nowhere near it. Plant proteins have no equivalent structure and come out of suspension far more readily.
Why does skimmed milk look blue?
Two kinds of particle scatter light in milk. Fat globules are large and bounce all wavelengths fairly evenly, and casein micelles are small and scatter short wavelengths more strongly. Remove the fat and casein does its short-wavelength work unopposed, which leaves a faint blue cast.
Why does whole milk foam less than skimmed?
Foam is built by the whey proteins unfolding at the boundary between air and liquid, and fat globules spread across those bubble walls and break them. Skimmed therefore froths higher and stiffer, while whole gives a denser, glossier foam that carries far more flavour because most of what milk tastes of is dissolved in the fat.