Recipes

Recipe Versioning & Cost Analysis

Know what a plate costs you. Version recipes without losing history, and cost any version from your own purchase prices.

The Problem

Recipe changes destroy your cost history

When you update a recipe in most restaurant systems, the old version is gone. Every report that ever referenced that recipe now uses the new ingredient list and the new costs. Your historical food cost percentage shifts retroactively — and you never even notice.

Most systems overwrite recipes when you update ingredients — your historical food cost calculations silently change.

Historical food cost reports become unreliable after any recipe change. Last month's numbers shift without warning.

You can't compare December's recipe cost to January's if the recipe was modified in between. The old version is gone.

Over-portioning and ingredient drift go unnoticed until your margin has already eroded.

How BasilBook Solves It

Versioned recipes, real cost control

Never Overwrite, Always Version

Each recipe change creates a new version with an effective date. Old versions are preserved with effectiveFrom and effectiveTo date ranges. December's food cost uses December's recipe, January uses January's. You get the full history of every ingredient change — nothing is lost.

  • Each modification creates a NEW version, not an edit
  • Effective date ranges (effectiveFrom / effectiveTo) on every version
  • Historical reports always use the recipe that was active at that time
  • Full chronological history of every ingredient change
  • Seasonal recipes handled naturally via date ranges
standard_recipes.versionstandard_recipes.effectiveFromstandard_recipes.effectiveTo

Ingredient Composition

Link inventory items to sale items with precise quantities and units. A Beef Pho might need rice noodles, beef brisket, garlic, fish sauce, bean sprouts, and herbs — each with exact amounts. Theoretical consumption is calculated automatically from your sales data multiplied by recipe quantities.

  • Link any inventory item as an ingredient with quantity and unit
  • Multiple ingredients per recipe (no limit)
  • Recipe lines stored with itemId, quantity, and unit of measure
  • Theoretical consumption = sales quantity x recipe ingredient quantities
  • Units tracked per ingredient for accurate costing
recipe_lines.itemIdrecipe_lines.quantityrecipe_lines.unit

Cost Analysis

Pro

Know what a plate costs you. Expand any recipe version and BasilBook costs it from your own purchase prices: cost per serving, food cost percentage against the menu price, margin per serving, and each ingredient’s share of the plate.

  • Cost per serving = sum of (ingredient quantity x ingredient unit cost)
  • Food cost percentage = cost per serving / selling price
  • Margin per serving against the sale item’s menu price
  • Per-ingredient cost share — which ingredient is driving the plate
  • Costed on the recipe version you are reading, not just the current one

How It Connects

Recipes sit at the center of your cost control loop. Sales imports trigger recipe-based theoretical consumption. Stock counts reveal the variance between theoretical and actual inventory. Waste records explain part of that variance. The remaining gap is unknown loss — shrinkage, theft, or measurement error. Every flow generates journal entries automatically.

  • Sales import triggers theoretical consumption calculation via active recipes
  • Stock count compares system balance (theoretical) vs physical count (actual)
  • Waste records account for known losses (spoilage, prep waste, overcooking)
  • Remaining variance = unknown loss (shrinkage, theft, measurement error)
  • All flows generate balanced double-entry journal entries automatically

The Cost Control Loop

From recipe to variance in four steps

Step 1

Define recipes

Set ingredient quantities per menu item. Version when ingredients change.

Step 2

Import sales

Sales data drives theoretical consumption based on active recipe versions.

Step 3

Count stock

Physical count reveals actual inventory. System calculates the variance.

Step 4

Analyze variance

Waste explains some gap. The rest is shrinkage, theft, or over-portioning.

Stop guessing your food cost

Versioned recipes, automatic cost calculations, and a stock count that checks them against what you really used — all connected to your accounting.