{
  "schemaVersion": 1,
  "slug": "pancake-recipe-calculator",
  "category": "cooking",
  "kind": "implementation",
  "independentValidation": false,
  "implementationHash": "dfe5fdf8bc612f37cecb2fab1e5846faaa7ec850a878992efc652db873ea0fdc",
  "provenance": "Generated from the calculation contract used by the published page. Publication is not external validation.",
  "sourceFiles": [
    "data/calculators/pancake-recipe-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": "F = 65 n; M = 90 n; E = 0.25 n; T = 0.5 n; S = 8 n; U = 10 n",
    "vars": [
      [
        "n",
        "Number of servings"
      ],
      [
        "F",
        "Flour (g)"
      ],
      [
        "M",
        "Milk (ml)"
      ],
      [
        "E",
        "Eggs"
      ],
      [
        "T",
        "Baking powder (tsp = 0.5 n), sugar (g = 8 n)"
      ],
      [
        "S",
        "Butter (g)"
      ]
    ],
    "note": "Eggs can come out fractional (0.25 per serving); scale or round to whole eggs when cooking."
  },
  "externalEvidence": {
    "reviewedAt": "2026-10-12",
    "sources": [
      {
        "name": "King Arthur Baking — Recipe and pan-size conversions",
        "url": "https://www.kingarthurbaking.com/blog/2019/04/23/the-essential-alternative-baking-pan-sizes"
      }
    ],
    "referenceRole": "context",
    "implementationHash": "dfe5fdf8bc612f37cecb2fab1e5846faaa7ec850a878992efc652db873ea0fdc",
    "basis": "F = 65 n; M = 90 n; E = 0.25 n; T = 0.5 n; S = 8 n; U = 10 n",
    "limitations": "The references provide context and limitations. They do not validate this page’s illustrative multipliers, lookup values or predictions."
  },
  "contract": {
    "compute": "return { flourGrams: servings*65, milkMl: servings*90, eggs: servings*0.25, bakingPowderTsp: servings*0.5, sugarGrams: servings*8, butterGrams: servings*10 };",
    "inputs": [
      {
        "name": "servings",
        "type": "number",
        "default": 4,
        "min": 1,
        "max": 100,
        "step": 1,
        "requiredValue": true
      }
    ],
    "outputs": [
      {
        "name": "flourGrams",
        "precision": 0,
        "unit": "g",
        "trimTrailingZeros": true
      },
      {
        "name": "milkMl",
        "precision": 0,
        "unit": "ml",
        "trimTrailingZeros": true
      },
      {
        "name": "eggs",
        "precision": 1,
        "unit": "",
        "trimTrailingZeros": true
      },
      {
        "name": "bakingPowderTsp",
        "precision": 2,
        "unit": "tsp",
        "trimTrailingZeros": true
      },
      {
        "name": "sugarGrams",
        "precision": 0,
        "unit": "g",
        "trimTrailingZeros": true
      },
      {
        "name": "butterGrams",
        "precision": 0,
        "unit": "g",
        "trimTrailingZeros": true
      }
    ],
    "interpret": null
  }
}
