module.exports = { slug: "bmr-mifflin-st-jeor", title: "Basal metabolic rate (Mifflin-St Jeor)", deck_category: "health", description: "Estimates resting basal metabolic rate in kcal/day from sex, weight, height and age using the Mifflin-St Jeor equation.", inputs: [ { name: "sex", type: "string", required: true, description: "Biological sex used by the equation", enum: ["male", "female"] }, { name: "weight_kg", type: "number", unit: "kg", required: true, description: "Body weight in kilograms", min: 0 }, { name: "height_cm", type: "number", unit: "cm", required: true, description: "Height in centimeters", min: 0 }, { name: "age_years", type: "number", unit: "years", required: true, description: "Age in years", min: 0 } ], outputs: [ { name: "bmr", unit: "kcal/day", description: "Estimated basal metabolic rate" } ], steps: [ "For males: bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age_years + 5.", "For females: bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age_years - 161.", "Round the result to the nearest whole kcal/day." ], constants: [ { name: "weight_coefficient", value: 10, unit: "kcal per kg", source: 0 }, { name: "height_coefficient", value: 6.25, unit: "kcal per cm", source: 0 }, { name: "age_coefficient", value: -5, unit: "kcal per year", source: 0 }, { name: "male_offset", value: 5, unit: "kcal", source: 0 }, { name: "female_offset", value: -161, unit: "kcal", source: 0 } ], sources: [ { kind: "doi", value: "10.1093/ajcn/51.2.241", title: "A new predictive equation for resting energy expenditure in healthy individuals", publisher: "American Journal of Clinical Nutrition, Mifflin MD, St Jeor ST, Hill LA, Scott BJ, Daugherty SA, Koh YO, 1990;51(2):241-247", retrieved_utc: "2026-09-30T19:05:00Z", note: "Source of the Mifflin-St Jeor coefficients used here." } ], disclaimer: "General formula only. Not medical advice. Dosing decisions belong to a licensed clinician and the product's label.", questionText(inputs) { return `What is the Mifflin-St Jeor basal metabolic rate for a ${inputs.age_years}-year-old ${inputs.sex} weighing ${inputs.weight_kg} kg and ${inputs.height_cm} cm tall?`; }, run(inputs) { const { sex, weight_kg, height_cm, age_years } = inputs; if (sex !== "male" && sex !== "female") throw new Error("sex must be male or female"); if (typeof weight_kg !== "number" || weight_kg <= 0) throw new Error("weight_kg must be a positive number"); if (typeof height_cm !== "number" || height_cm <= 0) throw new Error("height_cm must be a positive number"); if (typeof age_years !== "number" || age_years < 0) throw new Error("age_years must be a non-negative number"); const base = 10 * weight_kg + 6.25 * height_cm - 5 * age_years; const bmrRaw = sex === "male" ? base + 5 : base - 161; const bmr = Math.round(bmrRaw); return { answer: `${bmr} kcal/day`, values: { bmr } }; }, examples: [ { name: "worked example", inputs: { sex: "male", weight_kg: 80, height_cm: 180, age_years: 30 }, expected: { answer: "1780 kcal/day" }, check: "10*80 + 6.25*180 - 5*30 + 5 = 800 + 1125 - 150 + 5 = 1780." }, { name: "test vector: female", inputs: { sex: "female", weight_kg: 60, height_cm: 165, age_years: 40 }, expected: { answer: "1270 kcal/day" }, check: "10*60 + 6.25*165 - 5*40 - 161 = 600 + 1031.25 - 200 - 161 = 1270.25, rounds to 1270." } ] };