CalFitness does not provide medical advice. Every number in the app is a general estimate produced by the published formulas below, not a clinical measurement or a personalised recommendation. Estimates can be wrong for any individual. Consult a qualified health professional before making significant changes to your diet, exercise or medication — especially if you are pregnant, under 18, or managing a medical condition such as diabetes or an eating disorder.
Resting metabolic rate (RMR)
CalFitness estimates the energy you burn at rest using the Mifflin-St Jeor equation, from your sex, weight, height and age:
RMR = (10 × weight in kg) + (6.25 × height in cm) − (5 × age in years) + s
where s = +5 for male, −161 for female, −78 when sex is unspecified or non-binary
Where measured RMR is unavailable, Endotext cites Mifflin-St Jeor as the most accurate practical estimate for many adults, while noting that error for any individual remains possible.
Source: Endotext — Obesity: Evaluation and Treatment, NCBI Bookshelf
The −78 value used when sex is unspecified is a midpoint between the published male and female constants. It is a CalFitness convention, not part of the original equation.
Activity factor and maintenance calories
Your RMR is multiplied by a physical activity factor to estimate the calories needed to maintain your current weight. Endotext recommends multiplying RMR by an appropriate activity factor for maintenance.
Maintenance calories = RMR × activity factor
| Activity level | Male | Female | Unspecified |
| Sedentary | 1.00 | 1.00 | 1.000 |
| Low active | 1.11 | 1.12 | 1.115 |
| Active | 1.25 | 1.27 | 1.260 |
| Very active | 1.48 | 1.45 | 1.465 |
Source: Endotext — Obesity: Evaluation and Treatment, NCBI Bookshelf
Your daily calorie target
The daily target adjusts maintenance calories according to your selected goal:
| Goal | Adjustment | Basis |
| Lose weight | −500 kcal/day | Endotext describes a calculated energy deficit for weight loss; 500 kcal/day is a common starting deficit. |
| Maintain | 0 kcal | Maintenance calories as estimated above. |
| Gain muscle | +10% of maintenance | A deliberately conservative CalFitness heuristic, not a figure taken from a specific guideline. It should be adjusted using your real weight trend. |
If you set a custom percentage adjustment in the app, it replaces the defaults above and is clamped to ±30% of maintenance. Every target is then floored at 1,200 kcal/day and rounded to the nearest whole calorie.
Daily target = round( max( 1200, maintenance + adjustment ) )
Source: Endotext — Obesity: Evaluation and Treatment, NCBI Bookshelf
The 1,200 kcal floor is a safety guard in the software, not a recommendation that 1,200 kcal is appropriate for you. Very-low-calorie intakes should only be undertaken with medical supervision.
Protein, carbohydrate and fat targets
Protein is scaled to your body, not to your calories
Protein is worked out first, from your body mass, and the other two macros divide what is left. It is set as a floor: if you choose a macro split that asks for more protein, you get more; a split that asks for less does not lower it.
Protein (g) = body weight (kg) × multiplier
…or, when a body-fat measurement is available:
Protein (g) = lean body mass (kg) × multiplier
The multiplier rises with the depth of your calorie deficit, and — where lean body mass is known — with how lean you already are:
| Situation | Per kg body weight | Per kg lean mass |
| Maintaining or gaining | 1.6 g | 2.0 g |
| Mild deficit | 1.8 g | 2.4 g |
| Deficit of 25% or more | 2.4 g | 3.0 g |
| Same, and already lean | — | 3.3 g (max 4.0) |
Why it works this way. Protein used to be a fixed percentage of your calorie target. That made the protein target fall whenever the calorie target fell — so choosing a faster rate of loss reduced your protein, and it kept reducing over the course of a diet as you lost weight. The evidence points the other way: protein requirements rise as a calorie deficit deepens and as body fat drops, because there is less stored energy available to spare muscle tissue. Anchoring protein to body mass fixes that direction.
Sources: International Society of Sports Nutrition position stand: protein and exercise (Jäger et al., 2017) — 1.4–2.0 g/kg/day for active people, with higher intakes indicated in a hypocaloric state to preserve lean mass. Helms et al. (2014), International Journal of Sport Nutrition and Exercise Metabolism 24(2), 127–138 — 2.3–3.1 g/kg of fat-free mass for energy-restricted, resistance-trained people.
Carbohydrate and fat
Whatever protein leaves is divided between carbohydrate and fat in the ratio your split specifies, converted to grams at 4 kcal/g for carbohydrate and 9 kcal/g for fat. At least 20 g of fat per day is always reserved: a very low fat intake during rapid weight loss is associated with gallstone formation, because bile that is never called for sits and thickens.
The default split depends on your goal:
| Goal | Protein | Carbohydrate | Fat |
| Lose weight | 40% | 30% | 30% |
| Maintain | 30% | 40% | 30% |
| Gain muscle | 30% | 45% | 25% |
The protein column of these defaults is a starting suggestion for the editable split; the body-mass floor above is what actually sets your protein target unless you raise it yourself.
The Dietary Guidelines for Americans describe Acceptable Macronutrient Distribution Ranges (AMDR) of protein 10–35%, carbohydrate 45–65% and fat 20–35% of calories.
Where CalFitness departs from the Dietary Guidelines: the weight-loss and muscle-gain presets set protein higher, and carbohydrate lower, than the AMDR ranges. This is a common sports-nutrition practice, not a Dietary Guidelines recommendation. Every split is fully editable in the app, and you can set one that sits inside the AMDR ranges if you prefer.
Source: Dietary Guidelines for Americans — ODPHP, U.S. Department of Health and Human Services
Fiber target
The daily fiber target follows the Dietary Guidelines recommendation of 14 g of dietary fiber per 1,000 kcal consumed, then held within the 25–35 g per day range commonly recommended for adults.
Fiber (g) = (target kcal ÷ 1000) × 14, held between 25 g and 35 g
The floor matters on a low calorie target. The per-1,000-kcal rule alone would ask for 20 g at a 1,400 kcal target and less again as the target falls — but eating less food is the situation in which fiber is hardest to reach and most useful, both for regularity and for feeling full.
Source: Dietary Guidelines for Americans — ODPHP
BMI and the suggested starting goal
During onboarding, CalFitness computes body mass index and uses the CDC category to suggest a starting goal. The suggestion is only a default — you can pick any goal.
BMI = weight in kg ÷ (height in m)²
| CDC adult category | BMI | Goal CalFitness suggests |
| Underweight | Below 18.5 | Gain |
| Healthy weight | 18.5 to below 25 | Maintain |
| Overweight | 25 to below 30 | Lose |
| Obesity | 30 or greater | Lose |
The CDC describes BMI as a screening measure, not a diagnosis, that should be considered alongside other health factors. Body composition, health history, waist measurement and clinician guidance can all change what goal is appropriate for you.
Source: Adult BMI Categories — Centers for Disease Control and Prevention
Where food calorie and macro data comes from
Nutrition values for foods in CalFitness come from the published databases below. When more than one database describes the same food, CalFitness prefers the higher-quality source in the order shown.
| Source | What it covers | Publisher & licence |
IFCT 2017 Preferred first |
Indian Food Composition Tables — laboratory-analysed composition for Indian ingredients, per 100 g edible portion. |
ICMR — National Institute of Nutrition, India |
| USDA FoodData Central |
Generic and standard-reference foods analysed or compiled by the USDA. |
U.S. Department of Agriculture — public domain |
| INDB |
Indian Nutrient Databank — 1,014 commonly-consumed Indian cooked dishes, per 100 g edible portion. |
Indian Nutrient Databank (Jaacks et al.) |
Recipes Calculated, not measured |
Indian dishes whose nutrition is computed by resolving each ingredient line to an IFCT/USDA/INDB food and summing the resolved ingredients. Recipe text from Archana's Kitchen Indian Food Dataset. |
Nutrition derived by CalFitness from the sources above |
| Open Food Facts |
Crowd-sourced packaged and branded products, largely transcribed from package labels. |
Open Food Facts — data licensed under ODbL v1.0 |
| USDA Branded Foods |
Manufacturer-supplied label data for branded products. |
U.S. Department of Agriculture — label data supplied by manufacturers |
| Foods you create |
Foods, recipes and combos you enter yourself, visible only to you unless you publish them. |
Entered by you |
Attribution
Food data from Open Food Facts is made available under the Open Database License (ODbL) v1.0. Individual contents of the database are available under the Database Contents License. USDA FoodData Central data is in the public domain.
How confident is a given food?
Each food carries a confidence level reflecting how it was obtained. Laboratory-analysed composition tables (IFCT, USDA) rank highest; label transcriptions and crowd-sourced entries rank lower; calculated recipes are only published when resolved ingredients account for a sufficient share of the dish's mass, so a dish whose main ingredient could not be identified is never published.
Known limits and how to correct them
- Predictive equations carry individual error. Mifflin-St Jeor estimates a population average. Your true RMR can differ meaningfully, and no equation can detect that from height, weight, age and sex alone.
- Activity factors are self-reported. They depend on you picking the level that matches your real week.
- Label and crowd-sourced values vary. Packaged-food data reflects what a manufacturer printed or a contributor transcribed, and can be out of date or wrong.
- Cooked-dish values are averages. Composition tables and calculated recipes describe a typical preparation, not the specific portion you ate.
- The best correction is your own trend data. If your weight is not moving as the estimate predicts after a few consistent weeks, adjust your target in the app rather than trusting the initial estimate.