Sample data. Service sales per paid stylist hour, after hourly wages. Stylist N names are made up.
| Stylist | Rate | Sched hrs | Billable hrs | Service $ | Labor $ | Util % | $/Hr |
|---|---|---|---|---|---|---|---|
| TOTAL | 0 | 0 | $0 | $0 | — | — |
Service $ is production only (no gratuity). Tips are a pass-through on the Daily inputs card. Labor includes 7.65% FICA. Daily lists stylists employed on the selected date (Team hire/end). Manage roster on the Team tab.
| Service revenue (net tips) | |
| Client / service count | |
| Retail sales | |
| Tips (pass-through) | |
| New clients today | |
| No-shows + late cancels | |
| Pre-books (rebooked today) | |
| Daily fixed OpEx share | |
| COGS / product cost today | |
| Other variable (fees etc.) | |
| Txn fee rate % (default 2.6) | |
| Card / collected sales for fee $ (blank = service+retail) | |
| Chairs available today |
Add your service menu here (name, price, booked minutes). Services found in an uploaded checkout CSV are added automatically. Counts on the next table use this list.
| Name | Category | Price $ | Minutes | $/hr ⓘ |
|---|
Booked Min is the menu time. Actual min is how long it really took (average per ticket today). Save Day stores both so we can suggest menu-time changes.
| Service | Cat | Price | Booked min | Actual min | Count | Rev | $/hr booked |
|---|---|---|---|---|---|---|---|
| FROM COUNTS | 0 | $0 | — | ||||
Uses saved days in the range above. Enter Actual min on today’s counts, then Save Day. After several tickets, we’ll flag services that routinely run long or short and suggest a new book time (rounded to 5 minutes).
| Service | Tickets w/ actual | Booked min | Avg actual | Diff | $/hr booked | $/hr actual | Suggestion |
|---|
| # | Service | Cat | Count | % jobs | Revenue | % rev | Hours | $/hr ⓘ |
|---|
Read-only view of days you already saved. Nothing on this tab writes over Daily / YTD data. Use it to see how every Monday (or any weekday) behaved across the year before you post a schedule.
| Weekday | Days | Avg service $ | Avg retail | Avg tickets | Avg sched h | Avg billable h | Avg util | Avg RPLH | Avg profit | Avg stylists |
|---|
Gold = positive or above zero. Red = negative. Empty cells have no saved day.
| Stylist | Days | Avg hours | Avg util | Avg RPLH | Avg production | Total $ |
|---|
| Date | Weekday | Service $ | Retail | Tickets | Sched h | Billable h | Util | RPLH | Profit | Stylists |
|---|
Write schedule rebuilds the week from usual days + history (replaces hand edits). Apply note edits the posted week. Easter, July 4, Thanksgiving, Christmas stay closed.
Walk-ins and first-name-only tickets are ignored. Full names (First Last) are stored in this browser when you upload a Checkout Line Items CSV.
| Client | Visits this month | First seen | Status |
|---|
| Returning clients this month | |
| First-time clients who returned in 90 days (cohort) | |
| First-time clients in that cohort | |
| Active clients (seen in last 12 mo) | |
| Total visits by active clients (12 mo) |
Upload a checkout line-items CSV with a client column to store full names and fill these automatically.
Estimate only, not tax advice. S-corp owner payroll and state taxes change the real number; check with your CPA.
Named-client rankings use full client names from uploaded CSVs. Spend = services + retail; tips are never included. A visit = a day with a service (retail never adds a visit).
| # | Client | Visits | Spend $ | Last visit |
|---|
| # | Client | Visits | Spend $ | Last visit |
|---|
Set biweekly (or other) period length and anchor date. Bonus tiers are based on RPLH = production $ ÷ scheduled hours for the period.
Example: $50 → 10% and $55 → 25%. Add or remove rows as needed. Rates are percent of production (or of overage in progressive mode).
| # | Min RPLH ($/hr) | Bonus rate (%) |
|---|
Save daily stylist hours & production, then Refresh.
| Stylist | Periods worked | Periods qualified | Qualifying rate | Avg RPLH | Total production | Total bonus | YTD wages ⓘ | YTD production ⓘ | YTD production after wages ⓘ |
|---|
These drive color coding and break-even checks. Utilization = billable hours ÷ scheduled hours. Labor-cover RPLH is wage × (1 + employer burden), drawn on every stylist RPLH chart. Leave cover wage blank to use the most common roster rate; type a wage if pay changes.
These roll into daily, monthly and annual profit. When you save, the yearly total (monthly × 12) is spread evenly over this year's operational days: every day that has a saved record, plus the rest of the year projected at the salon's observed open rate. Days with no record (closed, e.g. holidays) carry $0. Every saved day of the year is updated right away; only its fixed-cost share changes.
Set the hours your salon is open each day. The scheduler covers opening and closing, keeps shifts inside these hours and leaves Closed days unstaffed. Leave a time blank to use the hours found in your booking data.
Add, rename, reorder (↑↓), set hire/end dates and rates. Array order is the Team order used on Daily, Weekly, and Schedule. Hire/end filter who appears on Daily for a given date (blank = always active). Edit weekly availability in the calendar below (active employees only). Guides Write schedule. Saved in this browser.
| Order | Name | Hourly rate $ | Employed |
|---|
Calendar-week view of active employees (started by today; no end date or end ≥ today). Each person has a color. Click a filled cell to mark that day off; click an empty cell (or double-click a filled one) to set start/end. Lightly staffed days show a count badge and a muted column tint (fewer than half of active staff, minimum threshold 2).
| Stylist | Hours | Production $ | Labor $ | RPLH | Util % |
|---|