Stage two, in detail
Food preferences, the part almost nothing else does.
Everyone eats the same twenty or so things most weeks. Those are exactly the items a tracker gets wrong most often, because a common name covers an enormous range: “yoghurt” runs from roughly 45 to 130 kcal per 100 g depending on which tub you buy.
A food preference is a product you have marked as one you eat often. It is stored as a stable product identity, not as a name, which means it points at a specific record with specific nutrition values rather than at a word.
Before any analysis begins, your preferences are handed to the model as context. When you then write “yoghurt with granola”, the ambiguous half of that sentence resolves to the tub in your fridge instead of a population average. No scanning, no picking from a list, no correcting the same entry every morning.
Two details matter. A preference influences which product is chosen; it never overrides an amount you stated. And it stays a suggestion: if you scan something else, the scan wins, because a barcode is the stronger source of truth.