Methodology

Every number this app shows you is either a published equation, a third-party data source, or an AI estimate — clearly which, and clearly sourced, below.

Last reviewed

Key facts at a glance

BMR formulaMifflin-St Jeor equation (1990)
Activity multiplier range×1.2 (sedentary) to ×1.9 (extra active)
Default macro split30% protein / 40% carbohydrate / 30% fat
Weekly rate safety limit±1 kg per week maximum
Minimum daily calorie target1200 kcal/day
AI meal estimate sourceGoogle Gemini, prompted with USDA reference data
Barcode product data sourceOpen Food Facts
Named food nutrition data sourceUSDA FoodData Central

Basal metabolic rate (BMR)

BMR is calculated with the Mifflin-St Jeor equation (Mifflin MD, St Jeor ST, et al., Am J Clin Nutr, 1990), using weight in kilograms, height in centimetres, and age in years:

Male10w + 6.25h − 5a + 5
Female10w + 6.25h − 5a − 161

Mifflin-St Jeor is used rather than the older Harris-Benedict equation because it is generally regarded as more accurate for modern populations. When a user does not specify a sex, the midpoint of the two constants (−78) is used — an explicit approximation, not a third published form of the equation.

Total daily energy expenditure (TDEE)

TDEE is BMR multiplied by an activity factor:

Activity levelMultiplier
Sedentary — Desk job, little or no deliberate exercise×1.2
Lightly active — Light exercise 1–3 days a week×1.375
Moderately active — Moderate exercise 3–5 days a week×1.55
Very active — Hard exercise 6–7 days a week×1.725
Extra active — Physical job, or training twice a day×1.9

Daily calorie target

The target adjusts TDEE for a stated goal. With no specific rate given, the app uses the conventional −500 kcal/day to lose weight or +300 kcal/day to gain weight. A user may instead set a specific weekly rate, which is converted to a daily calorie delta using 7,700 kcal ≈ 1 kg of body mass.

Safety limit: a stated weekly rate is clamped to a maximum of 1 kg per week in either direction, and the resulting daily target is never allowed below 1200 kcal/day regardless of input. Both limits are enforced in code, not just stated here — a user cannot configure their way past them.

Macro split

The default macro split is 30% protein / 40% carbohydrate / 30% fat of total calories, converted to grams using the standard Atwater factors: 4 kcal per gram of protein and carbohydrate, 9 kcal per gram of fat. This split can be overridden manually inside the app.

Photo and text meal estimates

When you photograph a meal or describe it in words, the estimate is produced by a large language model (Google Gemini) prompted to reference USDA nutrition data and standard serving sizes. This is a genuine limitation worth stating plainly: a model estimating portions from a photo cannot see what is under the surface of a dish, and cannot see oil or butter used in cooking. Every estimate is editable before it is saved, and is intended as a fast starting point — not a laboratory measurement.

Barcode-scanned products

Packaged food data comes from Open Food Facts, a free, open, collaboratively-maintained product database. Values are as reported by that database at the time of the scan and reflect manufacturer labelling; they are not independently verified by Calories Journal.

Food nutrition data

Calorie and macro figures for specific common foods — separate from the AI meal estimates above — are sourced individually from USDA FoodData Central, with each figure linked to the exact entry it came from. Browse the food facts pages.

What this is not

None of the above is medical or clinical advice, and Calories Journal has not been reviewed by a physician or registered dietitian. See the full disclaimer before making significant changes to how you eat.