Purpose
Generate a coverage-accurate weekly shift schedule that staffs every part of the day to projected demand while holding total labor cost inside budget — eliminating both overstaffed slow periods and understaffed rushes, and surfacing the specific trade-offs a manager must make to hit the labor target.
When to Use
Invoke this skill when the user asks to:
- Build or rebuild a weekly staff schedule for a restaurant or store
- Reduce labor cost percentage or fix a labor budget overrun
- Match staffing levels to projected sales or foot traffic
- Solve a coverage gap during a specific daypart (open, lunch rush, close)
- Rework a schedule after a call-out, new hire, or availability change
Inputs Required
Before starting, collect:
- Headcount and roles: Number of employees and their roles (e.g., 4 cashiers, 3 line cooks, 2 shift leads)
- Availability: Each employee's available days and hours, plus any hard restrictions (minors, second jobs)
- Labor budget: Target labor cost as a % of sales OR a dollar cap for the week
- Sales forecast: Projected sales by day, ideally by daypart or hour if available
- Hours of operation: Open/close times per day, plus prep and closeout time needed
- Wage rates: Hourly rate by role (or an average by role if exact rates are unavailable)
- Compliance rules: Break/meal requirements, max hours before overtime, minor work-hour laws in effect
If daypart-level sales data is missing, distribute the daily forecast using standard fast-casual/retail curves and state the assumption.
Instructions
Step 1: Convert Sales Forecast to Labor Demand
Translate projected sales into required labor hours per daypart.
- Calculate sales-per-labor-hour target (SPLH): Total daily forecast ÷ (labor budget % × forecast ÷ average wage). If a target SPLH is known, use it directly.
- Split the day into dayparts: Open/prep, morning, lunch rush, afternoon lull, dinner rush, close. Assign each a share of daily sales.
- Derive bodies needed per daypart: Daypart sales ÷ SPLH target = labor hours needed → divide by hours in the daypart to get concurrent headcount.
- Set role minimums: Every open hour needs at least one shift lead and the minimum crew to operate safely, regardless of sales.
Step 2: Build the Coverage Grid
Create an hour-by-hour staffing requirement before assigning names.
- Lay out each operating hour for all 7 days with the required headcount by role from Step 1.
- Mark peak windows (rush) requiring maximum crew and valleys where you drop to skeleton coverage.
- Ensure open and close each have the roles needed for setup and cash/closeout.
Step 3: Assign Employees to the Grid
Fit real people to the required coverage.
- Honor availability and restrictions first — never schedule outside stated availability or violate minor-hour rules.
- Load shift leads across all open hours — no hour without a lead present.
- Stagger start/end times to add bodies for the rush and shed them in the lull rather than scheduling flat full shifts.
- Balance hours toward the desired weekly hours per employee (full-time vs. part-time) and avoid unintended overtime (cap at 40 unless approved).
- Cluster shifts to avoid clopens (close then open) and give reasonable rest between shifts.
Step 4: Apply Compliance and Breaks
- Insert required meal/rest breaks for any shift exceeding the legal threshold and adjust coverage so breaks don't create a gap.
- Flag any shift approaching overtime, any minor scheduled past legal hours, and any clopen that remains.
Step 5: Cost the Schedule and Reconcile to Budget
- Total scheduled hours × wage by role = projected labor dollars.
- Labor cost % = labor dollars ÷ forecasted sales, computed for the week and for each day.
- If over budget, produce ranked cuts (Step 6). If under budget with coverage gaps, add hours to the most exposed rush.
Step 6: Rank Adjustments to Hit Target
List the specific moves in order of impact to close the gap between projected and target labor cost:
- Trim overlapping bodies during the afternoon lull first (lowest sales-per-hour cost)
- Shorten the tail on close/open shifts where sales don't justify full crew
- Shift a full-timer's overtime hour to an available part-timer
- Consolidate a low-volume day to fewer, longer shifts to reduce handoff overhead State the dollar and percentage-point impact of each move.
Output Format
- Structure: Coverage summary → full 7-day schedule grid → labor cost breakdown → compliance flags → ranked adjustments
- Length: 700–1,000 words plus the schedule table
- Format: Day-by-day schedule as a table (employee, role, start, end, hours, breaks); labor cost as a small table by day and total
- Sections: Demand & coverage plan → Weekly schedule table → Labor cost breakdown (daily + weekly %) → Compliance flags → Ranked adjustments to hit target
- Tone: Operations manager — concrete, numbers-first, no filler; every recommendation tied to a dollar or coverage impact
Quality Checklist
Before delivering output, verify:
- [ ] Every open hour has at least one shift lead scheduled — no gaps
- [ ] No employee is scheduled outside their stated availability
- [ ] Projected labor cost % is calculated for the week and each day, and compared to target
- [ ] Peak/rush windows have more concurrent staff than lull windows (staffing tracks demand)
- [ ] Overtime, clopens, and minor-hour violations are flagged explicitly (or confirmed absent)
- [ ] Ranked adjustments each include a dollar or percentage-point impact
Notes
- Staggering start times is the single biggest lever for cutting labor cost without hurting service — flat full shifts almost always overstaff the lull.
- If daypart sales data is unavailable, a typical fast-casual day concentrates 35–45% of sales in the lunch window; retail skews later. State whichever curve you apply.
- The afternoon lull is where labor is most often wasted; the open and close are where compliance and cash-handling coverage matter most — protect those two roles before trimming elsewhere.
- When a schedule can't be both fully covered and on budget, say so plainly and present the trade-off rather than quietly under-covering a rush.
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills