Deli stall meat cutter - cut-plan calculator: what the bird weighs, what the customer wants, how many cuts and how much tail before the knife comes down
Build a single-file HTML cut-plan calculator for a cooked-food
stall's cutting counter, for the cutter to glance at before the
knife: how heavy is this bird, what did the customer ask for,
how many cuts fit.
Input (typed into the page):
- Bird entry: product (roast duck / white-cut chicken /
barbecued pork, custom items allowed), actual scale weight of
the whole or half bird, bone-in or deboned style
- Part ratios (the key input, from calibration): each cut part's
share of total weight - starts empty and must be fed through
"actuals write-back" (below); pre-loading any "a duck's legs
are usually X%" default is banned
- Portion target: what one serving should weigh (or several
targets), with tolerance [±R]
- Combo mode: for mixed trays, which products at what weights
per tray
Calculations and output:
- Cut plan (the core): how many portions this bird yields at
the target weight, suggested number of cuts, each portion's
projected weight (via part ratios, flagged bone-in or
all-meat), and the tail weight - the last piece too small to
make a portion
- Over-weight alert: when projected portions clearly overshoot
the customer's budget, suggest "switch to half a bird" or
"make it [K] instead" - turning the awkward "I cut too much"
into a number seen before the knife
- Combo filling: when one tray mixes products, an order to fill
from each product's remaining stock, with tails routed into
combos first
- Actuals write-back: after cutting, the real scale weight of
each portion is typed in, and the tool corrects that product's
part ratios from projected-versus-actual - all calibration
comes from birds this stall has actually cut; the calibration
sample count is displayed on the page
Implementation requirements:
- Single file, no external dependencies, no network calls;
products, part ratios, and calibration history persist in
localStorage
- With zero calibration samples, show no projected weights -
only "cannot project yet; cut one and write it back" - better
to refuse than to guess
- Products with fewer than [5] calibration birds carry a "thin
sample" badge next to projections
- Weight units follow the stall scale's native step (e.g.
50 g); numbers get copied straight off the scale, never
converted
Notes for the coding agent:
- Bone-in and deboned styles calibrate as two separate ratio
sets per product - never shared
- Ratio correction uses a sliding average weighted toward recent
cuts - supplier size drifts with the season, and yesterday's
bird knows more than last month's
Why it is written this way
Waste at the cutting board has a timing signature: the error is fixed at the moment of the cut and discovered only after it - the customer wanted 500 g and got 700, and the extra 200 g has no buyer; the trays cut fine until the last piece, a 150-gram tail the stall swallows. The tool's entire value is moving "how many cuts, what weight each" from after the knife to before it, and the over-weight alert turns the hardest sentence to say - "I cut too much" - into a number spoken before anything is cut: "this one runs heavy, want to make it half?"
"No default part ratios, no projections at zero samples" is the tool's honesty floor and the reason it can beat experience. The old hand carries ratios in his head, but they are ducks he has cut; the supplier switches to smaller birds with bigger legs and the feel drifts. Sliding-average calibration on write-back tracks the supplier's drift - two weeks of cutting re-centers the ratios on the current batch, which is the real dividing line between feel and tool. Refusing to project ("cut one and write it back") rather than guessing from an invented universal ratio is the same discipline: once a cutter catches the tool making things up, it never gets opened again.
Routing tails into combo trays first reflects the stall's own best practice - a tail is not waste, it is material in the wrong place. Splitting bone-in and deboned into two calibration sets comes from one specific pothole: the same "half bird" under two cut styles has wildly different meat-to-bone, and a shared ratio set guarantees that at least one style computes wrong.
Variables
| Variable | Notes |
|---|---|
| Portion tolerance R | How far each serving may sit from target - set by this stall's reputation and local habit; tighter tolerance, more cuts |
| Round-up step K | The suggested make-weight when over budget - aligned to this stall's common specs (e.g. 300 g / 400 g / 500 g) |
| Calibration thresholds | How many birds before projections appear at all, and before the "thin sample" badge comes off |