Skip to content
English
  • There are no suggestions because the search field is empty.

How do I choose how a dietary attribute rolls up to a recipe?

Give each attribute its own rule, so a recipe carries Local, Vegan or Organic only when it is actually true of the dish.

Jump to: How it works · Choose a rule · Weight threshold · Derived attributes · Check results · Troubleshooting · FAQ

How attribute rollup works

Open the attribute under Dietary Flags and choose one of four options in its Aggregation section: every component must have it, any one component has it, components carrying it make up a share of the recipe's weight, or a rule built from other flags. Galley then recalculates every recipe that uses that attribute.

Until now every attribute followed one fixed rule: a recipe carried it only when every component did. That still fits Vegan or Gluten Free, but it works badly for something like Local, where a pinch of salt from out of state would stop a dish from counting as local.

Nothing changes until you set a rule. Every existing attribute keeps the "All components must have it" rule, so your recipes look exactly the same until someone chooses otherwise. Your tables will show allergens and attributes in separate columns.

Allergens are not affected. A recipe always carries an allergen when any component has it, because allergen labeling is regulated. On an allergen flag, the Aggregation area reads "Allergens always use Any component (regulated)."

You need the Edit Dietary Flag permission to change a rule. Without it, you can still see which rule an attribute uses, but the options are greyed out.

The Dietary Flag page for Local: Type set to Attribute and the Aggregation section with its four options


Choose a rule for an attribute

  1. Go to Dietary Flags. If your account uses the new side menu, it is under Products > Standards. You can also open it from the Ingredients catalog with "View Dietary Flags".
  2. Click the attribute you want to change, for example Local.
  3. Check that Type is set to Attribute. Rules only apply to attributes.
  4. Under Aggregation, choose one of the four options.
Option on screen A recipe carries the attribute when Good for
All components must have it (default) Every component carries it Vegan, Gluten Free, Kosher
Any component has it At least one component carries it Contains Pork, Contains Alcohol, Spicy
More than __ % of weight The components carrying it make up more than the percentage you set of the recipe's weight Local, Organic
Derived from other flags A rule you build over other attribute flags is true (Any of, All of, None of) Vegetarian as "None of Beef, Pork, Poultry, Fish"
  1. Galley saves your choice right away and briefly shows "Updating affected recipes...". Recipes are then recalculated in the background, and you can keep working.

Two options save a little differently. A weight percentage saves when you click away from the box or press Enter. A derived rule saves only when you click "Save rule".

Only switch a flag's Type from Allergen to Attribute if it is not a regulated allergen. Switching also turns off "Show on nutrition label?" for that flag, and the flag stops spreading from any single component unless you choose "Any component has it".


Set a weight threshold

Use "More than __ % of weight" when an attribute should apply once enough of the dish carries it, such as Local or Organic. The recipe carries the attribute when the components that carry it make up more than the percentage you enter of the recipe's total weight.

  1. Select "More than __ % of weight". Galley saves it straight away with 50% to start.
  2. Type a whole number from 1 to 99 in the box.
  3. Click away from the box or press Enter to save the new percentage.

How Galley measures weight

  • Weight is as-purchased (AP) weight, before trim loss and cooking.
  • Supplies, such as trays and packaging, don't count toward the total.
  • If a component has a Contribution % in the recipe's nutrition section, only that share of its weight counts.
  • A sub-recipe that has the attribute added directly counts with its full weight.
  • If no component carries the attribute, the recipe doesn't carry it.
  • The share shown on the recipe is rounded to a whole percent.

For example, a soup made with 3 lb of local carrots, 1 lb of local onions and 1 lb of stock that is not local is 80% local by weight. With a 50% threshold, it carries Local.

If Galley can't work out the weight of some ingredients, for example a quantity is missing or there is no conversion from the ingredient's unit to weight, and that could change the answer, the recipe shows the attribute as "can't determine" instead of guessing. Add a unit conversion to weight on that ingredient to resolve it.

The Aggregation section with More than 50 % of weight selected


Build a derived attribute

Use "Derived from other flags" to define an attribute as a rule over attribute flags you already maintain, instead of tagging every ingredient by hand. For example, Vegetarian can simply mean that none of Beef, Pork, Poultry or Fish is present.

  1. Select "Derived from other flags". Your current rule stays in place until you save the new one.
  2. Next to "The recipe has this attribute when", choose Any of, All of or None of.
  3. Under Flags, click "Add a flag…" and pick one or more attribute flags.
  4. Click "Save rule".
Operator The recipe has the attribute when Example
Any of At least one of the chosen flags is on the recipe Contains Meat = Any of Beef, Pork, Poultry
All of Every chosen flag is on the recipe Local and Organic = All of Local, Organic
None of None of the chosen flags is on the recipe Vegetarian = None of Beef, Pork, Poultry, Fish

Before you use flags like Beef, Pork, Poultry or Fish in a rule, set each of them to "Any component has it". Under the default "All components must have it", a dish with one beef component does not carry Beef, so "Contains Meat = Any of Beef..." would miss it and "Vegetarian = None of Beef..." would wrongly include it.

Which flags you can use

  • Only attribute flags appear in the list. Allergens don't, so if a flag like Beef is set up as an allergen in your account, it won't be available.
  • Other derived attributes don't appear, because a derived attribute can't be built from another derived attribute.
  • A flag that is already used inside another derived rule can't become derived itself. Remove it from that rule first.
  • Once an attribute is derived, tagging ingredients or vendor items with it no longer affects recipes. The rule decides.
  • If you delete a flag that a derived rule uses, the rule carries on without it. Deleting Fish would let fish dishes show as Vegetarian, so update your derived rules first.

A derived attribute is only as reliable as the tagging under it. An ingredient with no Beef tag counts as not beef, so check that every meat ingredient or vendor item is tagged before you rely on Vegetarian. When a weight-based flag in the rule can't be determined and that could change the answer, the derived attribute shows "can't determine". If every flag in the rule is deleted, the derived attribute shows "can't determine" until you update the rule.

The derived rule builder: the recipe has this attribute when None of Beef, Pork, Poultry and Fish


Check the result on your recipes

Open a recipe and look at its Attributes. Attributes that use a weight or derived rule appear there alongside the rest.

  • A weight-based attribute shows its share of the recipe's weight, for example "Local · 62%".
  • An attribute Galley can't determine shows in grey with "can't determine". Hover over it to see why.
  • The recipe list's Dietary Attributes column lists only attributes a recipe carries. One Galley can't determine is left blank there, so check the recipe page.
  • After you create or change a derived rule, the recipe list filter can lag behind the recipe page. Always confirm on the recipe page before you rely on the filter for a dietary claim. Recipes that show "can't determine", or that are still being recalculated, are left out of filter results until they have an answer.

Adding an attribute directly to a recipe always wins: the recipe carries it whatever the rule says. A rule can't be used to remove an attribute from a single recipe. Add derived attributes only to the recipe itself, never to a sub-recipe: today every recipe that uses that sub-recipe then carries the derived attribute, whatever the rule says.

After you change a rule, Galley recalculates affected recipes in the background. In a large catalog, give it a little time before you rely on recipe list filters.

A recipe's Attributes row with a Local · 70% pill

A grey Local pill marked can't determine, with its tooltip about missing weight data


Troubleshooting

  • The Aggregation options are greyed out: you need the Edit Dietary Flag permission. Ask an admin on your account.
  • There are no options, only "Allergens always use Any component (regulated).": the flag's Type is Allergen. Rules only apply to attributes.
  • The percentage box turns red with "Enter a whole percent between 1 and 99.": use a whole number with no decimals, from 1 to 99.
  • You see "Unable to update aggregation rule": your change wasn't saved and the previous rule is back. If you were making the flag derived, check whether it is already used inside another derived flag's rule, remove it there, then try again. It can also mean a flag in the rule has since been switched to Allergen. Remove it from the rule, then save.
  • A weight-based attribute shows "can't determine": check the recipe's ingredients for a missing quantity or a unit with no conversion to weight, and add one.
  • A dish with beef shows as Vegetarian: the Beef flag still uses "All components must have it". Switch it to "Any component has it".
  • The recipe list doesn't match the recipe page yet: after you create or change a derived rule, the recipe list filter can lag behind the recipe page. Always confirm on the recipe page before you rely on the filter for a dietary claim.

Frequently asked questions

Will setting a rule change recipes I've already built?

Yes. Every recipe that uses that attribute is recalculated under the new rule, at every location. Allergens stay as they are. Other attributes stay as they are too, except derived attributes whose rule uses this attribute: they update with it.

How do I go back to the original behavior?

Choose "All components must have it". That is the rule every attribute started with. Do this for each attribute before turning the feature off in Admin > Features. Turning it off hides the Aggregation section but keeps any rules you set. A derived attribute switched back to All rolls up from ingredient tags again, so it may disappear from recipes.

Does the rule apply to all my locations?

Yes. You set the rule once for your company. Each location's result uses that location's version of the recipe and its vendor items, so the answer can differ from one location to the next.

Do supplies like trays or to-go containers affect the result?

No. Supplies are ignored by every rule, so a tray can't stop a dish from being Vegan or lower its Local share.

Why do my tables show separate Dietary Flags and Dietary Attributes columns?

With rollup rules available, the recipe, ingredient and vendor item tables show allergens and attributes in separate columns, and the dietary filters split the same way. If you had saved a layout with the combined column, the Dietary Attributes column is added next to it for you.