Methodology

How DishReveal turns inputs into estimates.

Last updated: 25 July 2026

DishReveal combines published equations, deterministic nutrition maths and AI-assisted food recognition. A photo result is an editable estimate, not a measurement. The app shows assumptions and confidence so you can correct the entry before saving it.

Daily energy planning

DishReveal starts with the Mifflin-St Jeor equation. It uses age, height, weight and one of two biological calculation baselines selected during onboarding.

Resting energy estimate

Base = 10 × weight in kg + 6.25 × height in cm - 5 × age in years

Male baseline BMR = Base + 5

Female baseline BMR = Base - 161

BMR is a population-level estimate of resting energy expenditure. It is not a metabolic test and can differ from an individual's actual needs.

Activity multiplier

The BMR estimate is multiplied by the activity level selected during onboarding:

Estimated maintenance energy = BMR × activity multiplier

Activity categories are broad. Changes in training, work, sleep, illness and ordinary daily movement can make actual maintenance energy higher or lower.

Weight-change pace model

DishReveal uses 7,700 kcal per kilogram as a planning conversion. The selected weekly change is converted to a daily adjustment and added to estimated maintenance energy.

Daily adjustment = weekly change in kg × 7,700 ÷ 7

Raw daily target = estimated maintenance energy + daily adjustment

A weight-loss pace is represented by a negative weekly change, so it lowers the raw target. A weight-gain pace is positive. The 7,700 kcal conversion is a simplified planning model. Real weight change is not perfectly linear because water, glycogen, digestion, training and adaptation all affect scale weight and energy use.

Safety floors

The app prevents its unsupervised planning calculation from starting below:

If the raw calculation falls below the relevant floor, DishReveal raises the starting target to that floor and marks that the floor was applied. These are software guardrails, not personalised clinical recommendations. A floor does not prove that the target is suitable for you.

Calories and macros

DishReveal uses the standard 4/4/9 energy factors:

Calculated kcal = protein grams × 4 + carbohydrate grams × 4 + fat grams × 9

The onboarding plan offers four macro distributions by percentage of the energy target:

The app converts the protein and carbohydrate shares at 4 kcal per gram and the fat share at 9 kcal per gram, then rounds the gram targets. Rounding can make the displayed macro-derived total differ slightly from the raw daily target.

What each logging method means

Manual entry

DishReveal uses the values you enter. Their accuracy depends on the source and the serving amount you choose.

Nutrition-label scan

Text recognition runs on the device. Deterministic rules interpret energy, serving basis and macro rows. You confirm the recognised values and serving basis before saving. A clean label can still be misread, so compare the result with the package.

Barcode lookup

Barcode results come from Open Food Facts. DishReveal rejects incomplete records rather than presenting missing energy as zero, but community-maintained product data can still be outdated, incomplete or entered for a different package size.

Photo and text analysis

Gemini identifies visible foods, estimates metric grams and proposes separate items for likely oil, butter, dressing or sauce. A plate, cutlery, hand or package may be used as a scale cue when visible. A single photo cannot establish exact weight, recipe composition or cooking fat.

Checks applied to AI results

DishReveal validates the structured result before showing it:

These checks catch some internal inconsistencies. They cannot prove that the food identity, portion or hidden ingredients are correct.

Confidence and error bounds

The displayed confidence is a model-supplied signal used to show uncertainty. It is not a calibrated probability and is not a guarantee that a calorie value falls within a particular percentage of ground truth.

There is no universal per-photo error bound. Poor lighting, an obstructed plate, mixed dishes, restaurant recipes and invisible cooking fat can make an estimate wrong by more than 20%. Correct the food and portion before saving when you have better information.

DishReveal will not advertise an accuracy percentage until a dated evaluation on held-out real-world meals supports that exact claim. The internal release target is a real-world median calorie error of 20% or less, alongside separate red-team, latency, retry-rate and cuisine-group checks. A release target is not a promise about an individual meal.

Daily Health Score beta

The optional score is a log-balance signal, not a diagnosis or assessment of health. It appears only after at least one meal and at least one optional nutrient value have been logged.

Total sugar is displayed but not scored because ordinary labels do not reliably distinguish total sugar from free sugar.

General wellness limitation

All targets, projections, scores and AI outputs are general wellness estimates. They are not medical advice, diagnosis or treatment. Discuss individual nutrition needs, significant weight change, eating-disorder concerns, pregnancy, medication or a medical condition with a qualified health professional.

Read the privacy policy, terms of use, or email josh@kovus.dev.