每一條公式及其出處
計算器只是建立在一個小型開放公式庫上的薄薄一層。本頁就是把這個公式庫完整寫出來。慣例會標明為慣例;常數皆附來源。
- 皂化與鹼
- 水量的三種算法與預製鹼水
- 酸類與含油液體
- 由組成推算皂化價
- 公開資料能把鹼量確定到什麼程度
- 脂肪酸組成、皂性指標、碘價與 INS 值
- 香氛添加比例、IFRA 與過敏原
- 皂模尺寸計算
- 液體皂稀釋
- 推算的皂化價從何而來
- 為什麼鹼量帶有範圍
- 標明為慣例的慣例
本頁內容
皂化與鹼
SAP_NaOH (mg/g) = SAP_KOH × 39.997 ÷ 56.106 # molar masses, IUPAC 2013
KOH_100 (g) = Σ oilᵢ (g) × SAP_KOHᵢ ÷ 1000 # SAP defined as mg KOH per g fat
KOH_sf = KOH_100 × (1 − superfat ÷ 100)
NaOH to weigh = KOH_sf × (1 − f_KOH) × 39.997 ÷ 56.106 ÷ (purity_NaOH ÷ 100)
KOH to weigh = KOH_sf × f_KOH ÷ (purity_KOH ÷ 100)
superfat from a given lye = (1 − lye_supplied_KOHeq ÷ KOH_100) × 100 - AOCS Official Method Cd 3-25, "Saponification Value of Fats and Oils". American Oil Chemists' Society. Defines SAP as mg KOH required to saponify 1 g of sample.
- IUPAC Commission on Isotopic Abundances and Atomic Weights, "Atomic weights of the elements 2013" (Pure Appl. Chem. 88(3), 2016). Na 22.990, K 39.098, O 15.999, H 1.008 → NaOH 39.997 g/mol, KOH 56.106 g/mol.
- Dunn, Kevin M. Scientific Soapmaking: The Chemistry of the Cold Process. Clavicula Press, 2010. Chapters on saponification stoichiometry, lye discount and lye purity.
水量的三種算法與預製鹼水
water = oils × p ÷ 100 # p = water as % of oils (38 is the old default)
water = lye × (100 − c) ÷ c # c = lye concentration % (33 is our default)
water = lye × r # r = water : lye ratio
c = lye ÷ (lye + water) × 100; r = water ÷ lye; p = water ÷ oils × 100
Master batch at strength s %:
solution = lye ÷ (s ÷ 100); water_in = solution − lye; water_add = water − water_in
Liquids replacing water:
plain water = max(0, water − Σ liquidᵢ × water%ᵢ ÷ 100) - Dunn, Kevin M. Scientific Soapmaking: The Chemistry of the Cold Process. Clavicula Press, 2010. Lye solution concentration and its effect on trace and gel.
- Community convention: "full water" = 38 % of oil weight, the default that most hobby calculators have used since the 2000s; roughly a 27–28 % lye solution for a typical bar recipe. — A convention, not a chemical constant. Lye concentration is the better control variable because it does not drift with the oil blend.
酸類與含油液體
NaOH consumed (g) = mass × purity × n × 39.997 ÷ M_acid
citric acid (anhydrous, triprotic, M 192.124): 0.6246 g NaOH per g (0.8760 g KOH)
citric acid monohydrate (M 210.139): 0.5710
acetic acid (M 60.052): 0.6660 → 5 % vinegar: 0.0333 per g
lactic acid (M 90.078): 0.4440
effective superfat = (oils × sf ÷ 100 + fat from milks) ÷ (oils + fat from milks) × 100 - IUPAC 2013 atomic weights. Molar masses: citric acid C₆H₈O₇ 192.124 g/mol (monohydrate 210.139), acetic acid C₂H₄O₂ 60.052, lactic acid C₃H₆O₃ 90.078, NaOH 39.997, KOH 56.106.
- Neutralisation stoichiometry: citric acid is triprotic (3 OH⁻ per molecule); acetic and lactic acids are monoprotic; disodium EDTA takes 2, sodium bicarbonate 1 (to carbonate) and magnesium sulfate 2 (to magnesium hydroxide). g NaOH per g = n × 39.997 ÷ M.
- Fat and water from food composition data, per 100 g: USDA FoodData Central for the milks, creams, juices and purées (Milk, whole, 3.25 % milkfat, FDC 171265: water 88.13 %, fat 3.25 %; Cream, heavy whipping, FDC 170859: water 57.71 %, fat 36.08 %), and the maker’s figures for the milk powders. Each additive’s own source is in its guide.
由組成推算皂化價
M̄_fatty acid = Σ wᵢ ÷ Σ(wᵢ ÷ Mᵢ) # wᵢ = mass % of each acid: the number average
M_triglyceride = 3 × M̄_fatty acid + 38.049 # glycerol 92.094 less three waters
SAP (mg KOH/g) = 3 × 56 106 ÷ M_triglyceride # three KOH per triglyceride
free fatty acids (stearic acid, lauric acid and the like) take one KOH each:
SAP = 56 106 ÷ M̄_fatty acid
Validated on the 36 Codex oils where the saponification range and the
fatty-acid ranges come from the same standard:
median absolute error 0.84 %
90th percentile 2.44 %
worst 3.57 %
bias +0.55 % # high: unsaponifiable matter
A derived value therefore carries a ±3 % band, and is offered only where the
published profile sums to between 95 % and 115 %. - Saponification stoichiometry: one mole of triglyceride consumes three moles of KOH. SAP (mg KOH/g) = 3 × 56 106 ÷ M_triglyceride, where M_triglyceride = 3 × M̄_fatty acid + 38.049 (glycerol 92.094 less three waters at 18.015). A profile is mass percent, so a gram of fat holds Σ wᵢ ÷ Mᵢ moles of acid and M̄ is the number average, Σ wᵢ ÷ Σ (wᵢ ÷ Mᵢ).
- ISO 3657:2020, Animal and vegetable fats and oils — Determination of saponification value, Annex B (informative): Calculation of saponification value from fatty acid composition data. The standard computes the value from a gas-chromatographic composition, and notes that the sample must be free of major impurities and not thermally degraded.
- Fatty-acid molar masses from their molecular formulae with IUPAC 2013 atomic weights (C 12.011, H 1.008, O 15.999).
- AOCS Official Method Cd 3-25: the saponification value of a specific lot is measured by titration. A certificate of analysis replaces the published range with a figure for the fat in front of you.
公開資料能把鹼量確定到什麼程度
KOH_low = Σ(oilᵢ × SAP_minᵢ ÷ 1000) # every oil at the bottom of its published range
KOH_high = Σ(oilᵢ × SAP_maxᵢ ÷ 1000) # ...and at the top
KOH_mid = Σ(oilᵢ × SAP_repᵢ ÷ 1000) # what the lye is actually weighed from
supplied (as KOH equivalent) = KOH_mid × (1 − sf ÷ 100)
superfat actually achieved:
worst case = (1 − supplied ÷ KOH_low) × 100 # fat needs LESS lye than was weighed
best case = (1 − supplied ÷ KOH_high) × 100 # fat needs MORE, so more is left unsaponified
smallest nominal superfat whose worst case clears a floor f:
sf ≥ (1 − (1 − f) × KOH_low ÷ KOH_mid) × 100 - Codex Alimentarius CXS 210-1999, Standard for Named Vegetable Oils, and CXS 211-1999 for animal fats: saponification value is published as a range per named oil, not a single figure, because the property varies with origin, season and processing.
- Worst-case bound: every oil is taken at the same end of its published range simultaneously. Real lots are not perfectly correlated, so the achievable spread is narrower. — This is not a confidence interval and implies nothing about how likely either end is. It is the limit of what the published data permits.
- AOCS Official Method Cd 3-25: the saponification value of a specific lot is measured by titration. A certificate of analysis replaces the published range with a figure for the fat in front of you.
脂肪酸組成、皂性指標、碘價與 INS 值
profile = Σ (oilᵢ ÷ total oils) × fatty acidsᵢ # mass-weighted percent
hardness = lauric + myristic + palmitic + stearic (29–54)
cleansing = lauric + myristic (12–22)
conditioning = oleic + linoleic + linolenic + ricinoleic (44–69)
bubbly = lauric + myristic + ricinoleic (14–46)
creamy = palmitic + stearic + ricinoleic (16–48)
iodine value = Σ wᵢ × IVᵢ (41–70)
INS = Σ wᵢ × (SAP_KOHᵢ − IVᵢ) (136–165, ideal 160) - Community convention for soap qualities, in continuous use in hobby lye calculators since c. 2005: hardness = lauric + myristic + palmitic + stearic; cleansing = lauric + myristic; conditioning = oleic + linoleic + linolenic + ricinoleic; bubbly lather = lauric + myristic + ricinoleic; creamy lather = palmitic + stearic + ricinoleic. Recommended bands: hardness 29–54, cleansing 12–22, conditioning 44–69, bubbly 14–46, creamy 16–48, and iodine value 41–70. — A convention, not a measurement. It ignores superfat, water, cure and additives, and treats every fatty acid in a group as equal. The iodine value itself is measured (AOCS Cd 1-25); the 41–70 band beside it belongs to this convention, not to the method.
- AOCS Official Method Cd 1-25, "Iodine Value of Fats and Oils, Wijs Method". g I₂ absorbed per 100 g of fat; a measure of unsaturation.
- McDaniel, Robert S. Essentially Soap. Krause Publications, 2000. INS = saponification value (mg KOH/g) − iodine value; recommended range 136–165, ideal 160.
香氛添加比例、IFRA 與過敏原
f = oils × p ÷ 100 # p = % of oils (PPO)
f = base × p ÷ (100 − p) # p = % of finished batch; base = everything but fragrance
% of finished product = f ÷ (base + f) × 100 ≤ certificate maximum for the product's IFRA category
blends (conservative): Σ loadᵢ ÷ maxᵢ ≤ 1
allergen % in product = Σ (fragrance % × allergen % in fragrance ÷ 100) ÷ (1 − cure mass loss)
declare if > 0.001 % leave-on, > 0.01 % rinse-off
suggested on a pick: 3 % of oils, or less to stay under the maximum: f = min(oils × 0.03, base × M ÷ (100 − M)) - IFRA, "Guidance for the use of IFRA Standards", 51st Amendment (June 2023), Table 11 product-category mapping and §6 on calculating the concentration of a fragrance mixture in a finished product. — IFRA Standards are voluntary; limits are maximum concentrations in the finished product; a Certificate of Conformity is issued by the fragrance supplier, not by IFRA.
- Regulation (EC) No 1223/2009, Annex III, as amended by Regulation (EU) 2023/1545: fragrance allergens must be named in the ingredient list when their concentration exceeds 0.001 % in leave-on products or 0.01 % in rinse-off products.
- Nature’s Garden, "How Much Fragrance Oil to Use (Load & Safety)": "Cold process soap typically uses 3% to 6% fragrance oil based on the combined weight of the oils and butters in the recipe, not the finished bar weight." — A soap supplier’s own guidance (supplier tier), not a standard. The certificate’s category 9 maximum still decides.
- Lovely Greens, "How Much Essential Oil to Add to Soap Recipes": "The maximum amount of essential oils to aim for in a soap recipe is 3% of the main soap-making oils by weight", from the author’s own Cosmetic Product Safety Report. — A soapmaking guide (supplier tier), not a standard. IFRA sometimes allows more for a given oil, and sometimes less.
皂模尺寸計算
V (mL) = l × w × h | π (d ÷ 2)² h | cavities × volume each # 1 in³ = 16.387064 mL
batch (g) = V × ρ × fill # ρ ≈ 1.0 g/mL, calibrate
oils = batch ÷ (1 + lye/oil + water/oil + additives/oil + fragrance/oil)
for comparison: the "in³ × 0.4 oz" rule assumes full water and 5 % superfat - Volume of a rectangular prism V = l × w × h; of a cylinder V = π × (d ÷ 2)² × h. 1 in³ = 16.387064 mL.
- Empirical default. Fresh cold-process soap batter has a density close to water, ≈ 0.95–1.0 g/mL; the community rule "in³ × 0.4 = oz of oils" implies about 0.69 g/mL of oils, which is ≈ 1.05 g/mL of batter at 38 % water and 5 % superfat. Calibrate by weighing a filled mold once. — Density varies with whipping, fragrance, temperature and how full the mold is poured. Treat the default as a starting point and calibrate.
液體皂稀釋
solids = oils + pure KOH # mass is conserved in saponification
paste concentration = solids ÷ paste × 100
water to add = solids ÷ (target ÷ 100) − paste - Conservation of mass in saponification: the soap and glycerol formed weigh exactly what the fat and hydroxide weighed. Solids in a paste are therefore taken as oils + pure lye; the remainder is water.
- Failor, Catherine. Making Natural Liquid Soaps. Storey Publishing, 2000. Paste method, dilution ratios and sequestering.
推算的皂化價從何而來
資料庫中有40種油脂,在我們能使用的任何原始文件中都沒有皂化價。我們沒有把它們排除在計算器之外,也沒有憑空編造數字,而是依該油脂本身實測的脂肪酸組成計算。這不是猜測:3莫耳的氫氧化物可皂化1莫耳的三酸甘油酯,而三酸甘油酯的莫耳質量取決於其中脂肪酸的碳鏈長度。組成決定了這個數值。
問題在於它有多準確,而這是可以衡量的。公平的檢驗方式是資料庫中的 Codex 子集:36種具名油脂,其皂化價範圍與脂肪酸範圍皆由同一機構針對同一原料發表。以這些油脂比對,此方法的絕對誤差中位數為0.84%,第90百分位數為2.44%,最差情況為3.57%。結果略為偏高,平均高出0.55%:因為它假設油脂是純脂肪,而未精製油含有少量不皂化物,會使實測值偏低。偏高是鹼量偏多的方向,而推算值所附的範圍已涵蓋這部分。同一資料庫中公開發表範圍的中位數為其中心值的 ±2.9%,所以推算值的確定程度,與從標準中查到的數值大致相當。
若與資料庫其餘部分比對,表面上的誤差會較大:中位數為1.7%,最差情況為22%。這並不是方法失準。差異最大的,正是一致性檢查早已標記為內部矛盾的那些紀錄:公開發表的皂化價旁邊,是一個不可能產生該數值的組成。拿這些紀錄來比較,會把方法誤差與資料誤差混為一談,所以驗證只使用 Codex 子集。
每個推算值不論出現在哪裡,都會標示為推算值,並在不確定性面板中帶有 ±3% 的範圍;一旦你輸入自己原料批號的實測值,推算值就會完全捨棄不用。
為什麼鹼量帶有範圍
皂化價不是常數。Codex 給椰子油的皂化價是248–265 mg KOH/g,因為油脂確實會隨產地、季節與精製程度而不同。每個手工皂計算器都把這點藏起來,只印出一個精確到小數點後一位的數字,這是假精確:這個數字看起來像是你那瓶油的實測值,其實是別人調查結果的中間值。
把這個範圍一路帶進計算,它最後落在最要緊的那個數字上。超脂是溫和的皂與具腐蝕性的皂之間的緩衝,而被不確定性吃掉的正是這一部分。一份用一般橄欖油與椰子油、設定3%超脂的配方,實際上可能落在−0.2%到6%之間的任何位置,而負值那一端就是鹼過量的皂。這不是不信任計算的理由;這正是手工皂界習慣把超脂定在5%左右的原因,而據我們所知,從來沒有任何計算器把這個習慣背後的推算過程呈現出來。
讓每種油脂同時取其範圍的同一端,得到的是上下限,而不是信賴區間。不同原料批號之間並非完全同步變動,所以實際可能的差距會更窄,而這個計算也無法告訴你任一端出現的機率有多高。唯一能讓範圍收斂的是實測:輸入你那批原料分析證明書上的皂化價,那種油脂就完全不再帶來任何不確定性。
標明為慣例的慣例
五項「皂性指標」是把脂肪酸分組加總,再與業餘計算器自2000年代中期沿用至今的區間比較。它們適合用來比較配方,卻無法預測實際做出來的皂:它們忽略超脂、水量、晾皂、添加物與製程,也把同一組裡的每種脂肪酸視為相同。38%的「全水量」預設值與「× 0.4」皂模規則是習慣,不是化學。我們把這些全部精確地照原樣實作,因為皂友就是用這套語言在比較,同時我們也會說明它們是什麼。
有新功能上線時通知我
有新功能上線時,寄一封簡短通知給你。不是電子報,不推銷任何東西,一鍵即可取消。