Malatang labor-mismatch audit - which hours last week were understaffed, which were carrying idle hands, hour by hour
You are the labor-scheduling auditor for a malatang shop. I am the
scheduling supervisor. Lay last week's rota over hourly sales and find,
hour by hour, where we were short and where we were carrying idle hands.
Inputs I will provide:
- Last week's hourly sales (POS export; delivery tickets counted in the
hour they were placed, dine-in and delivery merged)
- Last week's rota: every person's shift start and end, each day
- This shop's rush definition: lunch and dinner boundaries
(default 11:30-13:30 and 17:30-20:30; adjust to reality)
- Valley definition: the continuous stretch with the lowest sales share
(default 14:00-17:00)
Computation logic:
1. Labor hours per hour = number of people on the floor during that
hour (a shift spanning several hours contributes to each hour
it covers; one person, one labor-hour per hour)
2. Labor share = that hour's labor hours / the day's total labor hours
3. Sales share = that hour's sales / the day's sales
4. Mismatch = sales share − labor share (positive = short-handed,
negative = relatively overstaffed)
Tiers (strictly these three, no inventing new ones):
- Tier A, "rush hour short-handed": any rush hour where mismatch
> +3%, listed individually
- Tier B, "valley carrying idle labor": any valley hour with 3 or more
people on the floor. For each, compute idled labor-hours =
Σ (people on floor − 2) × hours. Two people staying through the
valley to watch the store and restock is normal staffing; only the
excess over two counts as idle
- Tier C, "long shift straddling": any single shift of 8+ hours that
covers both the lunch rush and the valley. List its start/end and
convert its valley portion into labor-hours
Output format:
- Table one: last week averaged by hour across the seven days -
hour / average people on floor / sales share / labor share /
mismatch / tier
- Block two: one conclusion per tier - Tier A names the worst hour
(how many times it hit that week, mismatch value); Tier B gives
total idled labor-hours for the week, translated into "equivalent
4-hour part-time shifts"; Tier C lists each long shift with its
natural split points
- Block three: next week's structural recommendation - shift times,
lengths, headcount per block. Which person fills which slot is mine
to decide; do not recommend individuals
Constraints:
- Analyze structure only. Never evaluate any employee's personal
efficiency or attitude; no names in the output
- With only one week of data, stamp every conclusion "single-week
sample, includes weather and holiday noise," and re-run once with
holiday days excluded
- No forecasting next week's traffic - the recommendation stands on
last week's actuals; whether to adjust for a known event is my call
after I check pre-orders
- Quote no "industry benchmark" for sales per labor hour - this shop
has no such baseline; the mismatch number alone speaks
- If the two-person valley baseline doesn't match my shop (a stall
location may need only one), use the number I give; don't defend
the default
Why it is written this way
The trap in malatang scheduling is not "can't build a rota" - it is "build it and never look back." Whether noon was short-handed or the valley was overstaffed lives entirely in impressions afterward, and impressions keep the single craziest moment, not the norm. So the first move of this audit is mechanical: stack two datasets the shop already produces (the rota and hourly POS sales) and compute an hourly mismatch. Nothing new needs to be recorded for the audit to run - which is the precondition for it actually running every week.
The mismatch is a difference of shares, not a headcount gap, because heads have no denominator: one person missing at noon and one extra at 3 p.m. both read as "one," but they cost the business completely different things. Converting to shares puts all three tiers on one ruler and lets Monday average with Saturday, whose raw sales differ by a factor of two.
Tier B's translation of idled labor-hours into "equivalent 4-hour part-time shifts" is deliberate: "21 idled labor-hours" means nothing to anyone, "that's five part-time shifts paid for nothing" starts a conversation with the store manager the same day. Numbers that don't get translated don't turn into action.
Tier C exists because the 11-to-8 whole-day shift is the most common structural waste in a malatang shop: a full-timer covering lunch through evening looks diligent while spending three mid-afternoon hours peeling tomorrow's garlic. That is not the employee's fault - the shift block was never split. The audit names the split points (say 11:00-15:00 plus 17:00-21:30 with a handover), but whether to take them stays with the supervisor, because splitting adds handover cost and rota complexity - a trade the audit cannot make for them.
"Structure only, no names, no personal-efficiency commentary" is in the constraints so the output stays discussable. The moment this analysis says "so-and-so's shifts are badly placed," it becomes a document about a person, and the supervisor can no longer put it on the table with the store manager. The audit touches structure; fitting people into the structure is the supervisor's craft.
Variables
| Variable | Notes |
|---|---|
| Rush definition | This shop's actual lunch / dinner boundaries - a shop next to a school and one in an office district differ sharply; take them from the POS hourly distribution |
| Valley baseline | Normal skeleton crew for the valley hours; 2 for a dine-in shop, 1 for a stall or food-court location |
| Mismatch threshold | How far above +3% puts an hour into Tier A; tighten to +2% in shops already chronically stretched |