Evidence & safety

How FitBuddy calculates
health targets

The numbers are calculated deterministically on your device. Repeated body and nutrition history can support one small, bounded alternative. AI can choose only between exact candidates created by the app; it cannot invent or edit a target.

Last evidence review: 11 September 2026.

Calculation at a glance

  1. Validate that the profile is within the adult calculator’s safety scope.
  2. Estimate resting energy from age, height, weight, and sex.
  3. Apply the full-day activity level used for this proposal.
  4. Apply a bounded deficit, maintenance target, or bounded surplus for the goal.
  5. Calculate protein, fat, and carbohydrate inside adult distribution ranges.
  6. Optionally inspect quality-gated repeated readings and food-log coverage.
  7. Show every candidate and its evidence before the user applies it.

FitBuddy always creates the normal formula candidate. It creates at most one trend-adjusted candidate, and only when all consistency and adherence gates pass. No smart scale and no AI provider are required for the standard calculation.

Weight context, not an “ideal weight”

There is no scientifically valid universal ideal weight. BMI is a population screening tool, not a diagnosis or an individualized prescription. FitBuddy shows the adult BMI range of 18.5–24.9 only as context and suggests a scale target only when it can serve as a defensible first milestone.

SituationMilestone behavior
Weight loss at BMI 25 or above Up to 5% below current weight, without crossing below the upper healthy-BMI boundary.
Gain goal below BMI 18.5 The lower healthy-BMI boundary is shown as a milestone; professional guidance is encouraged.
Healthy-range muscle gain or recomposition No scale target is invented. A manual target remains available.

Suggested milestones are rounded to 0.5 kg to avoid false precision. The 5% loss milestone is a first checkpoint associated with possible improvement in health markers, not a universal endpoint or a requirement to reach a particular BMI.

Baseline energy calculation

1. Resting energy

FitBuddy uses the Mifflin–St Jeor equation. Weight (w) is in kilograms, height (h) in centimetres, and age (a) in years.

Profile valueResting estimate (kcal/day)
Male10w + 6.25h − 5a + 5
Female10w + 6.25h − 5a − 161
Not provided10w + 6.25h − 5a − 78, the midpoint of the two constants

This estimates resting energy; it is not a measurement of metabolism.

2. Full-day activity

The resting estimate is multiplied by the activity level used for the proposal:

LevelFactorMeaning
Sedentary1.2Mostly seated with little planned exercise
Lightly active1.375Mostly seated plus light exercise about 1–3 days/week
Moderately active1.55Moderate exercise about 3–5 days/week or an active routine
Active1.725Hard exercise about 6–7 days/week or a physical job
Very active1.9A strenuous job plus hard training or frequent two-a-days

estimated maintenance = resting estimate × activity factor

3. Goal adjustment

GoalAdjustment
Weight loss15% deficit, bounded to 250–500 kcal/day
Body recompositionEstimated maintenance
Muscle gain8% surplus, bounded to 150–300 kcal/day

The result is not set below 1,200 kcal/day without supervision and is rounded to the nearest 50 kcal. The recommendation window shows the resting estimate, activity factor, estimated maintenance, goal adjustment, formula target, optional trend step, and final target separately.

The activity factor already includes average exercise. Logged workout calories stay visible but are not credited back 1:1, avoiding exercise double counting and reducing sensitivity to uncertain calorie-burn estimates. Reassess the starting estimate against a consistent 2–4 week weight trend.

Selected versus workout-suggested activity

The activity selector represents typical overall movement: planned workouts, daily movement, and physical work. When a user requests a target recommendation, FitBuddy also reviews the current 28-day workout window. It normalizes workout days, session count, and duration to weekly values. Estimated exercise calories are not used for this recommendation.

Suggested levelWeekly workout evidence
Very activeAt least 6 workout days and 9 sessions and 600 minutes
ActiveAt least 6 workout days or 300 minutes
Moderately activeAt least 3 workout days or 150 minutes
Lightly activeAt least 1 workout day or 60 minutes
SedentarySome workout history exists but remains below those thresholds

Thresholds are evaluated from very active downward. When a valid suggestion exists, the proposal is recalculated with the workout-suggested level before it is displayed. The dialog explicitly identifies that level, its factor, and the supporting workout totals. If the user chooses Use current, FitBuddy rebuilds the whole proposal with the manually selected level before saving it.

With no workouts in the window, there is no workout suggestion and the selected level is preserved. Workout logs cannot observe a physical job, walking, workout intensity, or unlogged exercise, so users should keep the selected level when it better reflects their typical life.

Macronutrient calculation

Protein begins from body weight and the selected goal/activity context. “Active” here means moderately active, active, or very active.

GoalBelow moderate activityModerate activity or above
Weight loss1.4 g/kg1.6 g/kg
Muscle gain1.4 g/kg1.6 g/kg
Recomposition1.2 g/kg1.6 g/kg
  • At BMI 30 or above, protein dosing weight is capped at the weight corresponding to BMI 30.
  • Protein is constrained to 10–30% of target energy.
  • Fat is set near 25% of energy.
  • Carbohydrate fills the remaining energy.
  • Four kcal/g are used for protein and carbohydrate; nine kcal/g for fat.

Existing calculated targets are normally kept stable unless calories differ by at least 150 kcal or protein differs by at least 20 g. The quality-gated 100 kcal trend step is the explicit exception. Placeholder, non-positive, energy-inconsistent, or out-of-range macros are recalculated rather than preserved.

AI boundary, privacy, and offline behavior

WhereWhat happens
Always on-device Profile validation, BMI context, energy arithmetic, activity analysis, trend processing, quality gates, candidate numbers, safety bounds, and macro validation.
Optional AI provider When configured and requested, the fields listed below and each complete local candidate may be sent so AI can select one exact candidate ID and write a short regional coaching note.
No AI or provider failure The calculation still works. FitBuddy uses the deterministic local default: the trend candidate when valid, otherwise the formula candidate.

An optional target-selection request can contain:

  • Age, sex, height, current weight, selected activity level, and goal.
  • Current calorie and protein targets.
  • Aggregated workout, body-trend, composition-trend, and nutrition-coverage evidence.
  • Each complete locally generated candidate: its ID, calories, macros, target weight, recommended activity, and bounded adjustment.

Raw individual body-reading rows and the full food-log history are not included in this request. The provider receives the aggregates above. Its retention rules apply.

AI does not generate calorie or macro numbers for this feature. The repository accepts only an exact candidate ID that the app generated locally. Unknown IDs, malformed responses, timeouts, and provider failures fall back to the local default. If a valid candidate ID arrives with invalid coaching text, the text is discarded while the valid selection remains. AI cannot bypass local floors and bounds.

Profile data, raw body readings, food logs, and saved targets remain in the local database. See Privacy for the complete data boundary.

Limits and safety scope

  • Automated targets are available only for adults age 18 or older.
  • Children and adolescents need age- and sex-specific growth assessment.
  • Pregnancy and breastfeeding are outside the calculator’s scope.
  • Medical conditions, prescribed diets, eating-disorder history, and elite sport require individualized professional advice.
  • BMI is screening context, not a diagnosis.
  • Mifflin–St Jeor is a practical starting estimate; individual error can be material.
  • Athlete-specific equations or measured resting energy may be preferable for competitive athletes.
  • Workout history is incomplete evidence of total daily expenditure.
  • Smart-scale composition is noisy and used only as supporting trend evidence.

Recommendations are planning estimates, not medical advice. FitBuddy encourages reassessment from consistent real-world trends rather than treating one calculated number as permanent or exact.

Previous method and correction

An earlier FitBuddy method asked an LLM to perform target arithmetic, used a fixed 1.0 g/kg weight-loss protein rule, could imply unsupported target-weight precision, and combined a full activity factor with exercise calorie subtraction. That could double count exercise.

The current method moves arithmetic and safety bounds into deterministic app code, uses goal/activity-aware protein, treats BMI only as context, avoids 1:1 exercise credit-back, and permits only quality-gated repeated-reading feedback. AI remains optional and constrained to selecting an exact local candidate plus coaching text.

Evidence used

Source material was summarized and rephrased; links are provided for verification.

Continue with the beginner guide · Review Privacy · Inspect the source code