Skip to content
Production · 16 min read

How to Calculate Lye for Soap Making: The Math Behind Every Recipe

Every lye calculator is doing the same six-step arithmetic behind the button. Here is that arithmetic worked all the way through on a real 1,000-gram batch — SAP values, superfat, water, fragrance — plus the four places the math quietly goes wrong even when you typed everything in correctly.

A wooden tray piled with wrapped and labeled bars of handmade cold-process soap in cream, blue, and speckled colors

A saponification value is a fixed physical property of a fat, not a preference. Kevin Dunn's Scientific Soapmaking: The Chemistry of the Cold Process (Clavicula Press, 2010) is the reference most soapmaking calculators trace their numbers back to, and the tables in it say something reassuring: one gram of olive oil needs about 0.1345 grams of sodium hydroxide to become soap. Not "around that." Not "depending on your technique." That number is chemistry, and it does not care how long you have been making soap.

Here is the whole method in one sentence: multiply each oil's weight by its SAP value, add those results together, then reduce the total by your chosen superfat percentage (the slice of oil you deliberately leave unreacted). That is what every lye calculator is doing behind the button.

Which is the good news, and the reason this is learnable in an afternoon. Lye math intimidates people because the consequence of getting it wrong is a caustic bar, and that fear gets in the way of noticing how ordinary the arithmetic actually is. It is one multiplication per oil, one addition, and one subtraction. That is the whole thing. Everything else — the water, the fragrance, the superfat debate — is downstream of those three moves.

You will still use a calculator. You should use a calculator; nobody is arguing for longhand at the bench. But a maker who understands what the calculator did can catch it when something is wrong, and a maker who does not is trusting a text box. This post walks the arithmetic all the way through a real batch, then shows you the four places it quietly goes sideways even when you typed everything in correctly.

The words you need first

Soapmaking vocabulary is unusually treacherous because two of the terms mean the same thing and two more sound like they should.

  • Saponification (SAP) value — the weight of sodium hydroxide required to fully saponify one gram of a given fat. Olive oil, 0.1345. Coconut oil, 0.1786. Jojoba, 0.0690. Higher is not better or worse; it is just how much lye that fat consumes.
  • Superfat — the percentage of your oils you deliberately leave unsaponified, by using less lye than the SAP math calls for. A 5% superfat means 5% of the oil weight survives as free oil in the finished bar.
  • Lye discount — the same thing as superfat, expressed from the other direction. A 5% lye discount is a 5% superfat. Older tutorials and some suppliers prefer this phrasing, and it causes an enormous amount of avoidable confusion. They are one number.
  • Full water — the conventional, undiscounted water amount, roughly 38% of oil weight or a 1:2.5 lye-to-water ratio depending on which convention you are in.
  • Water discount — using less water than full water. Produces a harder bar faster and traces more quickly, which is either a feature or an ambush depending on whether you meant to do it.
  • Trace — the point at which the lye-water and the oils have fully emulsified and the batter thickens enough to hold a drizzled line on its surface. It is the working deadline for pouring and swirling, not a safety checkpoint.
  • Cure — the multi-week rest after cutting, typically four to six weeks for cold process, during which the bar hardens and loses water before it is ready to sell.
  • NaOH and KOH — sodium hydroxide makes bar soap; potassium hydroxide makes liquid soap paste. They are not interchangeable and, as you will see below, KOH carries a complication NaOH does not.

If you only take one thing from this section: superfat and lye discount are the same number wearing different hats. Makers have ruined batches by applying both.

Step 1: Fix your oils by weight

Before the bench, not just the spreadsheet: everything below is arithmetic, and arithmetic is not handling. Lye is caustic enough to cause permanent eye injury. Gloves and sealed goggles on, ventilation open, and lye always goes into the water — never water onto dry lye, which can flash-boil and erupt.

Start by deciding what the batch is, in grams, by weight. Not by volume, not by "a cup of," not by the size of the container.

This sounds too obvious to state until you notice how many beginner recipes float around in volume measurements. Oils differ in density; a cup of coconut oil and a cup of olive oil are not the same mass, and the SAP math operates on mass exclusively. A recipe expressed in cups is not a recipe, it is a rumor.

Work in percentages first, then convert to weight. A three-oil bar might be 60% olive, 25% coconut, 15% shea butter. Choose your total oil weight — 1,000 g is a convenient batch to learn on because the percentages and the grams are the same number — and multiply through:

  1. Olive oil, 60% → 600 g
  2. Coconut oil, 25% → 250 g
  3. Shea butter, 15% → 150 g

Confirm the percentages sum to 100 before going further. If they sum to 98 or 103, everything downstream inherits the error, and you will not notice until the batch behaves strangely.

Step 2: Look up each oil's SAP value

Each oil now needs its number. These come from published tables — the values below are the ones used in the Lye & Saponification Calculator, where the full source list is set out:

  • Olive oil: 0.1345
  • Coconut oil (76°): 0.1786
  • Shea butter: 0.1280

Notice the spread. Coconut needs about 40% more lye per gram than shea butter does. This is why oil substitution is not a free action — a recipe is not "the same recipe" with a different oil in it, and the instinct to swap something you have run out of for something you have on the shelf is the single most common way a new maker ends up with a bar that stings.

One honest caveat on these numbers: published SAP values are averages. The oil in your bottle varies from the table by a small margin depending on the plant variety, the growing region, and how it was processed. That variation is not a flaw in the method. It is one of the reasons the next step exists.

Step 3: Multiply and sum

Here is the entire calculation that everyone is afraid of:

  • Olive: 600 g × 0.1345 = 80.70 g
  • Coconut: 250 g × 0.1786 = 44.65 g
  • Shea: 150 g × 0.1280 = 19.20 g

Add them: 144.55 g of sodium hydroxide.

That is the amount of lye that would convert every last molecule of oil in this batch into soap, with nothing left over on either side. It is the theoretical maximum, and it is not the number you use.

Step 4: Take your superfat off the top

A recipe calculated at exactly 144.55 g of lye is balanced on a knife edge. Your scale has a tolerance. Your oils vary from the published averages. A little lye clings to the mixing vessel or does not fully dissolve. Any of those nudges in the wrong direction and you have a bar with free lye in it.

So you deliberately use less lye than the math calls for. At 5% superfat — the conventional cold-process starting point — you use 95% of the calculated total:

144.55 g × 0.95 = 137.32 g of sodium hydroxide.

Roughly 7 grams of lye that you are choosing not to add, which leaves about 50 grams of oil unsaponified across the batch. That surviving oil is what people mean when they say a handmade bar feels different from a supermarket one, and it is simultaneously your margin for error.

How much to leave is a formulation decision rather than a safety one, within reason:

  • 0–3% for laundry and heavy-cleansing bars, where leftover oil is a liability
  • 5% as the default starting point for a general body bar
  • 5–8% for facial bars, where skin feel is the point
  • 10%+ and you start trading away hardness, cure time, and shelf life, since free oil is what eventually goes rancid

Liquid soap is its own case. Classic Bells, one of the more carefully sourced technical references in the craft, advises limiting superfat in liquid soap to no more than 3%, because a diluted soap cannot hold much excess fat without going cloudy and eventually separating.

If you only change one thing this week, change this: stop treating superfat as a flavor setting and start treating it as the buffer that makes an imperfect measurement safe.

Step 5: Decide the water — and notice the two conventions disagree

Water does not participate in the SAP calculation at all. It dissolves the lye, and then most of it leaves during the cure. But the amount matters for trace speed, bar hardness, and how much your bar weighs when you finally put it on a label.

There are two conventions in circulation, and here is the thing nobody warns beginners about: they do not produce the same number.

Water as a percentage of oils. Full water is about 38% of oil weight. On our 1,000 g batch: 380 g of water.

Lye-to-water ratio. Full water is about 1:2.5, meaning two and a half parts water for every part lye. On our batch: 137.32 × 2.5 = 343 g of water.

That is a 37-gram gap on an identical recipe. Neither is wrong — they are different traditions, and both make good soap — but a maker who reads one tutorial, switches to another mid-recipe, and takes the more aggressive reading of each has quietly water-discounted a batch they meant to run at full water. Then the batch traces faster than expected and they conclude the fragrance oil misbehaved.

Pick a convention. Write down which one you use. Stay inside it.

Discounting water below the full-water figure gives you a harder bar sooner and a shorter cure, at the cost of a much faster trace and less room to work a swirl. Below about 25% of oil weight, trace accelerates sharply enough that intricate designs become genuinely difficult.

Step 6: Add fragrance last, as a percentage of oils

Fragrance is calculated against the oil weight, not the total batch weight — a distinction worth internalizing, since running it against the total inflates every number substantially. Measured against the finished 1,557.32 g batch weight in the table below, 4% would come to 62.29 g rather than 40 g — a 56% overshoot — and the exact figure moves with whatever water and superfat you chose.

At 4% of oils, our batch takes 40 g of fragrance oil.

Cold-process soap is conventionally formulated at 3–6% fragrance, with most soapmakers treating 6–8% as a practical ceiling. The real constraint is not the soap, though — it is the specific fragrance. Individual fragrance materials carry their own category limits set by the International Fragrance Association (IFRA), and some are far more restricted than their mildness in the bottle suggests. The supplier's IFRA certificate for the specific oil is the authority here, not a general rule of thumb; you can also look up an individual material in the IFRA Standards Library.

The finished batch

Putting it together:

Component Amount
Olive oil (60%) 600 g
Coconut oil (25%) 250 g
Shea butter (15%) 150 g
Sodium hydroxide (5% superfat) 137.32 g
Water (38% of oils) 380 g
Fragrance oil (4% of oils) 40 g
Total batch weight 1,557.32 g

At a 113 g (4 oz) target bar, that is 13.8 bars of batter — so thirteen full bars plus a short end, not fourteen. Which comes with a caveat that catches people at exactly the wrong moment. The bar you cut on day one is not the bar you sell on day forty-two. Cold-process soap loses water throughout the cure, so a bar poured at exactly its label weight will be under its label weight by the time it reaches a customer. Pour above your printed net weight and confirm with a scale after cure, not before.

If you would rather not run this by hand every time you tweak a percentage, the Lye & Saponification Calculator does exactly the six steps above across 26 oils, including the NaOH-to-KOH conversion for liquid soap. One caveat worth carrying into that tool: like most calculators, it computes KOH at 100% purity, which is not what comes out of the bucket. The next section explains what to do about it.

Four places the math quietly goes wrong

You can type every number in correctly and still end up with a batch that is not what you asked for. These are the four that account for most of it.

Potassium hydroxide is not pure, and most calculators pretend it is

This is the big one, and it only affects liquid soap. KOH is heavier per molecule than NaOH, so a KOH recipe needs about 1.4025 times as much lye by weight. Classic Bells puts most commercially available KOH between 85% and 95% purity, and recommends assuming about 90% if your supplier will not confirm it — but most calculators quote the figure as though the bucket were 100% potassium hydroxide.

Worked through on our batch:

  1. Convert to KOH: 144.55 × 1.4025 = 202.73 g
  2. Correct for 90% purity: 202.73 ÷ 0.90 = 225.26 g — about 23 grams more

Use the unadjusted figure and you have built a hidden 10% superfat on top of whatever superfat you already chose, which in a liquid soap shows up as cloudiness and separation after dilution. Check whether your calculator exposes a purity setting; several do not, including ours, which computes KOH at 100% purity. If it does not, do the division yourself.

Volume creeps back in

Everything above is by weight. The moment any single ingredient gets measured by volume — a splash of castor, a "couple of tablespoons" of an additive — the arithmetic stops describing the batch. A digital scale that reads to 0.1 g is the cheapest insurance in the craft.

Resizing goes wrong in the middle

Scaling a batch from 1,000 g to 1,600 g is straightforward if you scale the oils and recalculate from Step 3. It goes wrong when someone scales the oils, scales the lye by the same factor, and then also re-applies the superfat — taking the discount twice. Rerun the calculation rather than multiplying the outputs.

The recipe drifts and the record does not

You nudge coconut from 25% to 22%, run the new numbers correctly, pour a good batch, and then six weeks later cannot remember which version made the bar everyone liked. The lye math is only as useful as your ability to reproduce the recipe it belongs to.

What the calculator will not do for you

A lye calculator answers one question: what do I weigh out today. It is genuinely the right tool for that, and it will keep being the right tool.

What it does not do is remember. It has no idea that olive oil moved from $22 to $29 a gallon between your March batch and your July batch, so it cannot tell you that the bar you priced at $8 in spring is thinner than it was. It does not track that batch CP-0718-01 used the shea from the lot that arrived in June. It does not decrement your oils, your lye, or your fragrance from inventory when you pour, so the moment you have three recipes and a wholesale order, you are back to reconciling by memory.

That is the seam where a costing system belongs rather than a calculator. In Ardent Seller a soap recipe is stored with each oil's current cost attached, so per-bar COGS updates on its own when an oil price moves — and a production run decrements the oils, lye, fragrance, and packaging from inventory while stamping a batch lot you can trace a finished bar back to. The calculator tells you to weigh 137.32 g of lye. The recipe record tells you what that bar cost to make, six months after you made it.

Start with one recipe

Take a recipe you already trust — one you have made enough times to have opinions about — and run it through the six steps by hand this week. Not to replace your calculator. To find out whether the numbers you have been using actually match the numbers the arithmetic produces, because in a surprising number of cases a recipe that was scaled once, adjusted twice, and copied from a friend has drifted somewhere in its history.

Then put the verified version somewhere that is not a notebook page and not your memory. Try Ardent Seller free and store the recipe with its costs attached, so the next price increase reprices the bar for you instead of surprising you at the market table.

Free resources

Free companion downloads if you want to put any of this into practice:

  • Lye & Saponification Calculator — the six steps above, automated across 26 oils with SAP values, superfat, water, and fragrance load, plus the NaOH-to-KOH conversion for liquid soap (computed at 100% KOH purity — adjust for your supplier's actual purity as described above).
  • Soap Cost Per Bar Calculator — once the recipe is settled, this turns the oil weights into a defensible per-bar cost and retail price.
  • Soap Batch & Cure Log — a printable record for the batch you just calculated, so the version that worked is the version you can find again.

This article is educational and does not constitute safety, regulatory, or professional formulation guidance. Sodium hydroxide and potassium hydroxide are caustic and can cause severe burns and permanent eye injury — always wear gloves and sealed safety goggles, work with ventilation, and add lye to water rather than water to lye. Published SAP values are industry averages and individual oil batches vary, which is why a superfat cushion and a small test batch matter before you scale. Fragrance limits, cosmetic labeling rules, and the requirements that apply to selling soap and body products vary by country, state, and product type. Verify your formulation and your labeling with a qualified cosmetic chemist and your applicable regulator before selling.

Frequently asked questions

Multiply each oil weight by that oil's saponification (SAP) value, add the results together, then reduce the total by your superfat percentage. A recipe of 600 g olive oil (SAP 0.1345), 250 g coconut oil (SAP 0.1786), and 150 g shea butter (SAP 0.1280) needs 80.70 + 44.65 + 19.20 = 144.55 g of sodium hydroxide to saponify completely. At a 5% superfat you use 95% of that, or 137.32 g. Every lye calculator runs this same arithmetic.

A saponification value is the amount of lye needed to fully convert one gram of a specific fat into soap. Olive oil has a SAP value of about 0.1345, meaning one gram of olive oil consumes roughly 0.1345 grams of sodium hydroxide. Published SAP values are industry averages drawn from sources such as Kevin Dunn's Scientific Soapmaking (2010); individual oil batches vary by a small margin, which is one reason recipes carry a superfat cushion.

Five percent is the conventional cold-process starting point: it leaves a small amount of oil unsaponified for skin feel and absorbs normal variation in published SAP values. Laundry and cleansing bars are often formulated leaner at 0 to 3 percent, and facial bars are sometimes taken to 5 to 8 percent. Liquid soap made with potassium hydroxide is a different case — [Classic Bells](https://classicbells.com/soap/liquidSoapRecipes.asp) advises limiting superfat to no more than 3 percent, because diluted liquid soap cannot hold much excess fat without clouding and separating.

There are two conventions and they do not produce identical numbers. Water as a percentage of oil weight puts full water at about 38 percent of the oils. A lye-to-water ratio puts full water at about 1:2.5, meaning two and a half parts water per part lye. On a 1,000 g oil batch the first method gives 380 g of water and the second gives roughly 343 g. Both make soap. Pick one convention and stay inside it, because switching between them mid-recipe is a common source of confusion.

Usually yes, for liquid soap. Sodium hydroxide sold for soapmaking is close to pure, but potassium hydroxide is not — [Classic Bells](https://classicbells.com/soap/liquidSoapRecipes.asp) puts most commercially available KOH in the 85 to 95 percent range and recommends assuming about 90 percent when your supplier will not tell you. A calculator that assumes 100 percent purity therefore under-calls the KOH, building a hidden superfat of roughly 10 percent on top of whatever you asked for. Check whether your calculator has a purity setting, and if it does not, account for the gap yourself.

No. Swapping oils changes the lye requirement, because SAP values differ substantially between fats. Jojoba sits near 0.0690 while coconut oil sits near 0.1786 — more than double. Replacing coconut with jojoba gram for gram without recalculating would leave you with far more lye than the new oil blend can consume, and a caustic bar. Any change to the oils, including a change in the ratio between them, means running the numbers again.