123 Cal home

The research behind 123 Cal

How the estimates work, what the sources support, and where the app makes assumptions.

Last updated: 6 September 2026

123 Cal uses published equations alongside its own defaults to estimate energy needs, macronutrient targets and progress. This page describes the implemented rules. A citation supports the method or context identified beside it; it does not validate every number the app displays.

Medical disclaimer

123 Cal provides estimates and general nutrition information, not medical advice. It does not diagnose, treat or prevent medical conditions. Do not use it as a substitute for personalized medical care.

Ask a qualified healthcare professional before changing your diet, calorie intake or exercise plan, especially if you are under 18, pregnant or breastfeeding, have a medical condition, take medication that affects your nutrition needs, or have a history of disordered eating. The targets, meal estimates and goal dates may not suit your needs.

The app currently accepts ages 13 to 90, but its adult equations and BMI bands are not validated pediatric guidance. Accepting an age does not establish that a plan is appropriate. If you are under 18, ask a qualified healthcare professional for age-appropriate nutrition advice rather than following these adult targets.

BMI: an adult screening measure

BMI = weight in kg / (height in metres × height in metres)

The app converts height from centimetres to metres. It displays the conventional adult bands: below 18.5 underweight; 18.5 to below 25 healthy; 25 to below 30 overweight; 30 and above obese. These labels describe a screening category, not a diagnosis or a complete assessment of health. [1] [3]

BMI does not directly measure body fat or distinguish fat from muscle. Body composition and population differences affect its interpretation. Children and adolescents require age- and sex-specific assessment rather than these adult bands. [1]

App behavior: BMI is displayed separately. It does not feed into the calorie, macro or goal-date equations, and the app does not choose a goal weight to put you in a particular BMI band. The chart marker is limited to 15–40 for display, without changing the number or category. Nonpositive height returns zero as a code fallback, not a meaningful BMI.

Resting energy and estimated daily expenditure

The male and female resting-energy calculations use the simplified Mifflin–St Jeor equation. The original study involved healthy adults aged 19–78. It predicts resting energy expenditure, not a direct measurement of your metabolism. The app labels this estimate BMR. [2]

Resting kcal/day = 10 × weightKg + 6.25 × heightCm - 5 × ageYears + sex constant

The app then estimates total daily energy expenditure (TDEE):

TDEE = resting estimate × (activity factor + min(workouts per week × 0.02, 0.12))

App defaults: these category mappings and the additive workout allowance are assumptions, not outputs of the Mifflin paper. Workouts add up to 0.12 to the factor, not a measured number of calories. Activity categories may already include exercise, so the inputs can overlap. Your actual energy expenditure can differ from TDEE; eating that number does not guarantee a fixed weight.

Calorie goals, bounds and manual overrides

The Slow, Balanced and Fast presets correspond to 0.5, 1.0 and 1.5 pounds per week. They are app pace settings, not personalized promises. The daily adjustment is zero for maintenance, Int(-pace × 500) for loss and Int(pace × 350) for gain. Here pace is in pounds per week and Int truncates toward zero. A custom daily adjustment replaces the preset.

Historical adult weight-management guidance discusses approximate calorie deficits and weight-loss rates, including plateaus. It does not establish an exact rate for every person. [3] Sustained energy deficits and surpluses are relevant to weight and body-composition change, but outcomes also depend on adaptation and adherence. The app's gain coefficient of 350 does not predict muscle gain. [4]

Recommended calories = round(TDEE + daily adjustment), limited to the app's bounds

For the female setting, recommended targets are limited to 1,200–6,000 kcal/day. For male and Other, they are limited to 1,500–6,000. These bounds are app policy, not a safety guarantee or proof of adequate nutrition.

A manual calorie target replaces the recommendation. The editor allows 800–6,000 kcal/day, so a manual target can be below the recommended bounds. An accepted value is not an endorsement that it is safe. Very low intake can be inappropriate or harmful; seek professional advice rather than treating an editor limit as a minimum you should eat.

The adjustment editor permits a 200–1,000 kcal/day deficit or 100–700 surplus in steps of 50. Changing pace clears a custom adjustment but does not clear manual calorie or macro targets. The number used for tracking is the effective target: the manual value if present, otherwise the recommendation.

Projected goal dates: a rough linear estimate

The app treats a weight goal as active when the direction is not maintenance and the absolute difference between goal and current weight exceeds 0.2 kg. It calculates the date this way:

kg/week = (abs(daily adjustment) / divisor) × 0.4536
divisor = 350 for gain, otherwise 500
weeks = abs(goalWeightKg - weightKg) / kgPerWeek
goal date = today + round(weeks × 7) days

A date is shown only when the calculated rate exceeds 0.01 kg/week and there is an active weight goal. This is an app projection, not clinically validated and not a guaranteed arrival date.

Energy needs and weight change are not constant over time. [4] NIH's Body Weight Planner provides separate planning context and is intended for adults 18 and older, excluding pregnant or breastfeeding people. 123 Cal does not implement that planner's dynamic model; citing it does not validate our date formula. [6]

Protein, fat and carbohydrates

The app calculates these defaults in grams per day. round means nearest whole number (halfway values away from zero), so the displayed totals can differ slightly from the unrounded math.

The sports-nutrition review discusses about 1.4–2.0 g/kg/day of protein for exercising people. That population-specific context does not make 1.8 g/kg of goal weight appropriate for everyone. The choice and weight basis are 123 Cal defaults. [5]

The fixed 27% fat share lies within the adult fat-energy range of 20–35% discussed in the ISSN position stand. It is not a uniquely recommended percentage. The app does not constrain its final protein and carbohydrate shares to the adult ranges discussed in that paper. [4]

The calculations use 4 kcal/g for protein and carbohydrate and 9 kcal/g for fat. Each manual macro independently replaces its recommendation. Fat follows the effective calorie target; carbohydrate follows the effective calorie, protein and fat targets. Manual editor ranges are protein 30–400 g, carbohydrate 0–800 g and fat 10–300 g.

Independent overrides can make macro-derived energy disagree with the calorie target. Setting carbohydrate to zero when the remainder is negative does not fix excess energy from protein and fat. Neither the formula nor the editor checks your full nutritional needs.

Optional exercise credit

When Health sync and the exercise-budget option are both on, the app adds a credit based on today's active energy from Apple Health:

Credit kcal = round(min(max(0, activeEnergyToday - 300) × 0.5, 400))

The first 300 active kcal receive no credit. Half of the remainder is credited, capped at 400 kcal. Today's home-screen and widget calorie budget include this credit; past selected days do not receive today's credit.

App policy: the 300 kcal threshold, 50% fraction and 400 kcal cap are not validated by the sources below. Device estimates, incomplete Health data and overlap with the activity allowance can affect the result. This is not a measured net deficit or an instruction to eat back a precise amount of exercise energy.

How next-meal guidance is selected

General eating guidance: a useful food record includes what you actually ate and how much, not just the serving printed on a package. NIDDK distinguishes a chosen portion from a label serving; that label serving is not a personal intake recommendation. Its guidance also encourages attention to hunger and fullness, eating without distractions and regular meals rather than skipping meals and becoming very hungry later. These are general habits to consider alongside your circumstances, not evidence that a particular app target or meal score is right for you. [7]

After at least one logged meal, the app compares your logged totals with your targets. Displayed remaining calories and macros have a zero lower bound; the rules also keep the signed remainders. Fiber uses a fixed 25 g daily reference, not an individualized requirement.

The first matching rule wins, in this order. Percentage thresholds below are truncated to whole numbers in the code:

  1. Light: at most 250 kcal remain, or logged calories reach Int(target × 1.05).
  2. Low fat: a positive fat target exists and logged fat reaches Int(target × 0.90).
  3. Low carb: a positive carbohydrate target exists and logged carbohydrate reaches Int(target × 0.90).
  4. High protein: the protein remainder is at least max(30 g, Int(target × 0.30)).
  5. High fiber: at least two meals are logged and fiber is below 8 g.
  6. Balanced: none of the earlier rules matched.

These rules produce general prompts: include protein and vegetables, consider beans or berries when fiber is low, or choose a meal with less added fat or carbohydrate when near that target. The light-meal prompt suggests eating rather than skipping food. A low-carb label is a meal-selection rule, not a ketogenic or therapeutic diet prescription.

Each focus selects a predefined group from a fixed meal library, ranks that group and returns three suggestions. The first-meal and evening headlines change the wording, not the nutrition model.

Exact meal-ranking defaults

Lower scores rank first; ties sort by meal ID. The starting score is abs(meal calories - budget) / budget, where budget = max(remaining calories, 250).

  • Add 2 if the signed calorie remainder is positive and meal calories exceed it by more than 150.
  • For high-protein focus, subtract meal protein grams divided by 100.
  • For low-fat focus, or a signed fat remainder of at most 5 g, add meal fat grams divided by 20.
  • For low-carb focus, or a signed carbohydrate remainder of at most 10 g, add meal carbohydrate grams divided by 60.
  • For high-fiber focus, subtract meal fiber grams divided by 20.

App heuristics: the 25 g reference, 8 g cutoff, priority order, percentage thresholds, meal groups and ranking weights are hand-set product rules. The cited literature does not validate this algorithm or its meal-library nutrition estimates. Suggestions are not individualized care from a dietitian and are not a check for allergies, medical conditions or complete nutrient adequacy.

Photo, description and barcode nutrition

Photo and typed or spoken meal descriptions are estimated by an AI model. Portions, ingredients and preparation can be misidentified. The displayed uncertainty range is checked for ordering, but is not statistically calibrated: it is not a confidence interval or a guarantee that the true value lies inside it.

Barcode lookups use Open Food Facts, a separate crowd-sourced product database licensed under the Open Database License (ODbL). Check the product, serving size and label. Food estimates and database entries can be incomplete or wrong; correct your entries when you have better information. The BMI and nutrition papers below do not establish scanner accuracy. Do not use scan results for medical or allergen-related decisions.

What these estimates cannot tell you

The app does not measure your metabolism, validate the safety of a manual target, predict an exact weight-change date or assess all of your dietary needs. Motivational selections such as mood, focus and energy do not create separate nutrition formulas. Adult research cannot establish suitable plans for children or adolescents.

Published methods, sports-nutrition context and app defaults are identified separately here. This page does not claim clinical validation, guaranteed accuracy or registered-dietitian review. Do not use the adult targets for a child or adolescent, treat a low accepted calorie value as safe, or restrict food to meet a projected date. If a target conflicts with your health needs or professional advice, do not follow it; ask for an individualized plan.

Sources

Read these for the specific methods and context cited above. Older publications are identified by year; they are not presented as the latest clinical guidance. No source below endorses 123 Cal.

  1. Physiology, Body Mass Index. Zierle-Ghosh A, Jan A. StatPearls. 2023 update.
  2. A new predictive equation for resting energy expenditure in healthy individuals. Mifflin MD et al. American Journal of Clinical Nutrition. 1990.
  3. Clinical Guidelines on the Identification, Evaluation, and Treatment of Overweight and Obesity in Adults: The Evidence Report. NIH / NHLBI. 1998.
  4. International society of sports nutrition position stand: diets and body composition. Aragon AA et al. Journal of the International Society of Sports Nutrition. 2017.
  5. ISSN exercise & sports nutrition review update: research & recommendations. Kerksick CM et al. Journal of the International Society of Sports Nutrition. 2018.
  6. Body Weight Planner. NIH / NIDDK. Online tool (accessed September 2026).
  7. Food Portions: Choosing Just Enough for You. NIH / NIDDK. Online guidance (accessed September 2026).

Questions or corrections?

Contact Bogdan Dzhelmach at support@123cal.app about the app or this explanation. For personal health decisions, contact a qualified healthcare professional.


123 Cal · Privacy Policy · Terms of Use · Research and sources