Role
Designer & developer
Client
Local small business (anonymized)
Input
Monthly Square sales exports (CSV)
Output
Printable weekly staffing schedule

The problem

The owner of a busy, seasonal food-service business built the weekly staffing schedule from memory: "Fridays are busy, Tuesdays are slow." That works until a holiday weekend, a school break, or a local event shifts the pattern — and then the business is either overstaffed and losing margin, or understaffed and losing customers.

The sales data to answer the question already existed, sitting in the owner's Square account. It just wasn't in a form anyone had time to analyze.

The solution

I built a lightweight planner that lets the owner upload one month of Square data at a time, then pick any week — past or future — and see revenue history hour by hour for all seven days. The owner assigns shifts directly on the grid, saves the plan, and prints the full week as a PDF.

Upload a month at a time

Square exports are dropped in as CSVs and saved automatically. The tool gets more accurate as more months are added.

Pick any day in the week

The app finds the same ISO week in prior years, so holiday weeks and seasonal peaks line up correctly. The owner can name the week (e.g., "Memorial Day Weekend").

Compare, then override

A rolling three-year comparison window updates automatically as new-year data arrives, and any day's comparison date can be overridden when a holiday moves.

Schedule & print

Shifts are assigned on the hourly grid, with labor hours and labor cost as a share of forecast revenue updating as the owner works.

Try the interactive demo

The demo below uses synthetic data for a fictional café. No real client information appears anywhere in this case study. Click any cell to add staff, Shift-click to remove, and change a day's comparison year to see the forecast respond.

Week Schedule Planner — demoOpen full screen ↗

Design decisions

  • Data owner in control. The tool works from the owner's own exports, with no integration to set up and nothing to connect to a live account.
  • ISO-week matching. Aligning weeks by week number and weekday, rather than calendar date, keeps Saturdays compared with Saturdays.
  • Human in the loop. The grid shows a suggested staffing level, but every cell is editable — the owner knows things the data doesn't, such as a catering order or a planned promotion.
  • Print-first output. The finished schedule prints cleanly, because that is where it actually gets used — posted in the back of the shop.

Impact

The owner moved from a recalled-from-memory schedule to one grounded in three years of sales patterns, and could see at a glance which hours were consistently over- or understaffed. Planning a week that once meant guesswork became a short, repeatable routine.

Privacy

Because the tool works from the owner's own exports, this portfolio version replaces all client data with synthetic figures. Business names, revenue, and staff details shown in the demo are entirely fictional.