The math behind your soap recipe
A formula starts with the weight and identity of each ingredient. This page explains the calculator's conventions so you can check any result without relying on a black box.
SAP: which lye and which unit?
The SAP value is the amount of lye needed per weight of oil. A data sheet may list 190 mg KOH/g, which equals 0.190 g KOH/g. Do not enter 190 in a field that asks for g/g. To get the NaOH equivalent, we multiply by 39.9971 / 56.1056, the ratio of the molar masses.
The catalog uses the midpoint of a supplier's ranges. These estimates do not replace the certificate for your lot; refining, composition and variety can change the value. RBD coconut oil and fractionated coconut oil are not interchangeable. See the chart with sources and units.
Purity and superfat
For each oil: weight × SAP. Add up the requirements and multiply by 1 − discount/100. Then divide by the purity as a decimal. For 1 kg of olive oil at 190 mg KOH/g with a 5% discount, the pure NaOH requirement is 128.6766 g; at 99% purity, you weigh out 129.9763 g of the commercial product.
Superfat is treated here as a lye discount, not as an analysis of the oil left in the finished soap. Any adjustment for an additive that consumes lye is applied after that discount. The additive consumption field asks for grams of pure NaOH per gram of the ingredient itself, with an identified reference.
NaOH, KOH and dual lye
Using KOH for liquid soap paste also means planning the dilution. For a 50/50 dual-lye recipe, we split the saponification equivalents, convert each share to the weight of its lye and adjust each for purity. In the olive oil example, 99% NaOH and 90% KOH come to 64.9882 g and 100.2778 g, respectively.
Three ways to set the water
- Lye concentration:
water = commercial lye × (100 / concentration − 1). - Water : lye ratio:
water = commercial lye × ratio. A 2:1 ratio equals a 33.3333% lye concentration. - Water as % of oils:
water = oils × percentage / 100. The resulting concentration changes whenever the oil blend changes.
Water declared in additives is subtracted from the water to add. The lye concentration uses the full commercial lye weight; we also show the active lye fraction. The app accepts lye concentrations up to 50%, within the engine's scope, and blocks insufficient water or invalid entries. This software limit is not a process recommendation.
How to calculate mold capacity
In centimeters, a rectangular mold has a volume of length × width × height, in mL. For a cylinder, use π × (diameter / 2)² × height. Multiply by the desired fill level and by the number of molds.
A 25 × 7 × 7 cm mold filled to 90% holds 1,102.5 mL. At an illustrative density of 1.05 g/mL, that is 1,157.625 g of fresh soap. The fit button divides this target by the current fresh weight and applies that factor to the ingredients. Density should be calibrated; labor time and fixed costs do not necessarily grow in the same proportion.
Fragrance: the calculation basis matters
A 2% usage rate based on oils means 20 g for 1 kg of oils. That is not the same as 2% of the finished soap. If the final base without fragrance weighs 1,000 g and a specific document limits use to 2% of the finished product, the mathematical ceiling is 1,000 × 0.02 / 0.98 = 20.4082 g. If the 1,000 g already includes the fragrance, the ceiling is 20 g.
The tool compares the supplier maximum with the IFRA limit you enter and uses the lower ceiling. A blank field means unknown; zero means prohibited. Category 9 here is limited to the selected rinse-off soaps. Household soap and leave-on products are outside this scope. Use a reference for the complete blend: different fragrances can share restricted ingredients.
Yield, losses and selling price
The estimated final weight accounts for loss of formula water, later dilution and uniform process loss. Fragrance is assumed to be fully retained. The default 100% water loss is a conservative assumption for the fragrance check, not a drying forecast. Adjust the assumption and weigh your actual batch.
The unit estimate rounds down the final weight divided by the weight of one unit. You can enter your actual yield instead. The cost of ingredients used still counts even when product is lost. Packaging is counted per sellable unit.
The price uses unit cost / [1 − (margin + fees)/100]. With a $10 cost, a 40% margin and 10% fees, it comes to $20. Simply multiplying by 1.40 would be a 40% markup on cost, not that margin on the selling price.
Back up your data before switching browsers
Saving creates a dated version. Duplicating creates an independent formula; restoring a version does not erase the history. The library keeps up to 50 versions per recipe. Export to JSON to move data and history. CSV is for spreadsheets and recipe sheets, not for re-importing.