{
  "schemaVersion": 1,
  "kitId": "business-restaurant-cafe",
  "restaurant": "Juniper Corner Cafe",
  "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": "Coffee Beans",
      "stockUnit": "kg",
      "pack": {
        "description": "Case 4 x 1 kg",
        "sizeStockUnits": 4.0,
        "priceCad": 81.08
      },
      "unitCostFromPackCad": 20.27,
      "recipeUnit": "g",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.02027,
      "reference": {
        "purchaseId": "PUR-0085",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 20.27
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": []
    },
    {
      "ingredientId": "ING-02",
      "name": "Whole Milk",
      "stockUnit": "l",
      "pack": {
        "description": "Crate 12 x 2 L",
        "sizeStockUnits": 24.0,
        "priceCad": 43.92
      },
      "unitCostFromPackCad": 1.83,
      "recipeUnit": "ml",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.00183,
      "reference": {
        "purchaseId": "PUR-0087",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 1.83
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": [
        "milk"
      ]
    },
    {
      "ingredientId": "ING-03",
      "name": "Oat Drink",
      "stockUnit": "l",
      "pack": {
        "description": "Case 12 x 1 L",
        "sizeStockUnits": 12.0,
        "priceCad": 33.6
      },
      "unitCostFromPackCad": 2.8,
      "recipeUnit": "ml",
      "recipeUnitsPerStockUnit": 1000,
      "costPerRecipeUnitCad": 0.0028,
      "reference": {
        "purchaseId": "PUR-0089",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 2.8
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": [
        "cereals_gluten"
      ]
    },
    {
      "ingredientId": "ING-04",
      "name": "Sourdough Bread",
      "stockUnit": "each",
      "pack": {
        "description": "Tray of 12 loaves",
        "sizeStockUnits": 12.0,
        "priceCad": 70.32
      },
      "unitCostFromPackCad": 5.86,
      "recipeUnit": "each",
      "recipeUnitsPerStockUnit": 1,
      "costPerRecipeUnitCad": 5.86,
      "reference": {
        "purchaseId": "PUR-0091",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 5.86
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": [
        "cereals_gluten"
      ]
    },
    {
      "ingredientId": "ING-05",
      "name": "Eggs",
      "stockUnit": "each",
      "pack": {
        "description": "Case 180 (6 trays of 30)",
        "sizeStockUnits": 180.0,
        "priceCad": 57.6
      },
      "unitCostFromPackCad": 0.32,
      "recipeUnit": "each",
      "recipeUnitsPerStockUnit": 1,
      "costPerRecipeUnitCad": 0.32,
      "reference": {
        "purchaseId": "PUR-0093",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 0.32
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": [
        "eggs"
      ]
    },
    {
      "ingredientId": "ING-06",
      "name": "Avocado",
      "stockUnit": "each",
      "pack": {
        "description": "Box of 48",
        "sizeStockUnits": 48.0,
        "priceCad": 76.8
      },
      "unitCostFromPackCad": 1.6,
      "recipeUnit": "each",
      "recipeUnitsPerStockUnit": 1,
      "costPerRecipeUnitCad": 1.6,
      "reference": {
        "purchaseId": "PUR-0095",
        "date": "2026-09-02",
        "supplierId": "SUP-01",
        "supplier": "Alder Wholesale",
        "unitPriceCad": 1.6
      },
      "roundingResidualPerStockUnitCad": 0.0,
      "allergens": []
    }
  ],
  "dishes": [
    {
      "menuItemId": "MENU-01",
      "name": "Flat white",
      "menuPriceCad": 4.75,
      "lines": [
        {
          "recipeLineId": "REC-001",
          "ingredientId": "ING-01",
          "ingredient": "Coffee Beans",
          "recipeQuantity": 18.0,
          "recipeUnit": "g",
          "yieldPercent": 90.0,
          "preparation": "TRIM",
          "asPurchasedQuantity": 20.0,
          "lineCostCad": 0.4054
        },
        {
          "recipeLineId": "REC-002",
          "ingredientId": "ING-02",
          "ingredient": "Whole Milk",
          "recipeQuantity": 160.0,
          "recipeUnit": "ml",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 160.0,
          "lineCostCad": 0.2928
        }
      ],
      "plateCostCad": 0.7,
      "grossMarginCad": 4.05,
      "foodCostPercent": 14.74,
      "marginPercent": 85.26
    },
    {
      "menuItemId": "MENU-02",
      "name": "Oat latte",
      "menuPriceCad": 5.5,
      "lines": [
        {
          "recipeLineId": "REC-003",
          "ingredientId": "ING-01",
          "ingredient": "Coffee Beans",
          "recipeQuantity": 18.0,
          "recipeUnit": "g",
          "yieldPercent": 90.0,
          "preparation": "TRIM",
          "asPurchasedQuantity": 20.0,
          "lineCostCad": 0.4054
        },
        {
          "recipeLineId": "REC-004",
          "ingredientId": "ING-03",
          "ingredient": "Oat Drink",
          "recipeQuantity": 220.0,
          "recipeUnit": "ml",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 220.0,
          "lineCostCad": 0.616
        }
      ],
      "plateCostCad": 1.02,
      "grossMarginCad": 4.48,
      "foodCostPercent": 18.55,
      "marginPercent": 81.45
    },
    {
      "menuItemId": "MENU-03",
      "name": "Avocado toast",
      "menuPriceCad": 12.0,
      "lines": [
        {
          "recipeLineId": "REC-005",
          "ingredientId": "ING-04",
          "ingredient": "Sourdough Bread",
          "recipeQuantity": 0.15,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 0.15,
          "lineCostCad": 0.879
        },
        {
          "recipeLineId": "REC-006",
          "ingredientId": "ING-06",
          "ingredient": "Avocado",
          "recipeQuantity": 0.5,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 0.5,
          "lineCostCad": 0.8
        }
      ],
      "plateCostCad": 1.68,
      "grossMarginCad": 10.32,
      "foodCostPercent": 14.0,
      "marginPercent": 86.0
    },
    {
      "menuItemId": "MENU-04",
      "name": "Breakfast sandwich",
      "menuPriceCad": 10.5,
      "lines": [
        {
          "recipeLineId": "REC-007",
          "ingredientId": "ING-04",
          "ingredient": "Sourdough Bread",
          "recipeQuantity": 0.15,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 0.15,
          "lineCostCad": 0.879
        },
        {
          "recipeLineId": "REC-008",
          "ingredientId": "ING-05",
          "ingredient": "Eggs",
          "recipeQuantity": 2.0,
          "recipeUnit": "each",
          "yieldPercent": 100.0,
          "preparation": "ASIS",
          "asPurchasedQuantity": 2.0,
          "lineCostCad": 0.64
        }
      ],
      "plateCostCad": 1.52,
      "grossMarginCad": 8.98,
      "foodCostPercent": 14.48,
      "marginPercent": 85.52
    }
  ],
  "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."
  ]
}
