01
Energy and macro targets
Mifflin–St Jeor basal rate scaled by activity level, adjusted for the goal and its rate, with sensible floors. Macro splits follow the goal type unless your product sets grams directly.
Nutrition Engine
A plan has to respect what someone cannot eat, hit calorie and macro targets, push on the nutrients they are short of, avoid what they rejected last week, and still not repeat itself for a fortnight. This is the part ONE does.
How it works
The engine resolves context into constraints, constraints into a candidate set, and the candidate set into a plan your product can present.
Person
Nutritional requirements
Allergies + restrictions + preferences
Nutrient priorities
ONE Nutrition Engine
Meal plans + recipes + substitutions + logging
Layered personalisation
Layers are applied in order. The earlier ones are absolute, the later ones are preferences — which is what stops a preference from ever overriding a safety rule.
ONE applies nutrition logic in layers — so personalisation stays safe, goal-aware and adaptable over time.
Goals
What is the person trying to achieve?
Calorie & macro targets
What targets support that goal?
Hard dietary requirements
What must never be included?
Micronutrient priorities
Which nutrients should receive additional focus?
Preferences
What does the person like or dislike?
History & variety
What have they eaten recently?
Personalised plan
What combination best satisfies the requirements?
Meet calorie, macro and micronutrient priorities while respecting hard dietary requirements.
Capabilities
Worth reading if you are comparing ONE against building in-house, because these are the specific behaviours that take the longest to get right.
01
Mifflin–St Jeor basal rate scaled by activity level, adjusted for the goal and its rate, with sensible floors. Macro splits follow the goal type unless your product sets grams directly.
02
Targets resolve against EU NRV, UK RNI or US DV depending on the tenant's market — or against a reference table you supply for a market we do not ship.
03
Diet archetype and allergens filter the candidate set before scoring begins, so an unsafe meal is never a near miss that a tie-break might select.
04
Macro bands, micronutrient floors, cuisine affinity and recent history are scored rather than enforced, so the planner returns the best feasible plan instead of failing.
05
Days are solved together, not independently. Without that, a fortnight of locally optimal days collapses into the same three dinners.
06
Alternatives come from substitution templates, your own substitution graph and food-group siblings, chosen to keep calories and protein close to the item they replace.
Targets
Give ONE demographics and a goal and it computes the numbers. Give it explicit targets instead and it uses those. Either way the planner optimises against the same structure.
Modes
The same profile can produce different plans depending on how much you let preferences bend. You choose the mode per request, per user or per tenant.
Preferences are held nearly as firmly as requirements. Fewer candidates survive, so the catalog needs depth.
The default. Requirements are absolute; preferences give way only when nothing else satisfies the targets.
Preferences yield early in favour of hitting nutritional targets. Useful for clinical or goal-driven products.
Transparency
When a user asks why they were offered something — or why they were not — the answer should not require reading solver logs.
Resolution reports whether a value came from the request, the profile, your tenant default or the platform default.
When a preference had to give way to hit a target, that is in the response rather than hidden inside the result.
Allergens and diet type are filters, not weights. No scoring path can trade them away.
Talk to the ONE by OSCA team about how personalised nutrition can fit your product roadmap — and how optional wearable data context can extend it when needed.
Product teams book a demo · Engineering teams explore the API and SDKs