Why cream curdles in soda
It is one number: casein, the main protein in milk, loses its charge and clumps below pH 4.6. Everything else follows from that.
Milk protein stays dissolved because every casein micelle carries the same electrical charge and they push each other apart. Add acid and that charge falls away. At pH 4.6 — casein's isoelectric point — the repulsion is gone, the micelles stick to each other, and you get the grainy curdle at the top of the cup.
Cola sits around pH 2.5 and most citrus sodas are lower still, so on paper every dirty soda should break. Most do not, and the reason is the thing no label prints.
Buffer capacity is the part everyone misses
pH is not additive. Milk is loaded with phosphate, citrate and casein itself, all of which resist a pH change — it buffers roughly twenty times harder than carbonated water does. So pouring cream into an acidic soda does not land at the soda's pH; the mixture fights its way back up, and where it settles depends on how much of each you used and how strongly each one buffers.
That is why "acid plus dairy equals curdle" gives the wrong answer so often, and why this app models the buffer rather than keeping a list of forbidden pairs. Here is what it computes for the builds published on this site:
| Build | Final pH | Curdle risk |
|---|---|---|
| Dessert dirty soda | 4.34 | Stable |
| Dirty Coke | 3.13 | Stable |
| Dirty root beer | 5.08 | Stable |
Not all creamers can curdle at all
The protein system matters more than the fat content. Three groups:
Casein — these are the ones that break
- 2% Milk
- Evaporated Milk
- Half & Half The default. Enough fat for silk, enough casein to curdle if you rush.
- Whole Milk Thin, and the most curdle-prone thing you can pour into cola.
Casein, but protected by fat and sugar
Same protein, far more forgiving: fat and dissolved sugar physically get in the way of micelles finding each other.
- Heavy Cream Fat shields the casein — the safest dairy in a high-acid soda.
- Sweet Cream Cold Foam Floats on top as a separate layer. Pure theatre, and it works.
- Sweetened Condensed Milk Sugar and body in one pour. A little goes a very long way.
- Vanilla Ice Cream A float. Maximum foam — expect the head to climb the glass.
- Whipped Cream
Plant — no casein, so no curdle
Coconut, oat and almond cannot curdle in the casein sense. They can still separate, which looks alarming and tastes fine.
- Almond Milk
- Coconut Cream No casein, so it physically cannot curdle. The safety net.
- Coconut Milk
- French Vanilla Creamer Shelf-stable, sweet, and it will not curdle. Convenience pick.
- Oat Milk (barista)
Four fixes that actually work
- Use a protected or plant creamer. Sweetened condensed milk and coconut cream are the reliable end of the shelf. This is the fix that never fails, because it removes the mechanism rather than managing it.
- Keep everything cold. Curdling is a reaction rate. Fridge-cold dairy into fridge-cold soda buys you a lot of margin, and it is also what keeps the CO₂ in solution.
- Pour the cream in last, down the side. Dumping it into the middle drives it through the most acidic, least buffered part of the drink. Down the wall it meets the soda gradually — and it marbles, which is the look the drink is named for.
- Cut the citrus, not the cream. Fresh lime and lemon are far more aggressive than the soda's own acid. If a build is breaking, that is usually what to pull back.
Dirty Soda Maker checks this on every drink it builds: it computes the buffered final pH, scores the curdle risk, and if the risk is real it offers a swap that keeps the flavour and loses the break.
Build one it has checked →