8. Personalise¶
This step is a filter, not a design step. It may change which food fills a portion. It may not change how many portions are in a slot.
Where a constraint cannot be satisfied without changing a count, go back to step 5, rebuild the daily distribution with that group excluded, and re-run 6 and 7. That loop is expected, not a failure.
Apply the constraints in the order below — hard exclusions first, because everything after them is choosing among what remains.
1. Hard exclusions¶
Nothing on this list ever appears in the menu, including inside a combination suggestion or a "for example".
| Source | Read as |
|---|---|
health_allergies |
Absolute. Free text — read it whole, including severity |
nut_intolerances |
Absolute |
nut_pattern |
Vegetarian, vegan, pescatarian, halal, kosher — structural |
nut_dislikes |
Absolute. A disliked food in a menu is a menu the client ignores |
Read the exceptions in free text
nut_dislikes = "I don't eat fish except tuna, and no coriander" is three
facts, and a menu built on "dislikes fish" loses the tuna. Free text is
read whole, and the exception is the part that matters.
Where free text is genuinely ambiguous — a severe allergy without a food named clearly enough to exclude — that is a conditional stop, not a guess.
Patterns, concretely¶
nut_pattern |
Effect |
|---|---|
| Vegetarian | No meat, fish. Eggs and dairy stay. Legumes carry most protein |
| Vegan | Also no eggs, dairy. Dairy portions → 0, rebuild from step 5. Flag B12 — see Supplements |
| Pescatarian | Fish and seafood stay; no meat or poultry |
| Halal / Kosher | No pork; kosher additionally separates meat and dairy — no option may combine them in one meal |
| Low carb / keto | Conflicts with the 45% target. Build to the target and say why in Notes for you; do not silently build a low-carb plan |
| Paleo | No grains, legumes or dairy. Very tight against this portion system — rebuild from step 5 and expect the fibre target to be hard |
| Intermittent fasting | A scheduling constraint — see step 6 |
| Mediterranean | Already what this menu builds. No change |
2. Medical constraints carried from step 2¶
| Finding | Effect on the options |
|---|---|
| Type 2 / pre-diabetes | Starch always paired with fat, fibre or protein — never alone. Even spread across slots. A line in the menu that their clinician reviews the carbohydrate targets |
| Thyroid disorder | Soy to one portion a day, separated from medication. Timing note only |
| High blood pressure | No added salt in options; olives and tinned fish noted as salty. No other change |
| Perimenopause / post-menopause | The protocol — cruciferous daily, phytoestrogen daily, protein per meal |
| Digestive symptoms | Fibre ramp, cooked over raw cruciferous, sugar alcohols out |
| Iron supplement | Separate from coffee and dairy portions |
| Vitamin D supplement | Placed with the slot that has a fat portion |
3. Practical constraints¶
These decide whether the menu is followed at all, and they are underweighted far more often than the clinical ones.
Cooking¶
nut_cooking_confidence (1–5), nut_who_cooks, nut_who_shops.
| 1–2 | No option may need more than one cooking step. Tinned legumes, pre-cooked grains, raw vegetables, grilled or baked protein. No recipe requiring timing |
| 3 | One option per slot may be more involved; the rest are simple |
| 4–5 | No constraint |
nut_who_cooks = someone else |
Options must be describable to that person. Simpler, more conventional dishes |
nut_who_cooks = nobody, eat out |
See below |
Meals out¶
nut_meals_out. Above about 5 a week, the menu that only works at home fails
most of the time.
Give each main slot one option that is orderable — grilled protein with salad and a starch side is available almost everywhere. Say in Notes for you that restaurant food is cooked in oils this menu avoids and that this is a reason to cook at home where possible, stated once and without repetition.
Budget¶
pref_budget. Where it is tight, lean on the cheap end of every group: legumes,
eggs, seasonal vegetables, tinned fish, oats, tahini. Avoid salmon, berries out
of season, pre-prepared anything. Never comment on the budget itself.
Household¶
nut_household_eating. Where the household eats very differently, prefer
options that are a variation on a shared meal — the same dish with a different
starch portion — over options requiring a separate meal to be cooked.
Travel and shift work¶
life_travel weekly or constant: at least one option per slot needing no
kitchen. life_shift_work: the anchored schedule from
step 6.
Accessibility and eating limitation¶
pref_accessibility, nut_eating_limitation + its detail. Chewing or
swallowing difficulty, standing to cook, getting food to the mouth — each
constrains texture or preparation directly. Read the detail field and apply what
it actually says.
4. Preference¶
Last, and only among what has survived. nut_ffq shows what the client already
eats often; where two options are otherwise equal, choose the food already in
their week. nut_appetite = "Low" argues for denser options within the same
counts; "Large" for higher-volume ones — more vegetables, more whole fruit.
life_energy_crash = "Yes, most days" puts the afternoon snack squarely in
the slump and gives it protein and fat rather than fruit alone.
The count check¶
After every substitution, count the option back against its slot. This is the only invariant this step has, and the substitution most likely to break it is the one that swaps an animal protein for legumes — because legumes carry a starch portion too.
Swap: 90 g chicken (3 protein) → 1½ cups lentils (3 protein + 3 starch)
Slot was 4 starch · 3 protein → now 7 starch · 3 protein ✗
Fix: drop the rice from 4 starch to 1 ✓
What this step must not do¶
- Not change portion counts. Ever. Go back to step 5.
- Not drop fruit or vegetables for a preference. A disliked vegetable is replaced by another vegetable, not removed.
- Not argue with a stated pattern. A client who says vegan gets a vegan menu. The menu may note what it cannot cover; it does not relitigate.
- Not add a food the client excluded, however small the quantity or however well it fits.
- Not narrow the menu to safety. Four options that are all rice and chicken satisfy every constraint and fail the client.
Previous: 7. Plate & combinations · Next: 9. Assemble & check