LN-001 · 2026-10-30 · open
Modelling Tenon Matcha from the ingredients up
The first end-to-end test of the ingredient → prep → build → menu data model, using one drink and placeholder values.
Hypothesis
If ingredients, preps, builds and menu products are separate records connected by reference, nutrition can be calculated automatically through the chain. A change to one ingredient should then propagate correctly to every drink that uses it, without re-entering a single number.
Method
We modelled one complete drink, Tenon Matcha, with placeholder values:
- Seven ingredients: water, ice, UniSoy, whey concentrate, soy protein isolate, ceremonial matcha and full-fat milk. Each declares nutrition per 100 g or per 100 ml, with a named source for every value.
- Three preps: the high-protein milk bases. Each states its inputs, yield, storage and procedure.
- One build: Tenon Matcha, hot and iced, with the milk base as an interchangeable slot. That gives six calculated variants.
- One menu product pointing at the build.
The data lives in plain text files in a public repository. Every record is checked against a JSON Schema and a set of cross-record rules before anything is calculated.
Results
- Changing the protein content of the whey propagates through both whey-based milk preps, the four affected drink variants and the menu product. The soy-only variants do not move.
- Doubling a prep doubles quantities, yield and totals while per-100 g values stay identical.
- Missing data is never treated as zero. A drink containing matcha (which has vitamin K data) and soy milk (which does not yet) reports vitamin K as a lower bound, not a total.
- Allergens and diet flags are derived. The soy-and-whey base can never be accidentally labelled plant-based.
Next
Replace the placeholders with real label data for each ingredient, measure the actual yields and densities at the bar, and enter the Singapore HPB reference intakes.
