Free cold process soap lye calculator. No account, no sign-up. · Compare recipes
Everything on this page updates live as you work in the calculator itself - there's nothing to submit and nothing to get wrong by forgetting a step. This is just a guide to what each part does.
Add your oils, pick a lye type, and the numbers you need - lye weight, water weight, soap quality predictions - appear in the Your batch panel as you go. When the recipe's ready, click View Recipe Summary for a clean, printable page with everything measured out in the units you actually work in.
You don't need to understand saponification chemistry to use it. You do need to know roughly which oils you want to use, and it takes a few minutes.
This panel sits alongside the calculator and shows the running totals for whatever you've built so far: total oil weight, the lye needed, the water, and - if you've turned on cost tracking - what the batch will cost you. Nothing to click, nothing to submit. It's there so you can see where you stand without scrolling down to a results section every time you change an oil.
Start with the recipe input mode. You've got two ways to build a recipe here, and neither is more "correct" than the other:
Add an oil, pick its amount, and choose the unit next to it. That unit dropdown covers both weight (g, oz, lb) and volume (ml, l) - if you measure by volume, we assume roughly 1ml to 1g, which is close enough for most oils but not exact, so weighing is the more accurate route if precision matters to you.
As you build the list, each oil shows its live share of the total batch underneath it - handy for a gut-check against typical ranges (coconut oil at 40% of a recipe behaves very differently to coconut oil at 10%, and seeing the percentage as you go makes that obvious before you've committed to a batch).
There's also a Track ingredient costs checkbox here - tick it and a price field appears under each oil, feeding into the Ingredient costs section further down.
NaOH (sodium hydroxide) makes bar soap. KOH (potassium hydroxide) makes liquid soap. There's also a Both option for dual-lye recipes, which splits the lye between NaOH and KOH by a percentage you set - a more advanced technique, not something to reach for on a first batch.
This is the percentage of oils left deliberately unreacted, so your finished bar has a small cushion of oil rather than being stripped bare by lye. 5% is a sensible, widely-used default. It's not just a nicety - since published SAP values are averages rather than exact per-batch measurements, a small superfat is what keeps ordinary natural variation from turning into a lye-heavy bar.
Three ways to set how much water goes in the recipe, and they all describe the same underlying thing - how concentrated the lye solution ends up:
Whichever one you pick, the calculator works out the actual water weight and shows it in Your batch. Pushing the lye concentration too high shortens the time you have to work with the soap before it thickens, so if a batch is setting up faster than you'd like, this is usually the setting to look at.
Optional. Give it a usage rate (g per kg of oils, or oz per lb) and the fragrance weight is worked out for you. Typical usage sits around 3-4% of oil weight, but always check the rate your supplier recommends and any IFRA usage limit for the specific fragrance or essential oil - those vary a lot by ingredient and this calculator has no way to know what you've actually bought.
This section is entirely optional and stays collapsed if you don't need it. Open it and you can price out a batch properly:
Nothing you type here is sent anywhere or stored on a server. It only exists in your browser, and in a recipe file if you choose to download one.
Pick any oil from the dropdown and this table shows two things side by side: One, that oil's own numbers as if it were the entire recipe, and All, your actual recipe's running totals. It's there so you can compare an oil you're thinking about adding against the batch you've already built, rather than guessing at how it'll shift things.
The table covers the standard soap quality numbers, iodine, INS, the oil's SAP values, and its full fatty acid breakdown. See Reading the soap quality numbers below for what each of those actually means.
Underneath, a row of chips shows the oils with the closest fatty acid profile to whichever one you've picked - a quick way to find a substitute if you're out of something, or curious what else could do a similar job in the recipe. Click one to switch the table to it.
Give the recipe a name, then download it as a JSON file. That file has everything in it - oils, amounts, lye settings, costs, the lot - and you can upload it later to pick up exactly where you left off, on this device or any other. There's also a Copy as text option for pasting a quick oil list somewhere like a forum post or a message to a friend.
No accounts, because there's nowhere for an account to lead - nothing is stored on our end at all. The file living on your own device is the whole point: back it up, email it, keep it in whatever folder you keep your other recipes in.
Got two or three variations of a recipe saved and want to see how they stack up? The recipe comparison tool takes the same JSON files and lines them up side by side.
Click View Recipe Summary from either Your batch or the Results section and you get a clean, standalone page built for actually making the soap - not for tweaking the recipe. It includes:
From there you can print it, save it as a PDF, export the recipe as JSON, or click Edit Recipe to go back and keep adjusting. Two checkboxes at the top let you drop the little bar charts or the background colours from the printed version, if you'd rather a plainer page for the printer.
These come from the fatty acid makeup of whatever oils you've chosen, and give a rough prediction of how the finished bar will behave. They're guidelines, not rules - plenty of good soap sits outside every one of these ranges.
| Quality | Typical range | What it means |
|---|---|---|
| Hardness | 29-54 | Higher makes a harder, longer-lasting bar. |
| Cleansing | 12-22 | How strongly the bar strips oil from skin - high numbers can feel drying. |
| Conditioning | 44-69 | How moisturising the bar feels. Driven by unsaturated oils like olive oil. |
| Bubbly lather | 14-46 | Big, frothy lather - mostly from lauric and ricinoleic acid (coconut and castor oil). |
| Creamy lather | 16-48 | Dense, stable lather - mostly from palmitic and stearic acid (palm, tallow, cocoa butter). |
| Iodine | 41-70 | Lower means a harder bar; above roughly 70 a bar tends to turn soft. |
| INS | 136-165 | A general hardness indicator built from iodine and SAP - around 160 is commonly cited as a target, not a rule. |
The fatty acid breakdown underneath (lauric through linolenic) is what actually produces those quality numbers - if you want to understand why a recipe scores the way it does, that's the place to look. The Sat : Unsat ratio gives a quick read on the overall balance; a coconut-heavy recipe leans saturated, an olive-heavy one leans unsaturated, and neither is inherently better. For which fatty acid drives which quality, see the soap qualities reference.
SAP values genuinely differ by a few percent between published sources industry-wide - that's normal, not an error, and it happens because different labs and suppliers measure and round slightly differently. We've cross-checked our figures against more than one source where we could, and flagged the handful of oils we're least confident in directly in their own notes.
Lye is caustic. Before your first batch, not after, read up on proper handling: gloves, eye protection, good ventilation, and adding lye to water rather than the other way around. This calculator tells you how much to use - it doesn't handle it for you.