{
  "schemaVersion": 1,
  "slug": "bmr-calculator",
  "category": "health",
  "kind": "implementation",
  "independentValidation": false,
  "implementationHash": "0923cbbbcfb6d261a04e72256751fdde8f57eb46f5571f08a89142b3c7f419a1",
  "provenance": "Generated from the calculation contract used by the published page. Publication is not external validation.",
  "sourceFiles": [
    "data/calculators/bmr-calculator.json",
    "src/engine.js"
  ],
  "runtimeSource": "/sources/engine.txt",
  "runtimeHash": "5c888d8898afbdee36267bb9977829e1e2ac568f6677c8ee87469c139864645c",
  "scope": "The compute function records implemented equations, constants, lookup tables and custom rules. Inputs record defaults and allowed values; outputs record precision and units. Defaults are examples, not recommendations. General background references are not evidence for this specific algorithm.",
  "publishedFormula": {
    "formula": "BMR = 10w + 6.25h − 5a + c; c = 5 (♂) | −161 (♀)",
    "vars": [
      [
        "w",
        "Weight (kg)"
      ],
      [
        "h",
        "Height (cm)"
      ],
      [
        "a",
        "Age (years)"
      ],
      [
        "c",
        "Sex constant (5 male, −161 female)"
      ],
      [
        "BMR",
        "Basal metabolic rate (kcal/day)"
      ]
    ],
    "note": "Mifflin–St Jeor equation; height must be in centimetres and weight in kilograms."
  },
  "externalEvidence": {
    "reviewedAt": "2026-10-04",
    "sources": [
      {
        "name": "Mifflin et al. (1990) — Resting energy expenditure",
        "url": "https://pubmed.ncbi.nlm.nih.gov/2305711/"
      }
    ],
    "basis": "Uses the rounded Mifflin–St Jeor equation: 10W + 6.25H - 5A + 5 for the male option, or -161 for the female option; W in kg, H in cm and A in years.",
    "limitations": "A population prediction of adult resting energy needs, not a measured metabolic rate or an individual dietary prescription.",
    "implementationHash": "0923cbbbcfb6d261a04e72256751fdde8f57eb46f5571f08a89142b3c7f419a1",
    "domain": "health"
  },
  "contract": {
    "compute": "const base = 10 * weight + 6.25 * height - 5 * age; return { bmr: sex === 'male' ? base + 5 : base - 161 };",
    "inputs": [
      {
        "name": "weight",
        "type": "number",
        "default": 70,
        "min": 1,
        "max": 500,
        "step": 0.1,
        "slider": true
      },
      {
        "name": "height",
        "type": "number",
        "default": 170,
        "min": 50,
        "max": 250,
        "step": 0.5,
        "slider": true
      },
      {
        "name": "age",
        "type": "number",
        "default": 30,
        "min": 19,
        "max": 120,
        "step": 1,
        "slider": true
      },
      {
        "name": "sex",
        "type": "select",
        "default": "male",
        "options": [
          {
            "value": "male"
          },
          {
            "value": "female"
          }
        ]
      }
    ],
    "outputs": [
      {
        "name": "bmr",
        "precision": 0,
        "unit": "kcal/day"
      }
    ],
    "interpret": null
  }
}
