Calorie estimation

Adaptive Nutrition Estimation

A recursive estimation system designed to infer maintenance calories (TDEE) from noisy bodyweight and intake data.

What this system does

  • Estimates your maintenance calories (TDEE) based on your real-world progress.
  • Analyzes bodyweight trends using smoothing to filter out daily noise.
  • Updates weekly targets conservatively to avoid overreacting to fluctuations.
  • Provides an uncertainty range based on the consistency of your logged data.

What it does NOT do

  • It is not a replacement for metabolic testing or medical advice.
  • It cannot predict weight change with 100% precision due to individual variability.
  • It does not account for illness, travel, or extreme stress unless reflected in your logs.

How it works: Bayesian Recursive Estimation

Instead of relying on static formulas like Mifflin-St Jeor—which research shows can be significantly off for individuals—Train Libre treats your metabolism as a dynamic "hidden state".

The app uses a Bayesian-inspired recursive estimator (similar to a Kalman filter). Every week, it compares its prediction (based on your intake) with the actual weight trend. It then calculates the "gain"—deciding how much to trust the new data versus the previous estimate.

To handle the "noise" of water retention and glycogen shifts, the system uses a 7-day confirmation rule for goal changes and a phase-dependent scaling factor for energy density (kcal/kg).

Uncertainty & Interpretation

Daily scale weight is high-noise data. Factors like sodium intake, hydration, and muscle glycogen can cause shifts of several kilograms that do not represent changes in body tissue.

Trend vs. Noise: The algorithm prioritizes the long-term trend. This means it may feel slow to respond to rapid, short-term changes.
Logging Consistency: The precision of the estimate depends entirely on the consistency of your logs. Sparse data will result in wider uncertainty ranges.
Stabilization: During the first 2-4 weeks, the system relies on profile "priors". It becomes significantly more accurate once it has sufficient user-specific history.