NOTE! Some of the information in here is not correct anymore. Please read the documentation


An ingredient has the following properties. Internally these properties is a value between 0-1. So if an ingredient has 10% sugar the value for Sugar is 0.1.

From these properties we can calculate the following.
TotalFat = ButterFat+Fat
TotalSolids = TotalFat + MSNF + OtherSolids + Sugar + Salt + Alcohol
Water = 1.0 – TotalSolids
PACtotal = PAC+PACsalt+PACalcohol

POD – relative sweetness. The POD value is not automatically connected to the Sugar property for a couple of reasons. First the Sugar property is the total amount of any sugar and different sugars have different sweetness. The other reason is that the POD can be modified to handle bitter ingredients (like cacao powder) by setting it to a negative value.

PAC – Freezing Point Depression Factor. For the same reasons as for POD the PAC is not connected directly to the Sugar property. For the ingredient category of “milk or cream” the PAC is automatically calculated.

Milk or Cream – If an ingredient is categorized as milk or cream you can only change the ButterFat content, all other properties are automatically calculated. This is how the other properties are calculated.
MSNF = (1.0-ButterFat) * 0.09
PAC = MSNF * 0.545
POD = PAC * 0.16
The MSNF also contain salts that I don’t include in any of the PAC properties. But the salts from MSNF are accounted for when calculating the freezing point.
Note on lactose. The MSNF contains lactose, this is the 0.545 factor (54.5%). Lactose is only 16% as sweet as sucrose and this explains the POD formula. The lactose from milk and cream is not listed in the sugars column in the software. The problem is that lactose is already accounted for in the MSNF so if adding it to the sugars it would be counted twice. The total solids calculations would be off.


In a recipe we have a list of ingredients each with a weight. We also have an evaporation factor for how much water is evaporated when cooking the mix. This will give us a Total weight and a Final weight. The Total weight is just the sum of all the ingredients weights. The Final weight is the weight after evaporation. Since evaporation only removes water the different solids gets more concentrated. This affects the percentage of each data property and it of course affects the actual weight of the water property.
Weight = Sum of all the ingredients weights
Final = Weight * (1.0-Evaporation)
So, why complicate things with evaporation. Well evaporation is approximately 4-5% when cooking the mix in a normal way on the stove. Some people even cook for longer times to take advantage of the evaporation to increase the solids. But we will also utilize this when calculating the freezing point curve of the mix.

Freezing Point Calculations

Using PAC we can calculate the freezing point of our ice cream. In my software I calculate the freezing point separately for Sugars, Salt, Alcohol and the salts in MSNF. The freezing points are then summed to present the final freezing point (FP). The freezing point calculations are in Celcius or Kelvin (same scale) If you need them in Fahrenheit you need to convert them using F=C * 1.8 + 32

Normalized PAC
Before showing the actual calculations we must explain Normalized PAC. Normalized PAC is the PAC in relation to the total water in a recipe. So, if we divide PAC with the total water we get Normalized PAC. This is more useful because it accounts for the amount of water that needs to be controlled and without this we can not calculate the freezing curve.

Freezing point depression formula used for salt and alcohol (from Wikipedia)
If the solution is treated as an ideal solution, the extent of freezing-point depression depends only on the solute concentration that can be estimated by a simple linear relationship with the cryoscopic constant (“Blagden‘s Law”):
ΔTF = KF · b · i,
ΔTF, the freezing-point depression, is defined as TF (pure solvent) − TF (solution).
KF, the cryoscopic constant, which is dependent on the properties of the solvent, not the solute. (Note: When conducting experiments, a higher KF value makes it easier to observe larger drops in the freezing point. For water, KF = 1.853 K·kg/mol.[8])
b is the molality (moles solute per kilogram of solvent)
i is the van ‘t Hoff factor (number of ion particles per individual molecule of solute, e.g. i = 2 for NaCl, 3 for BaCl2).

Freezing point for salts
FPsalt = -2.0 * 1.86 * (PACnsalt / 58.44)
PACnsalt is the normalized PAC for salt

Freezing point for alcohol
FPal = -1.0 * 1.86 * (PACnalcohol / 46.0684)
PACnalcohol is the normalized PAC for alcohol

Freezing point from the salts in MSNF
Here I use the formula from “Ice Cream 7th edition” by Goff and Hartel.
FPmsnf = -(MSNF * 2.37) / Water

Freezing point from sugars
By using experimental data from sucrose solutions we can fit a polynomial equation.
FPse = -(0.0000000018 * x4 – 0.0000015486 * x3 + 0.0004066439 * x2 + 0.0429570733 * x + 0.1564927407)
x = PACn*0.1;
x2 = x*x;
x3 = x*x*x;
x4 = x*x*x*x;

Final freezing point
Just sum the freezing points to get the final freezing point of the mix.
FP = FPse + FPsalt + FPal + FPmsnf

Freezing Curve

Freezing Curve or Ice Curve is a curve showing the relationship between temperature and the amount of frozen water.

The Freezing Point FP of a mix is when the water starts to freeze. When the temperature drops, more water freezes. When more water freezes the concentration of the solids increases in the remaining unfrozen water. This means you need lower temperatures to freeze more water and so on.

I calculate this by simulating more and more water being frozen starting at the FP with 0% frozen water. Simulate that some of the water gets frozen and run the freezing point calculations again and so on. In my code I calculate the FP from 0% to 85% of the water being frozen. This curve can then be used to predict the hardness of the ice cream at a certain temperature.

More info on freezing point calculations in this post.

2 thoughts on “Calculations”

  1. Hm, strange my formula for the FP starts with the SE and not the normalized PAC. I am dividing the sucrose equivalent by the total amount of remaining unfrozen water at a certain temperature to get the amount of sucrose in a 100g mix of ice cream. Then I am using a polynomial equation of a 6th degree for calculating the FP(se). Your curve comes to the same result like me so probably both ways work.
    However what I cannot reproduce is the curve for the hardening. How exactly do you get there? Would you be so kind to elaborate?

    1. The normalized PAC is the SE divided by unfrozen water so it’s the same thing that I do.
      For everyone that has not studied this that much this is how it works.
      We calculate the freezing point for a certain concentration of sugars in water by using measured data converted to a polynomial function.
      So, for a certain concentration of sugar we know the freezing point.
      By calculating this function for higher and higher concentrations of sugar and thus simulating more and more water being frozen we can plot a freezing curve.
      This freezing curve can be used to predict hardness of the ice cream for a certain temperature by relating it to the amount of frozen water at that temperature.

Leave a Reply

Your email address will not be published. Required fields are marked *