Recipe Summary Analysis Report

This report calculates per-recipe cost buildup from ingredient data - Cost, Selling Price, and Cost (%) for every menu item with a recipe on file. This is a different view compared to the same category food cost % targets used on the Menu Profitability Report which are estimated from configurable category benchmarks. Use this report to identify recipes with calculated costs exceeding configurable cost percentage targets. Use the drill-down functionality to see recipe details.

About this report

Cost is computed live from each recipe's ingredient lines - quantity, cost per gram, and yield % (usable product after trim/cook loss) - not stored or cached, so it always reflects the current ingredient data. Both cost_per_g_usd and yield_pct are synthesized industry-benchmark estimates in this demo, not audited invoice figures.

Only menu items with a recipe on file appear below - this is a recipe summary, not a full menu listing. An item with no recipe yet has nothing here to summarize.

A note on recipe data. Recipe quantities here are synthesized benchmarks based on typical commercial portions, not transcribed from a specific source. A spot-check of 3 of the 14 recipes against credible sourced recipes came within roughly 25% on key ingredients, validating the approach.

14
Recipes on file
12.0%
Avg. cost % across recipes
1
Recipes over their category's cost % target

Cost % by recipe

Each recipe's Cost ÷ Selling Price against its own category's food cost % target (the same targets used on the Menu Profitability Report - edit them from Benchmark Settings above).

Recipes

Click a recipe name to see its ingredient-by-ingredient cost buildup, and a batch-prep estimator for scaling buy quantities and cost when you prep a dish ahead of service. Every value in the table below is per single portion; the estimator is a planning aid that changes nothing else on this page.

Recipe #Recipe NamePortionsPortion Size Portion UnitCostSelling PriceCost (%)PLU
1 1 253.0 g $0.40 $4.07 9.7% —
2 1 530.0 g $2.44 $41.86 5.8% —
3 1 457.0 g $3.91 $48.97 8.0% —
4 1 211.0 g $1.09 $12.43 8.8% —
5 1 429.0 g $1.47 $19.12 7.7% —
6 1 361.0 g $0.30 $5.39 5.6% —
7 1 235.0 g $2.26 $48.43 4.7% —
8 1 395.0 g $1.62 $11.75 13.8% —
9 1 320.0 g $1.00 $9.66 10.4% —
10 1 465.0 g $3.50 $21.40 16.4% —
11 1 485.0 g $1.85 $16.09 11.5% —
12 1 710.0 g $4.27 $15.20 28.1% —
13 over target 1 219.0 g $0.68 $2.43 28.1% —
14 1 362.0 g $2.39 $25.53 9.4% —

Metric definitions

Cost
Sum, across a recipe's ingredient lines, of (quantity ÷ yield %) × cost per gram - the yield-adjusted "true purchase cost": what you'd actually need to buy to end up with the recipe's as-used quantity, after trim/cook loss. Computed live at render time, not stored.
Yield %
Estimated usable product remaining after trim/cook loss - a purchase quantity of 100g at a 90% yield means only 90g ends up in the dish.
Cost (%)
Cost ÷ Selling Price - the recipe-level food cost percentage, compared against the same category benchmark targets used on the Menu Profitability Report. Always per single portion - the batch-prep estimator (below) never affects it.
Portions
The recipe's own defined serving count - always 1 in this dataset, one standard serving per recipe. This is a fixed data column and is separate from the batch-prep estimator's "portions to prep ahead" input.
Batch-prep estimator (Prep Qty / Total Cost)
In each recipe's drill-down: enter how many portions you plan to prep ahead of service. Prep Qty = quantity ÷ yield % × portions - the yield-adjusted amount of each ingredient to buy or pull from inventory for that batch. Total Cost = Portion Cost × portions. A planning aid only - it changes nothing else on the page, and nothing is saved (it resets to 1 portion on reload).
Portion Size / Portion Unit
The total as-used weight of one serving - the sum of this recipe's ingredient quantities, in grams. Computed at import time, not hardcoded; does not further account for cooking loss of the assembled dish (e.g. moisture lost during cooking), so treat it as an approximation of true plate weight, not a precisely measured one.
PLU
Price look-up code - not populated by any current data source, shown as "—" until a source for it exists.

Development notes

This report was added alongside the Menu Profitability and Labor Cost reports as a gated build (planning doc validated against the live codebase → dedicated recipe/ ingredient importer → live cost buildup → this page). Recipe and ingredient data load through their own importer, separate from the sales-CSV path, and recipe-backed items survive a sales-data refresh or clear.

The data comes from two committed flat files — ingredients_master.txt (cost per gram and yield % per ingredient) and recipe_ingredients.txt (per-serving ingredient quantities for 14 dishes). All 14 recipes are synthesized benchmark portions based on typical commercial recipe knowledge, not transcribed from any single source; the cost-per-gram and yield figures are illustrative foodservice benchmarks, not vendor invoices. Three recipes were spot-checked against independently sourced recipes and landed within roughly 25% on key ingredients; the other 11 were not re-verified. Cost is recomputed live from the current database on every render, never read from the flat files' own precomputed cost columns.

Tech stack

This project uses Python 3, Flask, SQLite, Jinja2, Chart.js, python-dotenv, gunicorn, and pytest.