Fior di Latte Gelato
Plain cold dairy with nowhere to hide: dense on the spoon, gently sweet, carrying a whisper of salt that makes the milk read milkier before the finish clears.

Italian gelaterie get judged on this one, because nothing has been added to distract from the dairy. The milk is the flavour, so every choice becomes a question of bands rather than of dosing, and the single non-dairy taste element is 1 g/kg of salt, which lowers the threshold at which sweetness registers. Cream is allowed to climb, since milk fat is the only aroma carrier present, but whole milk still dominates so the result lands on the gelato side and not the American ice cream side. Non-fat dry milk builds the body, and its limit is lactose: too much and the spoon turns sandy in storage, in the one flavour where a defect has nowhere to hide.
Cream runs up to 185 g/kg because milk fat is the only aroma carrier here, but the base stays milk forward. With 579 g/kg of whole milk, fat lands at 8.55%, on the gelato side of the 5 to 12 band rather than the American ice cream side.
Non-fat dry milk at 47 g/kg is the lever that builds the body, and MSNF finishes at 10.74%, in the upper half of the 8 to 12 range. High MSNF binds free water through casein, which matters in a recipe that has neither yolk nor fruit pulp to hold water. The reason it stops at 47 g/kg is lactose: this mix already sits at 9.41% lactose in the water phase and 5.85% of total mass, and past that the lactose crystallizes in storage and the spoon turns sandy in the one flavor where any defect is obvious.
Dextrose at 25 g/kg and glucose powder at 35 g/kg exist to split two levers that sucrose alone cannot separate. Dextrose buys freezing point depression without much mass, glucose powder buys solids and body with little effect on the freezing point. Together they land PAC at 257.48 and solids at 37.79% independently of each other, while POD stays at 165.60, in the lower half of the 135 to 200 band, so a plain milk gelato does not end up tasting of sugar.
Ingredients
Makes 1000 g of finished base.
| Ingredient | Grams | Home measure |
|---|---|---|
| Whole Milk | 579 | 2 1/3 cups |
| Heavy Cream 35% | 185 | 3/4 cup plus 1 tablespoon |
| Sugar (Sucrose) | 125 | 1/2 cup plus 2 tablespoons |
| Non-Fat Dry Milk | 47 | 1/2 cup |
| Glucose Powder | 35 | 3 tablespoons |
| Dextrose (Glucose) | 25 | 2 tablespoons |
| Stabilizer (Neutral) | 3 | |
| Salt | 1 |
Method
Shallow tray, scrape and fold, no whipping
- 1Whisk every dry ingredient together first: sugars, milk powder, stabiliser and salt. Dry-blending them stops the stabiliser clumping when it meets liquid.
- 2Warm the liquids to 40 C (104 F), then rain the dry mix in while whisking hard.
- 3Heat to 82 C (180 F) and hold for 2 minutes so the stabiliser hydrates.
- 4Chill in an ice bath to under 5 C (41 F) within 2 hours. Slow cooling is where bacteria and coarse crystals both start.
- 5Age 6 to 12 hours in the fridge under 5 C (41 F). This is when the stabiliser and the milk protein take up water.
- 6Freeze in a shallow metal pan 2 to 3 cm deep, breaking the crystals with a fork every 30 to 40 minutes, 4 to 6 times.
- 7Freeze firm, then temper 10 to 15 minutes in the fridge before scooping.
The balance
All six against the professional range for Milk Gelato.
The governing number here is lactose at 9.41% of the water phase, the highest load this mix can safely carry, and it comes straight from MSNF at 10.74%. That MSNF is not an accident of the dairy, it is the whole structural strategy: with no yolk, no pulp and no cocoa solids, casein is the only thing binding free water, so the formula pushes milk solids as high as the lactose ceiling allows and stops. Everything else works around that. Fat at 8.55% keeps the aroma carrier without tipping into ice cream territory, PAC at 257.48 sits mid the 220 to 300 range so the block tempers cleanly, and POD at 165.60 stays deliberately low because sweetness is the easiest way to ruin a flavor whose entire appeal is fresh dairy.
This is the least forgiving base on any menu, because no aroma is covering a defect. Pasteurize at 82 to 85 C and hold 30 seconds. Do not go past 85 C: above 90 C the whey protein denatures too far and a cooked milk flavor appears, which in a fior di latte is a defect rather than a characteristic. Hydrate the stabilizer by pre-mixing the 3 g/kg dry with part of the sugar and adding it around 40 to 45 C. Thrown straight into cold milk it clumps, and the gum beads only show up later, in the mouth. Mature 6 to 12 hours at 4 C so the fat partially crystallizes and the protein rehydrates; skip that and the body comes out thin. Churn to low overrun, 25 to 35%, because air dilutes exactly the dairy aroma that is the product.
If it goes wrong
Lactose crystallizing. This mix already carries 9.41% lactose in the water phase and 5.85% of total mass.
Keep non-fat dry milk at 47 g/kg. If the body feels thin, add cream, never more powder.
The base went past 85 C during pasteurization and the whey protein over-denatured.
Hold 82 to 85 C for 30 seconds and chill immediately. In a fior di latte that cooked note is a defect, not a feature.
The 3 g/kg of stabilizer was dropped into cold milk and clumped.
Pre-mix the stabilizer dry with part of the sugar and add it at 40 to 45 C while stirring.
Allergens: milk
- https://www.dreamscoops.com/recipes/fior-di-latte-gelato-recipe/
- https://scoopsandsavor.com/italian-fior-di-latte-recipe-gelato-base-recipe/
- https://www.dreamscoops.com/ice-cream-science/ice-cream-calculator/
Want to change an ingredient and watch the numbers move? Open the free balancer