A bar that stings, a bar that crumbles, beads of liquid on the surface, or just the ordinary anxiety of the first batch: is there still lye in this? It's the right question to ask, and the standard answer — buy pH strips — is an answer to a different question.
If a bar is weeping clear or oily liquid, has visible white pockets, or was made in the last two days, don't touch it with bare hands and don't put it anywhere near your mouth. That liquid can be lye solution. Gloves, and set it aside. Everything below assumes a bar that is at least a few days old and dry to the touch; the lye safety page covers what to do if something caustic reaches skin, and our safety statement says what this site can and can't do for you.
Why pH testing can't answer this
Soap is the salt of a weak acid and a strong base, which makes it a buffer: it resists changes in pH by its nature. Every real bar of soap, well made or badly made, sits somewhere around pH 9 to 11. That is not a defect to be corrected — it is what soap is, and a bar at pH 7 has stopped being soap, as the liquid soap calculator explains at more length.
The problem is that a good bar and a lye-heavy bar both land in that range. The excess lye that makes a batch dangerous is a fraction of a percent of its weight — you'll see exactly how small below — and against a buffered system it moves pH barely at all. So the measurement can't separate the two cases even when it's taken perfectly. And on soap it usually isn't:
- pH strips. The dyes are attacked by the soap itself. Modern Soap Making's testing got readings ranging from pH 5 to pH 9 on a single soap — a spread wide enough to be worthless, and one that sometimes reads acidic for an alkaline product.
- Phenolphthalein drops. Their color transition runs from about pH 8.2 to 9.8, which is entirely below where soap lives. Everything above 9.8 is the same shade of pink, so a pH 10 bar and a pH 13 bar look identical. The indicator is being asked a question outside its range.
- A calibrated pH meter in a properly made dilute solution is genuinely accurate — and still tells you the pH of soap, which you already knew.
What matters isn't pH, it's free alkali — how much hydroxide is present that never became soap. The industry test for that is a total alkalinity titration: dissolve a known weight of soap in neutralized alcohol and titrate against a standard acid. It is a real lab procedure with real reagents, and it is why commercial soap has a free-alkali specification while home soapmakers have folklore. The zap test is the crude, free proxy for the same thing — it detects hydroxide directly, on your tongue, rather than inferring it from a buffered number.
The zap test, and the honest disagreement about it
Touch soap to your tongue; if there's free alkali you get a distinct sensation like the terminals of a nine-volt battery. It is the standard hobby test because it works — the tongue detects hydroxide at concentrations no strip can resolve.
Two of the best sources on soapmaking disagree about whether you should do it. classicbells teaches it, with the technique below. Modern Soap Making says plainly: don't put lye on your tongue. Both positions are reasonable, and the difference between them is mostly about how much you trust a beginner to judge when a batch is safe to test at all. Our reading: it is a legitimate test on a bar that has passed the checks in the box above, and a bad idea on anything fresher or wetter.
If you do it:
- Wait three to five days after pouring. Saponification is essentially finished in 24–48 hours, and a couple of extra days removes the ambiguity.
- Never lick the bar. Dampen a fingertip with water, wipe it once across the soap, and touch that fingertip lightly to the tip of your tongue. You are sampling a trace, not tasting it.
- Expect soap to taste of soap. Unpleasant is normal. What you're listening for is the electric tingle — sharp, immediate, and unmistakable. If you're wondering whether you felt it, you didn't.
- Test more than one spot, including a cut face and the middle of the loaf. Batches saponify unevenly; the outside of a loaf lags the middle, and a pocket of unmixed lye is local by definition.
- Rinse your mouth afterward either way.
A strong zap or anything that burns means stop — that batch is not a testing exercise any more, it's a disposal question.
How much lye is actually in a lye-heavy bar?
Nobody publishes this, and it turns out to be the number that makes the whole subject legible. Superfat is just lye not dosed; a negative superfat is lye dosed beyond what the oils can consume. Our classic bar at 1,000 g of oils needs 151.4 g of NaOH to saponify completely, so:
| Superfat | NaOH dosed | Lye beyond what the oils can take | Free lye per 100 g of soap | What that is |
|---|---|---|---|---|
| +5% | 143.8 g | -7.57 g | — | The default. 7.6 g of spare capacity — that margin is what superfat is for. |
| +2% | 148.3 g | -3.03 g | — | Thin but intentional; some castile and salt-bar recipes sit here. |
| 0% | 151.4 g | 0.00 g | — | Exactly balanced on paper, and only on paper. |
| -1% | 152.9 g | +1.51 g | 0.105 g | Will zap. Rebatchable. |
| -2% | 154.4 g | +3.03 g | 0.209 g | Zaps clearly. Rebatch or bin. |
| -5% | 158.9 g | +7.57 g | 0.522 g | Harsh enough to damage skin. Bin it. |
The classic bar — olive 35 / coconut 30 / palm 30 / castor 5 — at 1,000 g of oils and a 33% lye solution, computed by this site's engine. "Free lye" treats all the excess as remaining hydroxide, which slightly overstates it: some reacts with carbon dioxide over the cure and becomes carbonate instead.
So a bar that zaps at -1% superfat is carrying about 0.105 g of free lye per 100 g — a tenth of a gram, roughly a pinch — and at -5% it's 0.522 g. Those are small numbers, and they are still the difference between soap and a mild chemical burn on wet skin, because the hydroxide doesn't have to be abundant to be present. Read the table the other way and you get the real argument for a 5% default: it isn't moisturizing so much as 7.6 g of margin for everything that can go wrong — which is the case the superfat guide makes from the other direction.
How a batch ends up over-lyed
Four causes, and they are not equally likely or equally severe.
1. The lye was weighed wrong
The common one, and the most recoverable, because the arithmetic is reversible: enter the weight you actually used in the superfat adjuster's second mode and it returns the superfat you really made, plus the oil to add if it's rebatchable. Small batches are the least forgiving here, for reasons the first-batch guide works out in grams.
2. The lye didn't dissolve, or didn't mix in
The cause behind most bars that zap in one spot and not others. Undissolved granules at the bottom of the jug, or batter poured before it truly emulsified, leave pockets that were never dosed the way the calculator thought. A lye solution should be clear, not cloudy, before it meets the oils — and false trace is exactly the failure that gets a half-mixed batch into a mold, which the trace guide covers.
3. The wrong alkali
Rare, and by far the worst. This is the one to know about if you make liquid or shave soap and keep both hydroxides on the shelf.
Our liquid soap starter calls for 226.3 g of KOH at 90% purity. Weigh that same number out as sodium hydroxide and you have dosed 1.54× the NaOH those oils can consume — a superfat of -54%. That is not a bar to rebatch; it's a pot of caustic paste. The mistake in the other direction is almost harmless: the classic bar's 143.8 g of NaOH, weighed out as KOH instead, gives about 39% superfat — a soft, greasy, useless batch and nothing worse. One mix-up injures someone and the other wastes an afternoon, which is a good reason to store the two in different places and label both.
4. The oils weren't what the calculator thought
Every oil takes its own amount of lye, so substituting one without recalculating means the dose no longer matches the fat. This gets cited often as a cause of lye-heavy soap, and the engine says it is usually overstated — swapping a single oil that is 30% of the blend moves the superfat like this:
| Recipe written for | Actually used | Superfat you made |
|---|---|---|
| Palm kernel oil | palm oil | -1.4% |
| Fractionated coconut (MCT) | 76° coconut oil | -3.4% |
| Cocoa butter | shea butter | +2.9% |
| 76° coconut oil | babassu oil | +3.5% |
| Palm oil | palm kernel oil | +11.0% |
The classic bar at 5% nominal superfat with the 30% slot substituted, computed by this site's engine. SAP values and their published ranges are in the oil properties chart.
Two of those five go the safe way, and the two that don't land at -1.4% and -3.4% — enough to make a harsh bar that zaps, not enough to make a dangerous one. A single wrong oil usually makes a different soap rather than an unsafe one. The exception is a recipe already written at 0% superfat, where there is no margin to spend, and the case for never doing that is made with the published SAP ranges in the superfat guide.
What to do with a batch that zaps
- Give it two more weeks first, if it's mild. A slight excess genuinely does fade: some of it reacts with carbon dioxide over the cure. If a faint zap is gone at four weeks, the bar is fine. If it's still there, it isn't going anywhere.
- Rebatch with added oil. The real fix. Grate the soap, melt it with a little water in a slow cooker, and stir in the oil the batch is short of — the superfat adjuster computes how much from the lye weight you actually used. The result is rustic and perfectly good soap.
- Bin anything strongly caustic. Below about -5% there is no sensible rescue and the ingredients are worth less than the risk. Wrap it, bin it, and rerun the numbers.
- Don't gift or sell a bar you're unsure about. The person on the other end can't test it and didn't choose the risk.
Some pages recommend "neutralizing" excess lye with citric acid or vinegar. Don't. You cannot titrate a solid uniformly — the acid reaches the surface and not the pocket that was the problem — and where it does react it attacks the soap, splitting it back into fatty acids and leaving a curdled, partly ruined bar that may still zap in the middle. The only things that consume free lye are more oil and time. (Vinegar is no better on skin, for related reasons, which the safety page goes into.) Acids do have a legitimate place in a recipe — citric acid for a chelator, vinegar for sodium acetate — but they go in before the lye, with the lye increased to match; the acid additives calculator does that arithmetic.
The short version
- pH is the wrong measurement. All soap is pH 9–11; the test can't separate a good bar from a bad one.
- The zap test works, on a bar that's several days old and dry. Damp fingertip, not your tongue on the bar.
- A zapping bar holds a tenth to half a gram of free lye per 100 g. Small, and still enough to matter.
- Check the lye weight first — it's the usual cause and the arithmetic runs backward.
- Rebatch with oil, or bin it. Never acid, never "it'll be fine".