Weight-based calculator for 100% olive-oil (castile) soap. Weigh your oil, get exact lye & water β no SoapCalc, works offline.
Calculator
Everything by weight, in grams. Defaults give a firm, mild castile bar.
Advanced
Assumes ~99% pure caustic soda. If your lye is less pure, increase it proportionally.
β οΈ Always weigh on a scale, wear gloves + eye protection, work in ventilation, and add lye to the water β never water to lye.
Scale by bars
Work backwards from how many bars you want.
"Oil per bar" is remembered. Tune it once you know your molds.
Batch log & cure tracker
Save a batch, then weigh it weekly. When the weight stops dropping, it's cured.
Sync settings
Batches sync to your Notion database when online. Writes need the shared passphrase (kept only on this device).
Process & safety
Lye is caustic. Gloves + eye protection on. Kids and pets away. Lye into water, never the reverse β the reverse can erupt.
- Weigh your olive oil into a plastic bucket so you know the exact amount.
- In a separate plastic bucket, weigh the water, then slowly stir the weighed lye into the water with a wooden/silicone stick. It heats up and gives off fumes β do it in ventilation and keep your face back.
- Let the lye-water cool a little, then pour it into the oil and stir/blend until it thickens to "trace" (leaves a faint trail on the surface).
- Pour into your molds.
- After 1β2 days in a ventilated, shaded, low-humidity spot, unmold once firm enough.
- Weigh each bar weekly. When the weight stops dropping, the water has cured out β log it here and the tracker marks it cured.
Learn β the science
Why the numbers are what they are. The reasoning behind this whole tool.
Volume vs. weight (and why we weigh)
Volume measures the space something takes up (cups, mL); weight measures how heavy it is (grams). The same volume of two things weighs different amounts β a cup of water β 240 g, a cup of olive oil β 220 g, a cup of lye anywhere from ~200β320 g depending on its form.
The old family recipe was a 1 : 2 : 8 (lye : water : oil) ratio by volume. It works by habit, but it isn't repeatable or safe to scale. This tool is weight-only: every number is grams on a scale.
Why lye by volume is unsafe
Water and oil convert from volume to weight predictably. Solid caustic soda (lye) does not β its bulk density swings with its form: light flakes pour at ~0.85β1.0 g/mL, heavy beads/pearls at ~1.1β1.4. So "one scoop of lye" can be anywhere from a mild bar to a lye-heavy, skin-burning one, and you can't tell by looking. Lye is the one ingredient that can hurt you, so it's the one you must weigh.
Saponification β how soap happens
Soap is a reaction: oil + lye β soap + glycerin. Every gram of oil needs a precise amount of lye to turn into soap. Too much lye leaves caustic lye in the bar (harsh, can burn). Too little leaves unreacted oil in the bar (soft, extra-moisturizing, and safe).
SAP value β each oil's "lye appetite"
Every fat has a known number β its saponification (SAP) value β for how much lye fully reacts with 1 g of it. Olive oil's is about 0.135 g lye per g oil. Because we only ever use one oil, the whole calculation collapses to a single multiplier; that's why SoapCalc's big oil database is overkill here.
Superfat β the mildness/safety cushion
Superfat is deliberately using slightly less lye than the full amount, so a little oil stays un-saponified. It makes the bar milder and guarantees no leftover lye. Higher superfat = milder but softer and more prone to going rancid; lower = firmer and longer-lasting. Olive oil is already the gentlest oil, so castile can sit at a low 5% and still be mild.
Lye concentration / water discount
How much water you use is the same idea told two ways: "2 : 1 water-to-lye" = "33% lye concentration." More water β slower trace, softer bar, longer cure, more shrinkage. Less water (a "water discount") β firmer sooner, shorter cure. Castile is notoriously soft and slow, so a discount is the biggest lever for a harder bar. The default 40% concentration (water = lye Γ 1.5) is a deliberate discount.
How this recipe's defaults are derived
lye = oil Γ SAP Γ (1 β superfat) = oil Γ 0.135 Γ 0.95 = oil Γ 0.128.
water = lye Γ (100 β conc)/conc = lye Γ 1.5 = oil Γ 0.192.
So 1000 g oil β 128 g lye, 192 g water. We derived these fresh from saponification β we did not convert the old volume ratio, because its lye amount was the unreliable part.
Curing β and what the tracker does
After saponification the bar still holds water, which evaporates over weeks to months. As it leaves, the bar gets harder, milder, and longer-lasting. The way to know it's done: weigh a bar weekly β when the weight stops dropping, the water is gone. The cure tracker above just automates that: log the weekly weight and it flags the batch "cured" once the weekly change flattens out.
Why SoapCalc was overkill
SoapCalc exists to compute lye for recipes that blend many oils, each with its own SAP value, plus sliders for superfat and water. With a single oil and fixed preferences, all of that reduces to two multiplications β which is exactly what this page does.
Loadingβ¦
soap_calc Β· usfkhoury.com