Méthodologie & transparence

Plan nutritionnel : méthode & sources

Ce document décrit comment FormaFlow passe du profil utilisateur aux cibles (calories, macronutriments, pas), à la durée du plan, au poids cible, et comment le plan est recalculé au fil du temps. Il s’agit d’estimations issues de la littérature et d’heuristiques logicielles documentées dans le code : aucune promesse médicale.

À retenir. Transparence (règles traçables), sécurité par défaut (plafonds déficit/surplus, planchers caloriques, bornes), TDEE initial conservateur (BMR × 1,2), recalage sur les données réelles (poids, apports), puis ajustement par paliers pour conserver le rythme cible (step-down).

Section 1

Principes directeurs

PrincipeEffet côté utilisateur
TransparenceChaque grande règle renvoie à une référence ou une norme reconnue (voir bibliographie).
Sécurité par défautPlafonds de déficit/surplus, planchers caloriques, bornes de poids et de masse grasse.
BMR Katch–McArdleDès que la masse grasse est connue, estimation au repos préférée aux formules « poids seul ».
TDEE initial conservateurTDEE = BMR × 1,2 pour limiter la sur-estimation liée à l’auto-déclaration d’activité.
TDEE « réel » avec historiqueEstimation empirique à partir des apports et de la variation de poids (logique proche de MacroFactor).
Suivi dynamique (step-down)Le rythme (kg/semaine) est conservé ; à chaque palier on recalcule le déficit ou surplus pour le poids et la composition actuels.
Macros en cascadeProtéines (g/kg) → lipides (minimum santé) → fibres (densité + bornes) → glucides résiduels.
Open / implémentation

Code source & traçabilité

La référence d’implémentation est le fichier lib/nutrition-calculator.ts dans le dépôt applicatif FormaFlow : commentaires d’en-tête, libellés de sources par constante, et signatures des fonctions exportées (calculateNutritionPlan, refreshNutritionPlan, shouldRecalibratePlan, etc.).

Ce site marketing ne contient pas ce module ; la méthode publiée ici est alignée sur ce fichier. Pour une question précise sur le code ou l’audit : support@formaflow.app.

Section 2

Données d’entrée (profil)

Le calculateur s’appuie sur un profil typé (équivalent UserProfile dans le code) :

  • Objectif : perte de poids, prise de muscle, recomposition, maintien, performance.
  • Sexe, âge, poids (kg), taille (cm), % masse grasse : le %MG est requis pour le plan complet avec Katch–McArdle.
  • Niveau d’activité : sert notamment aux tiers de gain (proxy d’« expérience ») et au goal de pas ; il ne multiplie pas le BMR pour le TDEE initial du plan.
  • Optionnel : poids cible, durée du plan (mois). S’ils manquent, des fallbacks (% du TDEE, recommandation de poids) s’appliquent.

Une validation (validateUserProfile) impose des bornes réalistes (poids, taille, âge, %MG, durée, etc.) pour éviter des plans aberrants.

Section 3

Du profil au premier plan

Âge

calculateAge : âge révolu pour les tables de %MG cible et le objectif de pas.

BMR — Katch–McArdle (1973)

Masse maigre (kg) = poids × (1 − %MG / 100)

BMR = 370 + 21,6 × masse maigre

Précision relative à la calorimétrie indirecte, méta-analyses récentes en médecine du sport, et comparaison aux autres équations lorsque la composition est connue — voir commentaires dans le fichier calculateur.

TDEE — phase « formule »

TDEE = BMR × 1,2

Les facteurs d’activité type Harris–Benedict révisé restent exposés dans ACTIVITY_FACTORS pour l’affichage et la cohérence pédagogique, mais ne multiplient pas le BMR pour le TDEE initial du plan. L’objectif est de réduire le biais d’activité auto-déclarée ; le plan est pensé pour être recalé sur les mesures réelles (poids, apports).

Poids cible recommandé

calculateRecommendedWeightGoal : en perte, combinaison conservatrice entre une ancre IMC d’environ 22 (fourchette OMS) et la préservation de la masse maigre avec un %MG cible « santé » (tables documentées dans le code). Bornes : pas sous IMC 18,5, pas plus de −15 % de poids sur un cycle, etc. En prise de muscle : projection sur 12 mois selon sexe et niveau, plafonds +12 % du poids et IMC 27 ; si %MG déjà élevé, suggestion plus proche d’une recomposition.

Ajustement calorique du premier palier

calculatePersonalizedCalorieAdjustment : si poids cible et durée (mois) sont connus, rythme = (poids cible − poids actuel) / (mois × 4,345 semaines/mois), puis Δ kcal/j = rythme × 7700 / 7, avec plafonds typiques −500 kcal/j (déficit max) et +300 kcal/j (surplus max). Sinon, pourcentage du TDEE selon GOAL_ADJUSTMENTS, puis mêmes plafonds.

Garde-fouRôle
7700 kcal ≈ 1 kgConversion entre rythme de poids et ajustement énergétique quotidien.
−500 / +300 kcal/jPlafonds de déficit et de surplus pour limiter les extrêmes.
Planchers 1200 / 1500 / 1300Planchers caloriques selon le sexe (calories cibles après ajustement).

Macronutriments & fibres

calculateMacros applique l’ordre suivant : fibres (densité g/1000 kcal selon l’objectif, minimums métaboliques, plafonds ; énergie des fibres 2 kcal/g, FAO) ; protéines en g/kg (PROTEIN_G_PER_KG, références ISSN, méta-analyses protéines) ; lipides (max entre minimum g/kg et ~20 % des calories, références EFSA/ANSES et littérature RCT) ; en cas de dépassement, réduction en cascade (lipides → plancher, protéines → minimum ~1,6 g/kg, puis glucides) ; enfin glucides = calories restantes.

Pas quotidiens

calculateStepsGoal : base liée à l’âge (effet plateau, Ding et al. 2025, Lancet Public Health), modulations poids / activité / objectif, plage 5 000–15 000, arrondi par pas de 250.

Plan agrégé

calculateNutritionPlan assemble BMR, TDEE, calories cibles (avec plancher), macros, pas, ajustement quotidien vs TDEE, variation de poids hebdomadaire implicite, poids cible (explicite ou recommandé) et timeframe conservée.

Section 4

Durée, poids cible & cohérence

estimateTimeframes propose des durées en mois (agressif / standard / conservateur) pour rejoindre le poids cible : taux hebdomadaire en % du poids selon %MG (perte, ex. ISSN 2017, Helms 2014) ou selon sexe et niveau (gain, méta-analyses et sources pratiques citées dans le code), conversion en kg/semaine, puis plafond imposé par le déficit/surplus max en kcal. Les profils standard et conservateur appliquent des échelles (72 % et 50 %) du taux agressif après ce plafond. Durée = |Δpoids| / (kg/semaine × 4,345) avec monotonie forcée entre les profils.

Le poids cible définit la masse à parcourir ; la durée affichée, avec le poids actuel, fixe le rythme du premier segment. Les plafonds kcal garantissent qu’on ne dérive pas vers des déficits ou surplus extrêmes. Le suivi réel peut avancer ou retarder l’atteinte du poids : le moteur recalibre les calories pour tenir le rythme plutôt que de figer une erreur de formule initiale.

Section 5

Mise à jour du plan (paliers)

À partir d’un snapshot de progression (PlanProgressSnapshot: poids de départ, date de début, poids cible, durée initiale en mois), on conserve en général le rythme :

rythme (kg/sem) = (poids cible − poids départ) / (mois × 4,345)

En mode rattrapage (catchUp), le rythme est recalculé pour terminer dans le temps restant.

À chaque palier — refreshNutritionPlan

  1. Recalcul BMR / TDEE formule au poids et %MG actuels.
  2. Si un TDEE empirique plausible est disponible (plage typique 1000–6000 kcal), il remplace le TDEE formule.
  3. Δ kcal/j = rythme × 7700 / 7, plafonds et plancher calorique.
  4. Macros recalculées au nouveau poids (g/kg).
  5. Pas recalculés.
  6. Timeframe restante estimée à partir du rythme effectif et du Δ de poids restant.

Si l’objectif de poids est atteint (≈ ±0,5 kg) ou en maintien : cible = TDEE, ajustement 0, macros en mode maintien.

Quand recalculer — shouldRecalibratePlan

  • Premier plan → oui.
  • Adhérence inférieure à 40 % → non (signal trop bruité ; confiance graduée entre 40 % et 80 %).
  • Plateau signalé → oui.
  • Au moins 14 jours depuis le dernier palier → oui (filet).
  • Au moins 7 jours et (|Δpoids| ≥ 1 kg ou ≥ 1,5 % du poids de palier) → oui.
  • Sinon → trop tôt (bruit hydrique).

TDEE empirique computeEmpiricalTDEE / computeEmpiricalTDEEWeighted : moyenne d’apport sur au moins 14 jours avec correction Δpoids × 7700 / jours ; version pondérée avec EMA (demi-vie par défaut 7 j) sur apports et poids (trous imputés linéairement). Intègre implicitement NEAT, erreurs de journalisation et adaptation — d’où la comparaison à l’approche MacroFactor.

Courbe prédictive generateCaloriePath simule un chemin mois par mois en rappelant refreshNutritionPlan à chaque point pour les graphiques « évolution des calories cibles ».

Section 5 (suite)

Pente, plateau & pause diététique

computeWeightTrendEMA : imputation des trous, lissage EMA du poids, pente par régression sur la courbe lissée, écart-type des résidus comme indicateur de bruit.

detectPlateau (perte et recomposition) : adhérence minimale 60 %, fenêtres 21–28 jours, seuils de pente en % du poids / semaine ; référence nommée côté produit : StatPearls NBK576400.

shouldSuggestDietBreak : après au moins 8 semaines de déficit continu, suggestion (7 ou 14 jours selon la durée) ; si plateau confirmé, suggestion 14 jours — sources discutées dans le code (MATADOR ; Nutrition Reviews 2024).

Glossaire

TermeDéfinition
BMRMétabolisme de base (kcal/j au repos).
TDEEDépense totale estimée (kcal/j).
Déficit / surplusÉcart entre TDEE et calories cibles.
PalierRecalcul du plan après délai ou mouvement de poids significatif.
TDEE empiriqueTDEE déduit des apports réels et de la variation de poids.
Step-downRecalcul du déficit au nouveau poids pour garder le même kg/semaine.
Macro résiduelLes glucides absorbent les calories restantes après protéines, lipides et fibres.

Bibliographie & liens utiles

Libellés exacts et citations additionnelles figurent dans les commentaires de lib/nutrition-calculator.ts.

Liste consolidée (cliquer pour développer)
  • Katch & McArdle (1973)
  • Hall et al. (2011, Lancet) ; Hall (2012) — article 2011
  • Méta-analyse Sports Medicine (2023) — équations BMR et composition
  • ISSN Position Stand (2017) — PMC5470183
  • Helms (2014) — PMC4033492
  • Morton et al. (2018) ; revues systématiques protéines récentes
  • Lonnie et al. (2018) ; Burke / IOC (2011, 2021)
  • EFSA ; ANSES ; méta-analyses lipides RCT récentes
  • FAO/WHO ; IOM / AND (fibres)
  • Harvard Health ; Harvard Medical School ; NIH
  • InBody (2024) ; Healthline (références %MG idéal — contextualisation)
  • Ding et al. (2025, Lancet Public Health) — pas : article ; PubMed 40713949
  • StatPearls — plateau : NBK576400 ; limites de perte de poids : NBK603752
  • Nutrition Reviews (2024) ; essai MATADOR / Peos (2019)
  • Méta-analyse bayésienne hypertrophie (2025) — PMC11869894
  • BodySpec (2024) ; Aragon & Schoenfeld (2020) ; revues praticiens
  • GlobalRPH ; ExRx (rappels LBM / préservation — notes dans le code)
  • OMS — IMC : fiche OMS
  • MacroFactor v3 (2024) — inspiration logicielle (TDEE empirique, EMA, politique de paliers)

Avertissement

Les résultats sont des estimations nutritionnelles à visée éducative et d’accompagnement. Ils ne remplacent pas un avis médical, un diagnostic ou un suivi diététique personnalisé. Toute restriction prolongée, pathologie, grossesse ou traitement médicamenteux doit être discutée avec un professionnel de santé.

Liens du site