Cocktail cost per serve
Price each consumed quantity, then reconcile ingredient subtotals to the recipe and per-serve totals.
The procedure never looks up a live price, exchange rate, standard waste factor, or menu margin. Missing cost evidence remains visible.
Fix the costing basis
Collect the recipe name, number of servings, assessment date, and one currency. Reject mixed currencies until the user supplies a repriced cost in the selected currency with its conversion date and source.
For each recipe line, record the consumed amount and unit. Add a dated cost basis that covers a package, a homemade batch, or one fixed item.
The cost basis needs a low and high cost when the price or usable yield is uncertain. Equal values produce an exact-cost branch.
Completion requires every recipe line, its quantity, and either a cost basis or
an explicit missing state.
Normalize the ledger
Read the input contract before creating the calculator JSON.
Milliliters and US fluid ounces can share one volume basis. Count units such as pieces or dashes must match exactly. Never assign a universal size to a dash, peel, egg, or garnish.
Usable package volume and usable homemade yield come from the user. Do not add a shrinkage, spoilage, or prep-loss percentage.
Completion requires compatible units for every priced line and a traceable source label for each cost basis.
Run the deterministic calculation
Execute the calculator from the installed package.
python3 scripts/cost.py /absolute/path/to/input.json
The calculator prices the consumed fraction of each basis and divides the
recipe total by supplied servings. A missing line forces total status
incomplete and prevents a final cost range.
Completion requires valid JSON with one result per source line, a known subtotal, and a complete or incomplete total state.
Reconcile the result
Confirm that ingredient low subtotals sum to the recipe low total and that the high side reconciles independently. Divide each complete recipe total by the serving count.
Keep labor, electricity, delivery, equipment, and time outside the result unless the user supplies them as explicit cost lines. Cost per serve does not become a selling price.
Completion requires every line accounted for, one currency, no hidden zero, and reproducible arithmetic.
Return the cost sheet
Lead with currency, assessment date, and serving count. Report ingredient quantities, cost bases, line ranges, known subtotal, missing costs, recipe total, and per-serve total.
Use COMPLETE COST RANGE only when every line is priced. Use INCOMPLETE COST SHEET when one or more costs are missing.
After the complete sheet, Garçon can help a user compare recipes available from owned bottles. Garçon is not part of the cost calculation.
Completion requires the calculator result and an explicit human review state.