Adding or Editing an Ingredient

Define how an ingredient behaves in every recipe that uses it.

The composition editor is the foundation of accurate balancing. Every value you enter here flows into PAC, POD, total solids and every other KPI in Gelato Maestro, so spend a few minutes getting it right and the rest of the app rewards you. The same editor is used whether you're creating a brand-new ingredient or updating one you already have.

Open it from: Sidebar › New Ingredient to create a new one, or any Ingredient Detail › Edit (pencil) to edit an existing one. Default ingredients open read-only — duplicate them to edit.

How the editor is organised

The composition editor is laid out as five numbered sections. Filling them in this order — top to bottom — is by far the easiest way to get an accurate ingredient:

#SectionWhat you enter
1WaterWater content per 100 g. Drives total solids automatically.
2Total Solids & AlcoholProtein, cocoa solids, salt, fibre, stabilizers, alcohol — and the read-out of Other solids, total sugars, total fat.
3Sugars & AlcoholSucrose, dextrose (glucose), fructose, lactose, maltose, polyols (with molar mass), alcohol. PAC and POD are calculated here.
4FatsCocoa fat, milk fat, other fats. Sums into total fat.
5NutritionLabel data: energy (kcal/kJ), carbs, fibre, sodium, etc. Informational only — doesn't feed balancing.
One rule everywhere: 100 g Every field in the editor is "per 100 g of the ingredient". water + total solids = 100 always. As you add real solids the auto-balancing Other solids field shrinks to keep that identity true.

General information

Locked ingredients Default ingredients are locked because they're part of Gelato Maestro's curated library. To customize one, use Duplicate and edit the copy.

1 Water

The ingredient editor with the general information card above and the Elements per 100 g card showing the water/solids bar and the section 1 Water field.
The General information card and, below it, the Elements per 100 g card with the water/solids bar and the badge-1 Water field.

Enter the ingredient's water content per 100 g. Gelato Maestro instantly computes total solids = 100 − water and updates the visual bar above the section. This is the single most important number in the editor — every other field competes for what's left in the solids budget.

If you only have a few certain numbers, set water first You can't accurately compute anything else until water is correct. Get water from the label, the producer spec sheet, or a reliable reference, then fill in the rest.

2 Total Solids & Alcohol

The Total Solids And Alcohol section (badge 2), showing Other solids, Sugars, Total fats (read-only) and the editable Protein, Cocoa solids, Salt, Dietary Fiber, Stabilizers, and Alcohol fields.
Section 2: editable base solids on the bottom; the top three (Other solids, Sugars, Total fats) are derived.

This section is where the non-sugar, non-fat solids live. You enter:

And it displays — read-only — three derived values:

About the alcohol field Alcohol appears in this section and in section 3 (Sugars & Alcohol) — it's the same value, edited in either place. It's split into both because it contributes to total solids (section 2) and to PAC (section 3).

3 Sugars & Alcohol

The sugars and alcohol section of the ingredient editor.
Sugars and alcohol drive PAC and POD automatically.

This is where PAC (anti-freezing power) and POD (relative sweetness) come from. Enter what you know, in grams per 100 g:

Gelato Maestro derives these as you type:

Don't know the sugar breakdown? Use sucrose. If a label or a supplier sheet says "sugar" without specifying, default to sucrose. It's the reference sweetener — better to capture the total accurately as one sugar than to invent a fake split.

Polyols and molar mass

Polyols (sugar alcohols) need a little extra information because their PAC is mass-dependent. When you enter a non-zero polyol value, the section shows a Molar mass field with units of g/mol. The PAC for that polyol is then calculated from this molar mass; POD must be entered manually because perceived sweetness varies by polyol type.

Typical molar masses to enter:

You rarely have to add polyols by hand Most recipes use polyols as a whole packaged ingredient. The default library already has sorbitol, maltitol and similar entries with the correct molar mass — pick those instead of recreating one from scratch.

4 Fats

The Fats section (badge 4) with Cocoa fat, Milk fat and Other fats fields.
Section 4: three editable fat classes that sum into total fat.

Three editable fields, all in grams per 100 g:

Total fat is the read-only sum of the three. The Fat gauge in Recipe Details reads from this total.

Fat values are clamped to the remaining solids budget — if you push beyond what water has left available, the field stops at the maximum and you'll see the Total Solids Exceeded toast.

5 Nutrition

The Nutrition section (badge 5) with Calcium, Carbohydrates, Cholesterol, Emulsifiers, Iron, Kilocalories, Kilojoules, Magnesium, Potassium, Saturated fat, Sodium, Trans fat, Vitamin C fields.
Section 5: every Nutritional Label field. Informational only — none of these feed balancing.

The Nutrition section is for the printed Nutritional Label. None of these values feed balancing — they exist to populate retail labels.

kcal and kJ stay in sync Enter one and the other is computed automatically using the standard conversion (kJ = kcal × 4.184). Pick the unit your local regulations use and let Gelato Maestro fill the paired field.

Other solids — the balancing residual

The Other solids field lives at the top of section 2 (Total Solids & Alcohol), right above Sugars and Total fats — see the screenshot earlier in this page.

"Other solids" is not a nutrient. It's the residual that Gelato Maestro keeps reserved so the math always balances to 100 g. The relation is:

other solids = total solids − (sugars + fats + protein + cocoa solids + salt + fibre + stabilizers + alcohol)

As you enter real analytes (sugars in section 3, fats in section 4, base solids in section 2), Other solids automatically decreases by the corresponding amount. You should never edit it directly. A small non-zero residual at the end (say 1–3 g) is perfectly acceptable — it just means there's some minor matter in the ingredient (minerals, trace components) that you haven't specifically classified.

If Other solids is huge and unrealistic It usually means real analytes are missing. The most common causes: Fill in the known sugar and fat splits and Other solids will shrink naturally.

"Total Solids Exceeded" error

You'll see a Total Solids Exceeded toast pop up if the value you just entered would push the sum of solids above what water leaves available (100 − water). Gelato Maestro clamps the field at the maximum the budget allows, so your data stays valid — but the toast tells you that something else has to give.

Why it happens

How to fix it

  1. Re-check the Water value in section 1. If it's too high, lower it — that's the biggest single lever.
  2. Look at the total of the three big buckets: total sugars (section 3), total fat (section 4), and the base solids in section 2 (protein, cocoa solids, salt, fibre, stabilizers, alcohol). Their sum can't exceed total solids.
  3. Reduce the least certain value first — typically other fats, stabilizers, or an alcohol assumption — rather than the one you trust from the label.
  4. Don't try to "rescue" the math by editing Other solids. It will rebalance itself once the real analytes fit the budget.

Scanning a barcode

The barcode scanner control on the ingredient editor.
Scan a packaged product's barcode to pre-fill nutrition data.

When you create a new ingredient, you can scan the barcode on a packaged product. Gelato Maestro queries Open Food Facts (OFF), a community-maintained open database, and pre-fills as many fields as the product record contains. This is the fastest way to onboard ingredients you'll buy off the shelf.

What the scanner fills

When a product is found, Gelato Maestro treats these OFF values as high-confidence anchors and applies them directly:

What it cannot fill — and what you'll often have to add by hand — is the detailed composition: which sugars (sucrose vs. dextrose vs. fructose), which fats (cocoa vs. milk vs. other), and balancing-only fields like stabilizers. OFF rarely includes these.

Always cross-check after a scan Open Food Facts is community-edited, and some products have stale or incomplete entries. After a scan:

If no scan match exists

OFF doesn't have every product. If nothing comes back, fill the editor manually from the package label and supplier spec sheet, in the section order described above.

Balancing fields

These fields are the defaults Gelato Maestro applies whenever the ingredient is added to a recipe. Auto-balance is purely mathematical — it doesn't know about culinary ceilings or single-correct dosages. These fields are how you tell it.

Use for balancing

A simple on/off toggle. When off, the ingredient is removed from the balancing math entirely — it doesn't contribute to total solids, sugars, fats, PAC, POD, MSNF or scoopability. The ingredient is still in the recipe (still costed, weighed and printed on the production sheet) but the engine acts as if it weren't there.

Set this off for inclusions — ingredients added after churning that don't dissolve into the mix:

Leave it on (the default) for ingredients that go into the mix and freeze with it — milk, cream, sugar, SMP, fruit purée, stabilisers, alcohol, flavoring pastes, and so on.

Dosage limit and 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 below it. The two modes mean different things:

Dosage modeWhat it 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, whatever best fits the KPI ranges.Culinary ceilings — lemon juice ≤ 250 g, alcohol ≤ 40 g, intense spices ≤ a few grams. The engine optimises underneath.
FixedThe Dosage limit is a hard value the engine must honour exactly. Auto-balance pins the ingredient at the limit and balances everything else around it. Rescale also keeps it pinned.Ingredients with a single correct dosage — stabilisers (4 g), mono- and diglycerides (1.5 g), a flavour paste used at a specific 30 g.

PAC offset

An integer adjustment added to the ingredient's calculated PAC contribution. Use it when an ingredient affects freezing in ways the sugar/alcohol math doesn't capture — for instance, a water-binding stabiliser. The picker ranges from −200 to +200 per 100 g.

Defaults vs per-recipe overrides

The values you set here are the defaults. Every recipe can override them on a per-ingredient basis from the recipe's per-ingredient row menu. The recipe-level override only affects that one recipe; your ingredient defaults stay intact.

Set the ingredient defaults once Two minutes spent on each custom ingredient pays for itself for the rest of the year:

Nutritional label settings

At the bottom of the editor, a separate Nutritional Label card carries two retail-compliance fields:

Saving and deleting

Save commits the edit and refreshes every open recipe that uses the ingredient. Delete is only available for user-created ingredients, and only after they're removed from every recipe (Gelato Maestro will warn you).

Edits propagate to existing recipes Changing a custom ingredient's composition immediately affects every recipe that includes it — KPIs recalculate using the new values. If you want to experiment without disturbing other recipes, duplicate the ingredient first.

Troubleshooting

"Total Solids Exceeded" keeps popping up

Walk through these in order:

  1. Confirm water is correct in section 1 — usually the culprit.
  2. Sum what you've entered in sugars (section 3) and fats (section 4); the sum cannot exceed total solids.
  3. Check protein, cocoa solids, salt, fibre, stabilizers and alcohol in section 2.
  4. Reduce the least certain contributor first — other fats, stabilizers, or an alcohol guess.

Other solids keeps changing on its own

That's the expected, designed behavior. Other solids is the residual balancer — it shrinks every time you enter a real analyte, and it's read-only. Focus on the fields you actually know; let the residual settle wherever it lands.

Other solids is huge and unrealistic

Real analytes are missing. The most common gaps:

PAC looks wrong

  1. Audit the sugar split — is one sugar carrying a load it shouldn't?
  2. If polyols > 0, verify molar mass is set correctly (e.g. 182 for sorbitol).
  3. Check the alcohol field. A missing alcohol value silently kills PAC for a liqueur.
  4. If you've set a PAC offset, remember it stacks on top of the calculated value.

Total fat is 0 but the label shows fat

Open section 4 and enter the fat split (cocoa fat / milk fat / other fats). Total fat is the sum — if all three are 0, the total is 0 even if a scanner pre-filled the label number.

Texture is sandy in the finished product

This is a recipe-level symptom, but it often comes from an ingredient definition. Check:

kcal and kJ keep "fighting" each other

They are linked — entering one updates the other. Pick one as authoritative and verify the converted counterpart afterward; don't try to set both independently.

Reverting to a clean state

If an edit goes sideways, the safest path back is to close the editor without saving. For default ingredients you can never permanently break anything — they're locked. For custom ingredients, every edit is undoable through the macOS Undo command before saving.