Skip to main content

Brew Lab

Latte & Milk Drink Ratio Calculator

Cortado to latte, exact steamed milk and foam for your cup — plus the cold milk to pour and a pitcher fill check so nothing overflows.

Drink
Cup size 350ml
Shots
Basket dose (informational)
g

Doesn't change the milk math — just tracks what you're dosing for reference.

Steaming pitcher

For the fill check below — never pour cold milk past half a pitcher's capacity.

The pour

235 ml

cold milk to pour

35 ml

foam

60 ml

espresso

255 ml

steamed milk (after texturing)

Half-fill line for your 20 oz: 300 ml

235 ml cold milk to pour
35 ml foam

How the math works

Five steps, run straight through with no fudge factor:

espresso = shots × 30 ml

milk total = cup size − espresso

foam = cup size × foam share (2% cortado to ⅓ cappuccino)

steamed milk = milk total − foam

cold milk to pour = steamed milk × 0.92 (≈8% steam expansion)

Worked example at the calculator's own defaults: a 350 ml latte with a double shot needs 290 ml of milk total — 35 ml of it foam, 255 ml steamed liquid milk. Because steaming expands milk by roughly 8%, you actually pour 235 ml of COLD milk into the pitcher to get there — comfortably under half of a 20 oz (600 ml) pitcher.

Worked examples

Flat white

200 ml cup, double shot, thin ~5% microfoam.

Espresso
60 ml
Steamed milk
130 ml
Foam
10 ml
Cold milk to pour
120 ml

Cappuccino

200 ml cup, double shot, roughly equal thirds.

Espresso
60 ml
Steamed milk
73 ml
Foam
67 ml
Cold milk to pour
67 ml

Latte

350 ml cup, double shot, thin ~1cm foam cap.

Espresso
60 ml
Steamed milk
255 ml
Foam
35 ml
Cold milk to pour
235 ml

Why the pitcher check matters

A 450 ml latte, single shot, steamed in a 12 oz (350 ml) pitcher — the pitcher this drink doesn't fit.

Cold milk to pour
345 ml
Pitcher half-fill line
175 ml
Result
Overflows — use a bigger pitcher

Flat white vs. latte: same shot, different milk

Ask a barista what separates a flat white from a latte and you'll usually get some version of "the milk" — which is true, but vague enough to be useless if you're trying to reproduce either one at home. The concrete difference is two numbers: ratio and foam depth. A flat white runs a tighter ~2:1 milk-to-espresso ratio with only the thinnest microfoam layer folded in (about 5% of the cup), so the espresso stays forward and the texture reads silky rather than fluffy. A latte opens that ratio up to 4-5:1 and doubles the foam share to roughly 10%, which is why a latte tastes gentler and looks like it has a visible cap where a flat white doesn't.

Neither is "better" — they're different tools for the same espresso shot. If you like your espresso to still taste like espresso, dial the drink toward flat white above. If you want something closer to a milk-forward, all-day cup, dial it toward latte.

How milk steaming actually works

Steaming does two things to milk at once: it heats it, and it stretches it. The stretch is what confuses most home baristas' math, because it means the milk that ends up in your cup is a bigger volume than the milk you poured into the pitcher — roughly 8% bigger, as the steam wand's turbulence works air into the liquid. That's exactly why this calculator works backwards: you tell it what you want in the finished cup, and it reports the smaller COLD volume to measure into your pitcher before you turn the wand on.

Foam and steamed milk aren't different liquids — foam is just the same milk with more air folded in near the top of the pitcher, which is why a cappuccino's deep foam cap and a flat white's thin skin come from adjusting the SAME steaming technique, not a different one. More time with the wand near the surface (before submerging the tip to heat the rest) builds more foam; less time near the surface keeps the milk denser and glossier.

The ratios behind every drink on this calculator

  • Cortado — ~1:1 milk to espresso, almost no separate foam layer. The milk is there to round off the espresso's edge, not to dilute or lighten it.
  • Flat white — ~2:1, thin microfoam (~5% of the cup). Espresso-forward with a silky, dense texture.
  • Cappuccino — ~3:1, but the defining trait isn't the ratio, it's the foam: roughly equal thirds of espresso, steamed milk and foam, giving cappuccino the deepest, driest cap of any drink here.
  • Latte — 4-5:1, a thin ~1 cm foam cap. The most milk-forward of the classic ratios, and the most forgiving to make consistently.
  • Mocha — built on the latte's ratio and foam profile, with chocolate added underneath the espresso. The chocolate is a flavoring layer, not a volume input, so it doesn't change the milk math above — it just rides along.

Why the pitcher half-line matters

Milk needs headroom to expand as it steams. Fill a pitcher past half and there's nowhere for that extra 8%+ of stretched, aerated milk to go — it either spills out the spout mid- steam or you back off the wand too early to avoid a mess, which produces flat, soupy milk instead of glossy microfoam. This calculator checks your cold-milk pour against half of whichever pitcher you select above and flags it clearly when a drink simply doesn't fit — see the "why the pitcher check matters" example above for what that looks like in practice. The fix is always the same: size up your pitcher, or steam the milk in two batches.

Methodology & limitations

Full transparency, because a calculator that hides its assumptions isn't one you should trust:

  • Espresso volume is a fixed 30 ml per shot. Real shots vary by recipe (ristretto runs shorter, lungo longer) — this is a standard reference volume, not a measurement of your specific dial-in. Our Espresso Dial-In Lab handles the shot itself if you want to tune dose, yield and time precisely.
  • Foam share is a per-drink modeling constant, not a physical law — cortado's foam is thin enough that we model it as a near-integrated 2% of the cup rather than a distinct layer; cappuccino's is a full third. Real foam varies with technique, milk protein content, and how fresh the milk is.
  • The 8% steam-expansion factor is an average, not a universal constant. Whole milk, oat milk and skim milk stretch slightly differently; 8% is a reasonable middle-of-the-road figure for dairy whole milk, the most common base.
  • Basket dose is informational only — it doesn't feed into the milk math above, it's just there so you can note what you're dosing alongside the drink.

Once your milk math is dialed in, browse our rich, chocolatey roasts built to hold their own under milk, or check how much caffeine a double-shot milk drink actually carries with our Caffeine Curve Simulator.

Frequently asked questions

What's the milk to espresso ratio for a latte?
A latte runs about 4-5 parts milk to 1 part espresso, with a thin foam cap (roughly 10% of the cup). For a 350 ml cup with a double shot (60 ml espresso), that's about 290 ml of milk total — 35 ml of it foam, 255 ml steamed liquid milk, meaning you'd pour about 235 ml of cold milk into your pitcher before steaming. Adjust cup size and shots above to get your own numbers.
What's the difference between a flat white and a latte?
Mostly the foam and the ratio. A flat white runs a tighter ~2:1 milk-to-espresso ratio with a very thin microfoam layer (~5% of the cup, about 10 ml in a 200 ml cup) — it drinks stronger and silkier than a latte's looser 4-5:1 ratio and thicker foam cap. Same espresso, same steamed milk technique; the difference is how much milk you use and how much air you fold in.
What's the ratio for a cappuccino?
Classic cappuccino is roughly equal thirds by volume — espresso, steamed milk, and foam each around a third of the cup. In a 200 ml cup with a double shot, that's about 60 ml espresso, 73 ml steamed milk, and 67 ml foam — the deepest foam cap of any drink on this calculator, which is what gives cappuccino its dry, textured top.
What's a cortado ratio?
A cortado is close to 1:1 milk to espresso — just enough steamed milk to cut the espresso's sharpness, with only a whisper of foam integrated into the pour rather than a distinct cap. In a small 150 ml cup with a double shot, that works out to roughly 90 ml of milk total, almost all of it steamed rather than foamed.
How much milk should I steam for my drink?
Steam MORE than you'll pour — steaming expands milk by roughly 8% as it incorporates air, so the "steamed milk" volume above is bigger than the cold milk you started with. This calculator works backwards from your finished drink to the correct COLD pour: the "cold milk to pour" readout is what to measure into your pitcher before you turn the steam wand on, calculated as steamed volume × 0.92.
Why do I pour less cold milk than the steamed milk in my cup?
Because steaming adds volume, not just heat. As the steam wand incorporates air, the milk expands by roughly 8% — so a cup that ends up with 255 ml of steamed milk in it only started as 235 ml of cold milk in the pitcher. If you poured the "steamed" number as your COLD milk, you'd overfill both the pitcher and the cup.
Why shouldn't I fill my steaming pitcher all the way?
Milk needs room to expand as it aerates, and a pitcher filled past half leaves no headroom — the foam either spills over the spout or you can't fold air in properly, which is how you end up with flat, soupy "steamed" milk instead of glossy microfoam. This calculator checks your cold-milk pour against half your selected pitcher's capacity and flags it when a drink won't fit; our own worked "never fits" example below (a 450 ml latte poured into a 12 oz/350 ml pitcher) shows exactly what that overflow warning looks like.