9 min read

How Deficit calculates your calories

Open any calorie calculator on the internet, punch in your stats, and you'll get a number. The result from MyFitnessPal, Cronometer, Calculator.net, and a dozen others will land within about 50 kcal of each other. They all run the same equation with slightly different defaults.

That equation, Mifflin-St Jeor, was developed in 1990 and fitted to a population of mostly sedentary American adults. It works for that population. It falls short for the people most likely to download a calorie app: trained gym-goers with above-average lean mass.

Deficit uses a different starting point and different calibration. For an average user, the output looks similar to standard calculators. For a trained user, the gap is meaningful. The full pipeline runs as follows.

The pipeline in one diagram

weight + body fat ─→ LBM ─→ BMR (Cunningham)
                                    │
                          activity (PAL) ─┐
                                          ├─→ TDEE
                                diet (TEF)─┘
                                          │
                          body fat → recommended deficit
                                          │
                                          └─→ Calorie Goal

Four levers: BMR formula, PAL multiplier, TEF multiplier, deficit factor. Most calculators expose two (BMR and a single activity multiplier). Deficit exposes all four because all four affect the final number.

Lever 1: the BMR formula

BMR (basal metabolic rate) is the calories your body burns at rest to keep organs running, blood circulating, and cells dividing. For most people it accounts for 60 to 70% of total daily energy expenditure.

What everyone else uses

Mifflin-St Jeor (men)   = 10×weight(kg) + 6.25×height(cm) − 5×age + 5
Mifflin-St Jeor (women) = 10×weight(kg) + 6.25×height(cm) − 5×age − 161

The inputs are total weight, height, age, and sex. What's absent is body composition. Mifflin-St Jeor doesn't know whether your 80 kg is mostly muscle or mostly fat. It treats both identically.

For an average-composition adult, that's fine. Total weight is a decent proxy for lean mass at population scale. For a trained individual, it breaks. An 80 kg lifter at 12% body fat has 70 kg of lean mass, while an 80 kg sedentary person at 28% body fat has 58 kg. Same Mifflin-St Jeor BMR, but their metabolic rates differ by 200+ kcal a day.

What we use

Cunningham = 500 + 22 × LBM(kg)

The Cunningham equation, published in 1980, uses lean body mass directly. Height, age, and sex aren't needed because lean mass is the physiological signal those proxies estimate. If you can measure lean tissue, you don't need the proxies.

For trained populations, Cunningham predicts measured RMR within ±10% in most studies. Mifflin-St Jeor consistently underestimates trained subjects by 5 to 15%. The gap is biggest for the people most likely to be running the numbers.

Why this matters in practice

Two men, both 80 kg / 178 cm / 30 years old, different body composition:

  • Person A: 24% body fat (untrained). LBM = 60.8 kg.
  • Person B: 12% body fat (3-year lifter). LBM = 70.4 kg.

Mifflin-St Jeor gives them both 1,768 kcal BMR. Cunningham gives Person A 1,838 kcal and Person B 2,049 kcal. The 280 kcal/day gap is a number Mifflin can't see. Stretched over an 8-week cut, that's about 16,000 kcal, or roughly 2 kg of lean mass Person B doesn't need to lose because his deficit isn't sitting on top of a too-low base.

Lever 2: PAL, the physical activity multiplier (calibrated, not generic)

BMR alone isn't your daily calorie burn. It's your "lying motionless in bed" burn. To get from BMR to total daily energy expenditure (TDEE), you multiply by an activity factor (PAL).

Standard PAL tables use multipliers from 1.2 (sedentary) to 1.9 (very active). Deficit uses a tighter range from 1.10 to 1.40. That looks wrong to anyone who's read a generic calculator's docs. It isn't wrong; it's calibrated for a higher BMR base.

The calibration argument

Cunningham gives a roughly 10% higher BMR than Mifflin-St Jeor for typical body composition. If you pair Cunningham (higher BMR) with the standard PAL range (1.2 to 1.9), the resulting TDEE is also about 10% higher than a Mifflin × standard-PAL TDEE. In practice, that means you're eating 200 to 400 extra calories a day in maintenance, and your "moderate cut" turns into "barely a deficit."

The fix is to drop PAL proportionally. Deficit's PAL buckets (1.10 sedentary, 1.20 lightly active, 1.30 moderately active, 1.40 very active) are scaled to fit Cunningham's higher base. The final TDEE prediction lines up with what a Mifflin × standard-PAL combo would return, but the underlying math is composition-aware.

This is also why comparing Deficit's TDEE number to a generic calculator's TDEE number is misleading. The comparison isn't about accuracy. It's between two calibration systems that land in the same neighborhood through different math.

Lever 3: TEF, the thermic effect of food

Most TDEE calculators have three steps: BMR, activity multiplier, deficit. They treat digestion as if it costs nothing.

It costs something. Digesting food burns 8 to 15% of the calories you eat. Protein costs the most (about 25% of its calories go to digestion), carbs sit in the middle (about 10%), and fat costs the least (about 3%). Whole foods cost more than ultra-processed equivalents. A high-protein, mostly home-cooked diet has a measurably higher TEF than a takeout-and-cereal diet of the same total calories.

Deficit folds TEF into TDEE as a multiplier:

Diet styleTEF multiplier
Convenience (takeout, delivery, ready-made)1.08
Home cooked (whole foods, lean protein, vegetables)1.10
Performance focused (very high protein and fiber)1.15

For the audience this app is built for, gym-goers eating high protein, TEF adds 10 to 15% on top of BMR × PAL. That's a real number. Ignoring it (as most calculators do) systematically under-estimates TDEE by that much.

Lever 4: the deficit, anchored on body fat instead of ambition

Once you have TDEE, you subtract a percentage to define the cut. The naïve approach is "pick a number you can stick to," usually 20% or 25%. That's fine, but it ignores what's safe and effective for a given body composition.

Deficit picks the recommended deficit using linear interpolation between body-fat anchor points, with different anchors for men and women:

Body fat (men) Recommended deficit Why
≤ 6%about 5%Very lean. Protect LBM at all costs.
15%about 20%Standard cutting target.
25%about 25%More fat, can sustain a deeper cut.
35%about 30%Significant fat to lose.
≥ 45%about 33%Aggressive but safe with proper protein.

Women's anchors are offset upward by about 8 percentage points (essential body fat is structurally higher), but the structure is the same: leaner → smaller deficit → more careful protection of lean mass.

The math is interpolation, not category bands. A user at 18% body fat (between the 15% and 25% male anchors) gets a recommendation partway between 20% and 25%, not a sudden jump at a category boundary.

The whole pipeline, end to end

For Person B from earlier (80 kg, 12% body fat, moderately active, home-cooked diet):

LBM       = 80 × (1 − 0.12)        = 70.4 kg
BMR       = 500 + 22 × 70.4         = 2,049 kcal
TDEE      = 2,049 × 1.30 × 1.10     = 2,930 kcal
deficit % = interpolate(12%, male)  = ~17.5%
factor    = 1 / (1 − 0.175)         = 1.212
goal      = 2,930 / 1.212           = 2,418 kcal/day

Plus a protein target anchored on lean mass:

protein = 70.4 × 2.2 = 155 g/day

Five inputs (weight, body fat %, sex, activity tier, diet style), one cohesive output (calories + protein). The formula doesn't use height, age, or any compensating fudge factors.

Then the algorithm takes over

The number above is a starting estimate. It's within about 10% for most people, but estimates can drift. The real test is what happens when you eat at it.

After the first week of tracking, the app compares your weight change to what the math predicted. If you lost more than expected, your real TDEE was higher than estimated, and the app raises your goal. If you lost less, the app drops it. The adjustment caps at ±10% of current goal per week, so the system can't over-correct on a single noisy data point.

Over 4 weeks, the adjustments converge on your actual TDEE. The starting number stops mattering and observed reality takes over. Cunningham vs Mifflin and the calibration argument matter most for week 1, when no data exists yet. Each week after, they matter less.

But week 1 matters a lot. It's when most people abandon the cut. Starting with a number that's 5 to 15% off from real means the deficit feels harsher than it should. Compliance drops, the algorithm never gets the clean signal it needs to adjust, and the whole pipeline runs off the rails before it has a chance to work.

Try the math yourself

Both calculators on the site run the same pipeline as the app:

  • Lean body mass calculator: walks through LBM → BMR → protein → cut goal end to end, with the deficit recommendation built in.
  • TDEE calculator: focused on the maintenance use case ("find your baseline"), with optional cut breakdowns at 15%, 20%, and 25%.

The calculators use the same numbers and the same calibration as the app. The difference is what happens after week 1: the app starts adjusting, and the calculator gives you the starting point.

Related: how Deficit works (every formula with its sources), and why logging gets easy after 3 days.

Try for free