How much goat milk replaces the water?
Every milk soap recipe starts life as an ordinary one. You run the oils through a lye calculator, it gives you a lye weight and a water weight, and then you decide how much of that water will be milk. For the classic bar (1,000 g of oils at 5% superfat and 33% lye concentration) that is 143.8 g of NaOH and 292 g of liquid. Replace all of it with goat milk, gram for gram, and you weigh 292 g of milk.
It works. People have made good milk soap that way for decades. But the calculator believed it was looking at water, and 292 g of goat milk is 254 g of water, 12.1 g of fat, 13.0 g of lactose and 10.4 g of protein. Each of those four does something the recipe didn't plan for, and three of them are arithmetic.
143.8 g NaOH, 292 g of liquid, all goat milk (USDA: 87.03% water, 4.14% fat). Only water dissolves lye, so the solution is really 143.8 ÷ (143.8 + 254.1) = 36.1%, not 33%. The 12.1 g of milk fat saponifies like any other fat and wants 1.96 g of the lye, so the bar lands at 6.2% superfat, not 5%. To hold 5% exactly, weigh 145.7 g of lye; to hold 33%, use 335 g of milk. Neither is compulsory; what matters is knowing which soap you made.
Does milk add superfat?
Yes, by an amount you can work out. Milk fat is a triglyceride like olive oil or lard, and the lye in the recipe was sized for the oils alone, so the fat in the milk shares lye the oils were counting on. How much depends entirely on which milk:
| Milk, replacing all 292 g of water | Fat it brings | NaOH that fat takes | Superfat you get | Lye to hold 5% |
|---|---|---|---|---|
| Goat milk, whole | 12.1 g | 1.96 g | 6.2% (+1.2) | +1.86 g |
| Cow milk, whole (3.25%) | 9.5 g | 1.54 g | 6.0% (+1.0) | +1.46 g |
| Cow milk, 2% | 5.8 g | 0.94 g | 5.6% (+0.6) | +0.89 g |
| Cow milk, skim | 0.2 g | 0.04 g | 5.0% (+0.0) | +0.04 g |
| Sheep milk | 20.4 g | 3.31 g | 7.0% (+2.0) | +3.14 g |
| Buttermilk, cultured (lowfat) | 3.1 g | 0.51 g | 5.3% (+0.3) | +0.48 g |
| Buttermilk, whole | 9.7 g | 1.56 g | 6.0% (+1.0) | +1.49 g |
| Half and half | 33.6 g | 5.43 g | 8.3% (+3.3) | +5.16 g |
| Heavy cream | 105.3 g | 17.05 g | 14.6% (+9.6) | +16.20 g |
| Evaporated milk, whole | 22.1 g | 3.57 g | 7.2% (+2.2) | +3.39 g |
| Coconut milk, canned | 62.3 g | 11.41 g | 11.7% (+6.7) | +10.84 g |
| Coconut milk beverage (carton) | 6.1 g | 1.11 g | 5.7% (+0.7) | +1.06 g |
| Almond milk, unsweetened | 2.8 g | 0.39 g | 5.2% (+0.2) | +0.37 g |
| Oat milk | 6.8 g | 0.90 g | 5.6% (+0.6) | +0.86 g |
Classic bar: 1,000 g oils, 143.8 g NaOH at 5% superfat, 33%. Composition from USDA FoodData Central (SR Legacy; FNDDS for the carton coconut and oat milks). Dairy fat saponified at 0.227 g KOH/g (SoapCalc's milk fat; literature 213–235 mg KOH/g), coconut milk as coconut oil, plant milks as their oil. The superfat is recalculated with the milk fat counted as one more oil in the recipe.
Goat milk is often said to add 2–3% superfat. At full replacement the arithmetic gives +1.2, and with the split method, where only 51% of the liquid is milk, +0.6. The other figure you'll meet, "+5%", was a maker entering coconut milk into a calculator, and canned coconut milk really does do that: +6.7 points here. Heavy cream is +9.6.
So for goat, cow or sheep milk the fat is a small extra you can ignore or keep. For half and half, cream, evaporated milk or coconut milk it is a real formulation change: a 5% bar made with all cream is a 15% bar: softer, slower to lather, and with more fat left over to go rancid (the DOS guide puts a number on that). Either lower the recipe's own superfat or add the "lye to hold" figure. Goat milk fat has been measured at 213 mg KOH/g, slightly under the 227 used here, so for goat milk the table is if anything a touch generous. The superfat guide explains why a point either way at 5% is well inside the margin.
Milk is 87% water: a built-in water discount
Only water dissolves lye. Swap milk for water gram for gram and the lye has less water than the recipe says: for every 100 g of goat milk you replace, 13 g of what the calculator counted as water is fat, sugar and protein. At full replacement that turns a 33% recipe into a 36.1% one; with sheep milk (80.7% water) it's 37.9%, and with heavy cream 46.0%.
For most milks that's a mild water discount: a little less working time, a slightly shorter cure. It matters when the recipe is already at 38–40%, where it pushes you past the concentration most people would choose on purpose, and for cream, where the "water" is barely half water. If you'd rather keep the concentration you designed, tick match the water in the tool: it uses 335 g of goat milk instead of 292 g, so the milk's own water is the 292 g the recipe wanted. That also brings a little more fat and sugar with it; the tool counts both.
The printable milk chart
SoapmakingToolbox.com · milk in soap: what replaces 292 g of water (1,000 g oils, 5% superfat, 33%)
| Milk | Water | Fat | Sugars | True lye conc. | Superfat (5% recipe) | Milk to match the water | Sugar as honey |
|---|---|---|---|---|---|---|---|
| Goat milk, whole | 87.0% | 4.1% | 4.5% | 36.1% | 6.2% | 335 g | 1.0 tsp/lb |
| Cow milk, whole (3.25%) | 88.1% | 3.3% | 4.8% | 35.9% | 6.0% | 331 g | 1.1 tsp/lb |
| Cow milk, 2% | 89.2% | 2.0% | 4.8% | 35.6% | 5.6% | 327 g | 1.1 tsp/lb |
| Cow milk, skim | 90.8% | 0.1% | 5.0% | 35.2% | 5.0% | 321 g | 1.1 tsp/lb |
| Sheep milk | 80.7% | 7.0% | 5.4% | 37.9% | 7.0% | 362 g | 1.2 tsp/lb |
| Buttermilk, cultured (lowfat) | 90.1% | 1.1% | 4.8% | 35.3% | 5.3% | 324 g | 1.1 tsp/lb |
| Buttermilk, whole | 87.9% | 3.3% | 4.9% | 35.9% | 6.0% | 332 g | 1.1 tsp/lb |
| Half and half | 80.6% | 11.5% | 4.3% | 37.9% | 8.3% | 362 g | 1.0 tsp/lb |
| Heavy cream | 57.7% | 36.1% | 2.8% | 46.0% | 14.6% | 506 g | 0.7 tsp/lb |
| Evaporated milk, whole | 74.0% | 7.6% | 10.0% | 39.9% | 7.2% | 394 g | 2.3 tsp/lb |
| Coconut milk, canned | 72.9% | 21.3% | 2.8% | 40.3% | 11.7% | 401 g | 0.6 tsp/lb |
| Coconut milk beverage (carton) | 94.6% | 2.1% | 2.9% | 34.2% | 5.7% | 309 g | 0.7 tsp/lb |
| Almond milk, unsweetened | 96.5% | 1.0% | 1.3% | 33.8% | 5.2% | 302 g | 0.3 tsp/lb |
| Oat milk | 91.3% | 2.3% | 5.4% | 35.0% | 5.6% | 320 g | 1.2 tsp/lb |
Per 100 g from USDA FoodData Central. "True lye concentration" is 143.8 g NaOH over the milk's own water when the milk replaces all 292 g. "Sugar as honey" is the milk's total carbohydrate expressed as teaspoons of honey (82% sugar, 7 g/tsp) per pound of oils. Scale everything to your batch with the calculator above.
Split method: lye dissolved 1 : 1 in water, the rest milk (143.8 g NaOH)
| Recipe concentration | Total liquid | Water for the lye | Most milk possible | Share |
|---|---|---|---|---|
| 25% | 431 g | 143.8 g | 288 g | 67% |
| 28% | 370 g | 143.8 g | 226 g | 61% |
| 30% | 336 g | 143.8 g | 192 g | 57% |
| 33% | 292 g | 143.8 g | 148 g | 51% |
| 35% | 267 g | 143.8 g | 123 g | 46% |
| 38% | 235 g | 143.8 g | 91 g | 39% |
| 40% | 216 g | 143.8 g | 72 g | 33% |
Freeze the milk. Lye into frozen milk slowly, in an ice bath. Keep the batter cool and prevent gel for a pale bar.
The split method: how much water to dissolve the lye
The split method keeps milk away from concentrated lye altogether: dissolve the lye in plain water, add the milk to the oils, then combine. What matters is how little water. It isn't a preference; it's solubility. Sodium hydroxide dissolves at about 109 g per 100 mL of water at 20 °C (a saturated solution is roughly 52% lye), so 1 part water to 1 part lye (a 50% solution) is the floor, with very little margin. It's the same strength masterbatchers keep in a jug. Less water than that and the lye won't all dissolve; the tool refuses to print a split below it.
That floor sets a ceiling on the milk. The water for the lye is fixed by the lye weight, so the milk is whatever liquid is left, and that shrinks fast as you discount water:
| Recipe lye concentration | Total liquid | Water to dissolve the lye (1:1) | Most milk the split allows | Milk share |
|---|---|---|---|---|
| 25% | 431 g | 143.8 g | 288 g | 67% |
| 28% | 370 g | 143.8 g | 226 g | 61% |
| 30% | 336 g | 143.8 g | 192 g | 57% |
| 33% | 292 g | 143.8 g | 148 g | 51% |
| 35% | 267 g | 143.8 g | 123 g | 46% |
| 38% | 235 g | 143.8 g | 91 g | 39% |
| 40% | 216 g | 143.8 g | 72 g | 33% |
Classic bar, 1,000 g oils, 143.8 g NaOH at every concentration: the lye doesn't change, only the liquid. The water for the lye equals the lye's weight, and the milk is the rest of the liquid.
At 33% the split method can make about half the liquid milk; at 40% only a third; at 50% none at all. If you want more milk than that, it's the frozen method, or a more generous water figure in the first place. Split-method soap has the practical advantage that the milk never meets hot concentrated lye, so it scorches far less. The trade is less milk per bar.
Why milk soap turns tan or orange, and how to keep it pale
Milk carries sugar (lactose, 4.5% of goat milk and 4.8% of cow's), and sugar in strong, hot alkali browns. Orange milk soap comes down to that: heat plus sugar. Lye dissolving is violently exothermic, so milk that meets lye warm goes from cream to tan to orange in seconds, with a smell to match. Everything in milk soap technique is heat control:
- Freeze the milk in cubes or to a slush, and add the lye a spoonful at a time in an ice-water bath, stirring until each dissolves. Tutorials put the ceiling anywhere from about 70 °F to 100 °F; the cooler you keep it, the paler the soap.
- Soap cool. Combine the lye-milk and oils at or near room temperature.
- Prevent gel if you want a pale bar: into the fridge or freezer after pouring. The gel phase guide explains why a loaf gels more readily than cavity molds, and sugars push a batch toward gel.
- Or accept the tan. A gelled goat milk bar is a warm beige and perfectly good soap; the color is cosmetic.
Honey is the other sugar people add to soap, usually at about a teaspoon per pound of oils, and it has a reputation for overheating. Replacing all the water with goat milk puts 13.0 g of lactose into 1,000 g of oils, the sugar of 1.0 teaspoons of honey per pound. Whole cow milk is 1.1. So a milk bar is already a honey bar, as far as heat goes; add honey on top and you've doubled it. Evaporated milk, at 10% sugar, is 2.3. The chart above has the figure for each milk.
Fresh milk soap often smells of ammonia, sometimes strongly, for the first week or two. Milk proteins carry amide groups that strong alkali strips off as ammonia, and the heat that scorches the sugar speeds it up. It's normal and it cures out; makers commonly report ten days or so. We couldn't find a measurement of how much lye the proteins and sugars themselves consume, so this calculator doesn't model it. What it can compute, the fat and the water, it does.
Buttermilk, yogurt and kefir take extra lye
Cultured milks are soured by lactic acid, and lactic acid neutralizes lye before any oil sees it: 0.444 g of NaOH for every gram, the same arithmetic as the citric acid and vinegar calculator. The difficulty is that no label states how much lactic acid is in the carton, and it rises as the culture ages. As an illustration only: if cultured buttermilk carried 1% lactic acid by weight, the 292 g replacing the classic bar's water would consume 1.30 g of NaOH. Together with its 3.1 g of fat, the 5% bar comes out near 6.2% superfat. That's safe in the direction that matters: cultured milks only ever push toward more superfat, never less. If you want to hold the design, the acid calculator takes lactic acid at whatever strength you assume.
Milk powder and coconut milk powder
Powders sidestep the whole heat problem: the recipe's liquid stays plain water, and the powder goes in at trace, whisked into a little of the oils first so it doesn't clump. It carries no meaningful water, so the lye concentration is exactly what you designed. But it is concentrated fat and sugar, which shows fast:
| Powder at trace | Per 1,000 g oils | Fat | Superfat (5% recipe) | Sugar as honey |
|---|---|---|---|---|
| Whole milk powder | 10 g | 2.7 g | 5.3% | 0.3 tsp/lb |
| Whole milk powder | 20 g | 5.3 g | 5.5% | 0.6 tsp/lb |
| Whole milk powder | 40 g | 10.7 g | 6.1% | 1.2 tsp/lb |
| Coconut milk powder | 10 g | 6.4 g | 5.7% | 0.2 tsp/lb |
| Coconut milk powder | 20 g | 12.8 g | 6.4% | 0.3 tsp/lb |
| Coconut milk powder | 40 g | 25.6 g | 7.9% | 0.7 tsp/lb |
Whole milk powder from USDA FoodData Central 170876 (26.7% fat, 38.4% sugar). Coconut milk powder from a supplier specification (64% fat); brands vary widely and many contain maltodextrin and sodium caseinate, a milk protein. Goat milk powder labels run near 29% fat, close to the cow figure. Superfat counts the powder's fat as one more oil, as in the liquid milk table.
Twenty grams of whole milk powder carries 7.7 g of sugar, more than half the 13.0 g in a full goat milk bar, so powder at trace still heats the batch, just later, when there's less time left for it to matter. Coconut milk powder is two-thirds fat: 40 g of it in a kilo of oils is a 8% superfat bar before you've touched the recipe.