{
  "schemaVersion": 1,
  "kitId": "business-restaurant-pizzeria",
  "restaurant": "Ember Lane Pizza",
  "asOf": "2026-09-08",
  "currency": "CAD",
  "period": {
    "start": "2026-08-20",
    "end": "2026-09-02"
  },
  "roundingRules": {
    "unitCostFromPack": "pack_price / pack_size, 6 decimal places, half up",
    "costPerRecipeUnit": "unit_cost_from_pack / recipe_units_per_stock_unit, 8 places",
    "asPurchasedQuantity": "recipe_quantity / (yield_percent / 100), 3 places",
    "lineCost": "as_purchased_quantity * cost_per_recipe_unit, 4 places",
    "plateCost": "sum of line costs, 2 places"
  },
  "ingredients": [
    {
      "ingredientId": "ING-01",
      "name": "Pizza Flour",
      "stockUnit": "kg",
      "pack": {
        "description": "Sack 25 kg",
        "sizeStockUnits": 25.0,
        "priceCad": 45.0
      },
      "unitCostFromPackCad": 1.8,
      "recipeUnit": "g",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.0018,
      "reference": {
        "purchaseId": "PUR-0085",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 1.8
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": [
        "cereals_gluten"
      ]
    },
    {
      "ingredientId": "ING-02",
      "name": "Mozzarella",
      "stockUnit": "kg",
      "pack": {
        "description": "Case 4 x 2.3 kg",
        "sizeStockUnits": 9.2,
        "priceCad": 77.56
      },
      "unitCostFromPackCad": 8.430435,
      "recipeUnit": "g",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.00843044,
      "reference": {
        "purchaseId": "PUR-0087",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 8.43
      },
      "roundingResidualPerStockUnitCad": 0.000435,
      "allergens": [
        "milk"
      ]
    },
    {
      "ingredientId": "ING-03",
      "name": "Crushed Tomatoes",
      "stockUnit": "kg",
      "pack": {
        "description": "Case 6 x #10 cans (6 x 2.84 kg)",
        "sizeStockUnits": 17.04,
        "priceCad": 47.71
      },
      "unitCostFromPackCad": 2.799883,
      "recipeUnit": "g",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.00279988,
      "reference": {
        "purchaseId": "PUR-0089",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 2.8
      },
      "roundingResidualPerStockUnitCad": -0.000117,
      "allergens": []
    },
    {
      "ingredientId": "ING-04",
      "name": "Pepperoni",
      "stockUnit": "kg",
      "pack": {
        "description": "Case 2 x 2.5 kg",
        "sizeStockUnits": 5.0,
        "priceCad": 61.95
      },
      "unitCostFromPackCad": 12.39,
      "recipeUnit": "g",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.01239,
      "reference": {
        "purchaseId": "PUR-0091",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 12.39
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": [
        "mustard"
      ]
    },
    {
      "ingredientId": "ING-05",
      "name": "Basil",
      "stockUnit": "kg",
      "pack": {
        "description": "Case 12 x 100 g",
        "sizeStockUnits": 1.2,
        "priceCad": 15.38
      },
      "unitCostFromPackCad": 12.816667,
      "recipeUnit": "g",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.01281667,
      "reference": {
        "purchaseId": "PUR-0093",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 12.82
      },
      "roundingResidualPerStockUnitCad": -0.003333,
      "allergens": []
    },
    {
      "ingredientId": "ING-06",
      "name": "Pizza Box",
      "stockUnit": "each",
      "pack": {
        "description": "Bundle of 50",
        "sizeStockUnits": 50.0,
        "priceCad": 27.5
      },
      "unitCostFromPackCad": 0.55,
      "recipeUnit": "each",
      "recipeUnitsPerStockUnit": 1,
      "costPerRecipeUnitCad": 0.55,
      "reference": {
        "purchaseId": "PUR-0095",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 0.55
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": []
    }
  ],
  "dishes": [
    {
      "menuItemId": "MENU-01",
      "name": "Margherita pizza",
      "menuPriceCad": 17.0,
      "lines": [
        {
          "recipeLineId": "REC-001",
          "ingredientId": "ING-01",
          "ingredient": "Pizza Flour",
          "recipeQuantity": 180.0,
          "recipeUnit": "g",
          "yieldPercent": 90.0,
          "preparation": "TRIM",
          "asPurchasedQuantity": 200.0,
          "lineCostCad": 0.36
        },
        {
          "recipeLineId": "REC-002",
          "ingredientId": "ING-02",
          "ingredient": "Mozzarella",
          "recipeQuantity": 100.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 100.0,
          "lineCostCad": 0.843
        },
        {
          "recipeLineId": "REC-003",
          "ingredientId": "ING-03",
          "ingredient": "Crushed Tomatoes",
          "recipeQuantity": 90.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 90.0,
          "lineCostCad": 0.252
        },
        {
          "recipeLineId": "REC-004",
          "ingredientId": "ING-05",
          "ingredient": "Basil",
          "recipeQuantity": 3.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 3.0,
          "lineCostCad": 0.0385
        },
        {
          "recipeLineId": "REC-005",
          "ingredientId": "ING-06",
          "ingredient": "Pizza Box",
          "recipeQuantity": 1.0,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 1.0,
          "lineCostCad": 0.55
        }
      ],
      "plateCostCad": 2.04,
      "grossMarginCad": 14.96,
      "foodCostPercent": 12.0,
      "marginPercent": 88.0
    },
    {
      "menuItemId": "MENU-02",
      "name": "Pepperoni pizza",
      "menuPriceCad": 20.0,
      "lines": [
        {
          "recipeLineId": "REC-006",
          "ingredientId": "ING-01",
          "ingredient": "Pizza Flour",
          "recipeQuantity": 180.0,
          "recipeUnit": "g",
          "yieldPercent": 90.0,
          "preparation": "TRIM",
          "asPurchasedQuantity": 200.0,
          "lineCostCad": 0.36
        },
        {
          "recipeLineId": "REC-007",
          "ingredientId": "ING-02",
          "ingredient": "Mozzarella",
          "recipeQuantity": 100.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 100.0,
          "lineCostCad": 0.843
        },
        {
          "recipeLineId": "REC-008",
          "ingredientId": "ING-03",
          "ingredient": "Crushed Tomatoes",
          "recipeQuantity": 90.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 90.0,
          "lineCostCad": 0.252
        },
        {
          "recipeLineId": "REC-009",
          "ingredientId": "ING-04",
          "ingredient": "Pepperoni",
          "recipeQuantity": 60.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 60.0,
          "lineCostCad": 0.7434
        },
        {
          "recipeLineId": "REC-010",
          "ingredientId": "ING-06",
          "ingredient": "Pizza Box",
          "recipeQuantity": 1.0,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 1.0,
          "lineCostCad": 0.55
        }
      ],
      "plateCostCad": 2.75,
      "grossMarginCad": 17.25,
      "foodCostPercent": 13.75,
      "marginPercent": 86.25
    },
    {
      "menuItemId": "MENU-03",
      "name": "White cheese pizza",
      "menuPriceCad": 18.5,
      "lines": [
        {
          "recipeLineId": "REC-011",
          "ingredientId": "ING-01",
          "ingredient": "Pizza Flour",
          "recipeQuantity": 180.0,
          "recipeUnit": "g",
          "yieldPercent": 90.0,
          "preparation": "TRIM",
          "asPurchasedQuantity": 200.0,
          "lineCostCad": 0.36
        },
        {
          "recipeLineId": "REC-012",
          "ingredientId": "ING-02",
          "ingredient": "Mozzarella",
          "recipeQuantity": 150.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 150.0,
          "lineCostCad": 1.2646
        },
        {
          "recipeLineId": "REC-013",
          "ingredientId": "ING-06",
          "ingredient": "Pizza Box",
          "recipeQuantity": 1.0,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 1.0,
          "lineCostCad": 0.55
        }
      ],
      "plateCostCad": 2.17,
      "grossMarginCad": 16.33,
      "foodCostPercent": 11.73,
      "marginPercent": 88.27
    },
    {
      "menuItemId": "MENU-04",
      "name": "Basil tomato pizza",
      "menuPriceCad": 18.0,
      "lines": [
        {
          "recipeLineId": "REC-014",
          "ingredientId": "ING-01",
          "ingredient": "Pizza Flour",
          "recipeQuantity": 180.0,
          "recipeUnit": "g",
          "yieldPercent": 90.0,
          "preparation": "TRIM",
          "asPurchasedQuantity": 200.0,
          "lineCostCad": 0.36
        },
        {
          "recipeLineId": "REC-015",
          "ingredientId": "ING-02",
          "ingredient": "Mozzarella",
          "recipeQuantity": 80.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 80.0,
          "lineCostCad": 0.6744
        },
        {
          "recipeLineId": "REC-016",
          "ingredientId": "ING-03",
          "ingredient": "Crushed Tomatoes",
          "recipeQuantity": 120.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 120.0,
          "lineCostCad": 0.336
        },
        {
          "recipeLineId": "REC-017",
          "ingredientId": "ING-05",
          "ingredient": "Basil",
          "recipeQuantity": 6.0,
          "recipeUnit": "g",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 6.0,
          "lineCostCad": 0.0769
        },
        {
          "recipeLineId": "REC-018",
          "ingredientId": "ING-06",
          "ingredient": "Pizza Box",
          "recipeQuantity": 1.0,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 1.0,
          "lineCostCad": 0.55
        }
      ],
      "plateCostCad": 2.0,
      "grossMarginCad": 16.0,
      "foodCostPercent": 11.11,
      "marginPercent": 88.89
    }
  ],
  "notes": [
    "Costs trace to the shared operating model: every reference purchase id exists in its purchases table and every recipe line exists in its recipes table.",
    "Pack price is the pack size times the reference purchase unit price, rounded to the cent. Costing then divides back down, so a fractional pack size leaves a residual that only appears from the third decimal place onward.",
    "Water, salt and minor seasonings are outside the shared six-ingredient purchase study and are therefore outside these plate costs."
  ]
}
