Portfolio project 02 · Small business operations

Willow Café

Finding the hours and the waste hiding in a weekly report

Sample project using synthetic data. Willow Café is a fictional café, and every number on this page is made up to show how I work.

+8.9%Weekly sales growth, week 1 to week 8
34.0%Labor as a share of sales in week 8, down from 35.6%
22 hoursWeekly labor hours freed up in the scenario schedule
$440Weekly labor cost saved in the scenario

The situation

Willow Café is a small café that is open from 7 am to 2 pm, seven days a week. Sales were growing, but the owner could not tell whether the business was getting healthier. Labor felt expensive. Waste felt random. The numbers lived in three places: the point of sale, the schedule, and a waste log on a clipboard.

I built one weekly review from those three sources, then looked for the few things worth changing.

What I looked at

Eight weeks, from the week of September 7 to the week of October 26:

  • Hourly sales and transactions
  • Scheduled staff for every hour
  • Daily waste cost in four categories: bakery, dairy, produce, and prepared food

I used a labor cost of $20 per labor hour, a labor target of 30% of sales, and a weekly sales goal of $18,000. These are example numbers for this project. A real café would use its own.

What I found

1. Sales were growing faster than labor cost was shrinking

Weekly sales rose from $16,900 to $18,400, up 8.9%. Labor as a share of sales moved from 35.6% to 34.0%. That is real progress, but the café was still about four points above the 30% target in its best week, and it reached the $18,000 sales goal only once.

Sales grew 8.9% in eight weeks, and labor share fell only 1.6 points

Weekly sales and labor cost as a percent of sales (synthetic data)

Weekly sales and labor percent of salesSales rose from $16,900 to $18,400 over eight weeks. Labor share of sales fell from 35.6% to 34.0%.$15k$16k$17k$18k$19kWeekly sales goal $18,000$16,900$17,350$17,100$17,650$17,500$17,950$17,800$18,400Weekly sales (axis starts at $15,000)28%30%32%34%36%38%Example target 30%35.6%35.3%35.8%34.9%35.2%34.6%34.8%34.0%Labor cost as a percent of salesWeek ofSep 7Week ofSep 14Week ofSep 21Week ofSep 28Week ofOct 5Week ofOct 12Week ofOct 19Week ofOct 26

2. The same crew was too big for some hours and too small for others

The schedule looked almost the same from hour to hour: about five people on shift from 7 am to 1 pm every day. Sales do not look like that. On weekdays at 10 am, labor cost was 55% of sales. On weekends at 10 am, it was 17%. Weekday mid-mornings were overstaffed, and weekend mornings, when the café is busiest, were running thin.

At 10am, labor is 55% of sales on weekdays and 17% on weekends

Labor cost as a percent of sales by hour, 8-week totals (synthetic data)

Labor percent of sales by hour, weekday and weekendAt 10am labor is 55% of sales on weekdays and 17% on weekends.10%20%30%40%50%60%Example target 30%Weekday55%Weekend17%7am8am9am10am11am12pm1pm2pm

3. Waste had a pattern, and a recent spike had a cause

Weekly waste stayed between $370 and $440 for seven weeks, then hit $460 in week 8. Bakery accounted for $83 of the $90 increase. Waste also leaned toward slow days: Tuesday and Wednesday made up 41% of waste cost, while Saturday and Sunday, which bring in more than a third of sales, made up 20%. That points to baking for a busy day on a slow one.

Waste jumped $90 in week 8, and bakery was almost all of it

Weekly waste cost by category (synthetic data)

Weekly waste cost by categoryWaste rose from $370 in week 7 to $460 in week 8. Bakery accounted for $83 of the $90 increase.BakeryDairyProducePrepared Food$0$100$200$300$400$500$420Week ofSep 7$395Week ofSep 14$440Week ofSep 21$385Week ofSep 28$410Week ofOct 5$380Week ofOct 12$370Week ofOct 19$460Week ofOct 26

What I would change

I tested one scenario: size the crew to the average sales in each hour, keep at least 3 people and at most 6 on shift, and leave prep and close hours alone.

Weekday 10 am and 11 am
Drop from 5 people to about 3
Weekend 8 am to 12 pm
Go from 5 people to 6
Weekly labor hours
Fall from 313 to 291, which is 22 fewer
Weekly labor cost
Falls from $6,260 to $5,820, a saving of $440

On week 8 sales, labor as a share of sales falls from 34.0% to 31.6%. The scenario does not reach the 30% target, and I would not pretend it does. Getting there would take other changes too, such as pricing, menu mix, or more weekday traffic.

Matching staff to demand frees up about 22 labor hours a week

Average staff on shift by hour: current schedule and scenario schedule (synthetic data)

Average staff on shift by hour, current schedule and scenarioThe scenario schedule uses about 3 people on weekday mid-mornings and 6 on weekend mornings, compared with about 5 on the current schedule.Current scheduleScenario scheduleWeekday (Mon to Fri)012345675.27am68am4.29am310am3.211am512pm4.21pm32pmWeekend (Sat and Sun)37am68am69am610am611am612pm51pm32pm

What the owner gets each week

A one-page weekly review with five numbers: sales against goal, labor percent of sales, the hours that were over or under staffed, waste cost with the biggest category, and what changed since last week. The supporting workbook recalculates when new data is pasted in, so the review takes minutes, not an evening.

What I would check before acting

  • Whether weekday mid-morning really is slow in the café’s own experience, or whether prep and cleaning work happens then that the sales numbers do not show
  • Whether a smaller weekday crew still keeps wait times where the owner wants them
  • Whether the week 8 bakery spike was a one-off, such as a large bake for an event that did not happen, or a new habit
  • Whether the example $20 labor rate and 30% target match the café’s real costs

Tools

Excel (live formulas and weekly summaries), Python (pandas, matplotlib), and a written weekly summary in plain language.

Want a weekly review like this for your business?

I work with small businesses that have the data but not the time to read it. Tell me what you track today and what you wish you knew, and I will send back a project quote.

Request a project quote →

This case study uses synthetic data for a fictional business. It shows my method, not results from a real client.