Specify from your own counts

Group heads, blender jars, steam litres per hour and ice bin minimum, each derived from counts you supply and shown with its working and the basis of every constant.

This section states that it is the engineering reasoning behind a bar rather than a shopping list. This page is where that sentence is kept: every figure below is an expression over numbers you supply, shown with its working, and every constant it uses carries the sentence that placed it.

The derivations

Each one is shown as the expression, then the same expression with your numbers in it, then the result. A result without its working is the bare magnitude this section exists to refuse.

  1. Peak-hour demand
    peak drinks per hour = daily covers × peakHourShare
    400 × 0.2 = 80
    80 drinks/h
    peakHourShare (planning)
  2. Espresso group heads
    group heads = ceil( peak espresso drinks per hour ÷ (3600 ÷ groupCycleSec) × headroom )
    ceil( 44 ÷ (3600 ÷ 45) × 1.25 ) = 1
    1 group heads
    groupCycleSec (planning) · headroom (planning)
  3. Blender jars
    blender jars = ceil( peak blended drinks per hour ÷ (3600 ÷ (blendSeconds + rinseSeconds + pourSeconds)) )
    ceil( 6.4 ÷ (3600 ÷ (30 + 15 + 10)) ) = 1
    1 jars
    blendSeconds (planning) · rinseSeconds (planning) · pourSeconds (planning)
  4. Decaf: a second grinder, or a swap
    decaf share > decafSwapThreshold → a second grinder; otherwise purge and swap
    0.03 ≤ 0.05
    Purge and swap on the one grinder. Below the threshold a second grinder costs more than it saves.
    decafSwapThreshold (planning)
  5. Steam requirement
    litres per hour = peak milk drinks per hour × millilitres per drink ÷ 1000 · one wand sustains (3600 ÷ pitcherCycleSec) × pitcherFillMl ÷ 1000
    36 × 180 ÷ 1000 = 6.5 L/h against 24 L/h per wand
    6.5 L/h at 65 °C
    24 L/h per wand
    pitcherCycleSec (planning) · pitcherFillMl (planning) · milkServiceTempC (planning)
  6. Ice bin minimum
    bin minimum = ice kg per peak hour × consecutivePeakHours × meltWasteFactor × binSafetyFactor
    12 × 3 × 1.3 × 1.2 = 56.2
    56.2 kg
    consecutivePeakHours (planning) · meltWasteFactor (planning) · binSafetyFactor (planning)

Worked example

Illustrative inputs, not a measurement of any bar. Shown so the arithmetic is checkable before you type anything of your own.

dailyCovers = 400 · espressoShare = 0.55 · milkShare = 0.45 · blendedShare = 0.08 · decafShare = 0.03 · milkMlPerDrink = 180 · iceKgPerPeakHour = 12

What this cannot compute, and why

Three fields are null on every equipment record in this engine, deliberately. Reading a number out of a prose sentence would be invisible fabrication, because a plausible figure looks exactly like a measured one.

Capabilities nothing published satisfies

Content debt, stated rather than papered over. A menu needing one of these produces a plan with a hole, and the engine says which hole. Writing the equipment record closes it; inventing an option would not.

Every constant, and where it came from

Fourteen constants. None is a measurement taken in a working bar, and none claims to be: each is a heuristic for the shape of a relationship, and each names the measurement that would replace it.

There is no sourced status in this engine. The brief permits one; this ships without it, because a status that cannot be used without a retrieved reference is a status that will eventually be used without one.

© 2026 Mostafa Aly · Licensed under CC BY-NC-ND 4.0

build c603c1c