Balancing a Recipe

Land every KPI inside its range — manually, automatically, or with cost in mind.

A balanced recipe is one where total solids, sugars, fats, MSNF, PAC and POD all fall inside the ranges that produce a stable, well-textured gelato at your serving temperature. Gelato Maestro gives you three ways to get there: manual sliders, Auto-balance, and Auto-balance (Cost).

Manual balancing

The most direct approach is to nudge the sliders by hand and watch the gauges. The screen flow is:

  1. Open the recipe.
  2. Pick the gauge that's furthest out of range. If Total Solids is low, increase the heaviest dry ingredients (SMP, dextrose, sucrose) first.
  3. Watch the dependent gauges. Raising sucrose lifts both POD and PAC; raising dextrose lifts PAC more aggressively than POD; raising MSNF (SMP) lifts solids and protein without much sweetness.
  4. Iterate. Most recipes settle inside three or four passes.
Think in 1000 g Every load in Gelato Maestro is grams per 1000 g of mix. That's the conventional way professional gelatieri talk about a recipe ("180 g of sucrose, 65 g of dextrose, 35 g of SMP…"). If your total slips away from 1000 g while editing, hit Rescale.

Auto-balance

Auto-balance runs Gelato Maestro's programmatic balancing engine on your recipe. It iteratively adjusts the loads of every ingredient that's available for balancing until every KPI gauge (total solids, sugars, fats, MSNF, PAC, POD) sits inside the ranges you've defined in Settings › Gauges — or it reports that no solution exists.

The Auto-balance toolbar action.
Auto-balance optimises loads to fit every KPI range.

Auto-balance is mathematical, not artisanal

The engine optimises against the KPI ranges and nothing else. It has no opinion on whether 60 % lemon juice in a sorbet is delicious or chemically aggressive; if the numbers fit the ranges, the engine considers the recipe valid.

That mathematical purity matters most when:

Start from a rough mix, not from zero Auto-balance works far better when you give it a starting point. Type in approximate loads first — 600 g milk, 200 g cream, 150 g sugar, 30 g SMP, and so on — and then hit Auto-balance. The engine fine-tunes around your structure instead of inventing one from nothing.

What the engine looks at on every ingredient

Four per-ingredient settings shape what the engine is allowed to do with each load. Defaults are configured on the ingredient itself in Adding or Editing an Ingredient; the recipe's row menu can override them for this recipe only.

Use for balancing

An on/off toggle. When off, the ingredient is removed from the balancing math entirely — the engine acts as if it weren't there. It doesn't contribute to total solids, sugars, fats, PAC, POD, MSNF or scoopability. The ingredient is still in the recipe — costed, weighed, printed on the production sheet — but its composition is invisible to Auto-balance.

This is the right switch for inclusions — ingredients added after churning that don't dissolve into the mix:

If you leave these in the balancing math, the engine sees their composition (high fat from chocolate, high sugar from cookies) and distorts the rest of the recipe to compensate — even though physically those solids never dissolve into the mix and don't affect the freezing curve or scoopability.

Lock ingredient (per-recipe only)

Available from the row menu in Recipe Details. Pins this ingredient's load at its current value for this recipe only. Auto-balance cannot change it, Rescale preserves it. Use it when you've manually dialled in a specific load (75 g of pistachio paste, say) and want to keep it while the engine works around it.

Dosage limit + Dosage mode

The Dosage limit is a value in grams per 1000 g of mix. It only takes effect once you pick a Dosage mode. The two modes mean different things:

Dosage modeWhat the engine doesUse it for
Max LimitThe Dosage limit is the maximum the engine may use. Auto-balance is free to pick any load between 0 and the limit, choosing whatever value best satisfies the KPI ranges.Culinary ceilings — "no more than 250 g of lemon juice", "no more than 40 g of alcohol". Let the engine optimise underneath.
FixedThe Dosage limit is a hard value the engine must honour exactly. Auto-balance pins the ingredient at the limit and balances the other ingredients around it. Rescale also keeps it pinned.Ingredients with a single correct dosage — a stabiliser at 4 g, a flavour paste at exactly 30 g, a specific overrun reagent. The engine doesn't get to second-guess it.

PAC offset

A manual integer adjustment (−200 to +200 per 100 g) added to the ingredient's calculated PAC contribution. Use it when an ingredient affects freezing in ways the sugar/alcohol math doesn't capture — a water-binding stabiliser, a hydrocolloid, a tightly-bound fruit pulp.

The complete decision table

How the engine treats each ingredient at a glance:

SettingEffect on Auto-balance
Use for balancing = offIgnored entirely — load can be anything, composition not counted.
Lock ingredient = onLoad pinned at current value; engine cannot change it.
Dosage mode = FixedLoad pinned at the Dosage limit; engine balances around it.
Dosage mode = Max LimitLoad free to vary between 0 and the Dosage limit (inclusive).
None of the aboveLoad free to vary between 0 and 1000 g/kg.
Build your ingredient defaults once Two minutes spent on each custom ingredient pays for itself for the rest of the year:
When Auto-balance can't converge If the engine reports it couldn't reach a valid solution, the constraints you've set don't have a feasible answer — typically because too many ingredients are locked or pinned to Fixed dosages, the Max Limit ceilings are too tight, or the KPI gauge ranges in Settings don't leave room for the ingredient set. Loosen a constraint or widen the gauge ranges and try again.

Auto-balance (Cost) Hidden in Enthusiast mode

The cost-optimized variant runs the same engine but with an additional objective: among the feasible solutions, prefer the cheapest. It uses the cost per 100 g you've entered on each ingredient.

The Auto-balance (Cost) toolbar action.
Auto-balance (Cost) optimises for the cheapest valid recipe.
Cost optimization is only as good as your ingredient costs Make sure every ingredient used in the recipe has a realistic Cost per 100 g set in its detail view. An ingredient with cost zero will be pushed to the maximum allowed dosage, distorting the result.

Rescale

Rescale multiplies every ingredient's load by the same factor. Use it to:

The Rescale action.
Rescale preserves every ratio while bringing the recipe to your target total.

For production scaling (e.g. "I need 4 kg of mix tonight"), don't use Rescale on the recipe — use Make Gelato instead, which keeps the recipe at 1000 g and scales just the production batch.

Reading the gauges

Gauges are color-coded against the ranges you've set in Settings › Gauges. By default Gelato Maestro ships with industry-standard ranges per gelato kind.

GaugeWhat's "good" in a cream gelato
Total Solids36–42% — body, mouthfeel, freeze resistance.
Total Sugars16–22% — sweetness and freezing-point depression.
Total Fats6–10% — richness and smoothness.
MSNF8–12% — protein for body and structure.
PAC240–280 — softness at serving temperature.
POD180–230 — perceived sweetness.
ScoopabilityIn the green band at your serving temperature.

Sorbet ranges differ — typically lower total solids (28–34%), higher PAC (270–320), zero MSNF, and target sugars around 24–30%.

You can change every range These are starting defaults, not hard rules. Open Settings › Gauges to set your own min/max and ideal target for each KPI, per gelato kind. Auto-balance will then optimise against your ranges, not the defaults — useful for house styles (lower-sugar gelato, higher-fat custard base, sorbets at a colder serving temperature, and so on).
Use a "0" minimum on gauges that aren't safety-critical In Settings › Gauges you can set a min value of 0 — the gauge then shows clear (no red zone) for low values. Helpful for an MSNF gauge on a sorbet recipe or a Fat gauge on a vegan sorbet, where "low is fine".

Suggested workflow

  1. Start from a balanced default recipe of the same kind — duplicate it.
  2. Swap the flavor ingredient (pistachio paste, fruit purée, cocoa) for what you actually want.
  3. Run Auto-balance to let the engine settle solids, sugars, PAC and POD.
  4. Inspect the gauges. Adjust ingredient flags (lock flavor at the right %, mark expensive sugars as Max Limit) and re-run.
  5. Once balanced, run Auto-balance (Cost) to look for a cheaper variant.
  6. Taste a small test batch via Make Gelato. Tweak by hand if the panel disagrees with the gauges.