Most grooming salons run on a single P&L. Revenue at the top, payroll and supplies and rent in the middle, some number at the bottom that either makes you exhale or makes you nervous. That view is fine for taxes. It's useless for deciding whether your "Doodle full groom" is quietly bleeding money while your "bath and tidy" is carrying the whole shop.
That gap is where a lot of grooming owners get stuck. They feel like certain services are painful, but they can't prove it, so pricing stays frozen for years and the schedule fills up with work that barely clears cost. Service‑level P&Ls fix that. Not perfectly — allocation is always a bit of a judgment call — but well enough to make real decisions.
This is the method, the allocation rules, the thresholds, and the worksheets. No theory you can't act on by Friday.
Why one salon P&L hides your worst services
Your blended gross margin might look healthy — say 60% after direct costs. But that single number is an average of services ranging from maybe 75% margin down to services barely breaking even once you account for the extra time and product they eat.
A typical example: a shop doing around 330 grooms a month sees doodle and standard‑poodle work as their "premium" tier because the ticket is high — $95, sometimes $110. Feels great at the register. But those coats take 2.5 to 3 hours, need more product, and often need a second pass. Meanwhile a $52 short‑coat bath‑and‑brush is done in 45 minutes with a splash of shampoo. On a per‑hour basis, the cheaper service is often twice as profitable.
The blended P&L never shows this. It just shows revenue up, product costs up, everybody busy. So the owner keeps promoting the high‑ticket, high‑drag service and wonders why the bank balance doesn't reflect how hard the team is working.
The core insight: ticket price tells you almost nothing about profitability. Profit per booked hour tells you almost everything.
The unit that actually matters: contribution per booked hour
Before the worksheets, pick your metric. For grooming, the one that ends arguments is contribution margin per booked hour — revenue for the service minus its direct costs (labor + supplies), divided by the chair‑time it consumes.
Never miss a grooming appointment again.
Furlyly helps you book, confirm, and manage every pet grooming appointment effortlessly.
- Unified appointment scheduling
- Automated client reminders
- Staff availability & shift management
No credit card required
Why per hour and not per service? Because your real constraint isn't money, it's chair‑time and groomer‑hours. Two services can both produce $40 of margin, but if one takes an hour and the other takes two and a half, they are not the same business decision.
We'll build up to that number in steps.
Step‑by‑step: building a per‑service P&L
You can do this in a spreadsheet in an afternoon. One row per service, columns for each cost bucket. Here's the sequence.
-
List your real services, not your menu. Combine anything priced and timed the same. If "small dog full groom" and "cat full groom" behave identically, keep them separate only if the time or product genuinely differs. You want 8–15 rows, not 40.
-
Pull average revenue per service. Use the actual average collected over the last 60–90 days, not the list price. Discounts, comps and "I rounded down for a nice client" all drag the real number below menu price. This gap alone surprises people.
-
Assign standard time. Use your booked or standard time per service. If you already track breed‑time in scheduling, use that. If you don't, this is the moment to start. Time is the spine of everything here.
-
Allocate labor cost. Covered in detail below.
-
Allocate supplies cost. Also below.
-
Allocate overhead. Below — and the part people most often botch.
-
Compute contribution and contribution per hour. Revenue − labor − supplies = contribution. Divide by standard hours for the per‑hour figure. Then subtract allocated overhead to see true net per service.
-
Rank and mark. Sort by contribution per booked hour. The bottom of that list is your action list.
A simple visual of these steps helps teams follow the build and keep the worksheet current.
Allocation rule #1: Labor
Two ways to do this, depending on how you pay.
If you pay hourly or salary: use a fully‑loaded hourly cost. Take the groomer's wage, add payroll taxes and any benefits, and divide by realistically billable hours — not clocked hours. A groomer clocked 40 hours a week is rarely grooming 40 hours; between setup, cleanup, no‑shows and dead gaps, billable might be 30–33. Dividing by 40 understates your labor cost per service and makes everything look rosier than it is. A worked example: a groomer costs you roughly $27/hour fully loaded. If they're realistically billable around 31 hours out of a 40‑hour week, your true labor cost per billable hour is closer to $35. That's the number you multiply by standard service time.
-
A 2.75‑hour doodle groom → about $96 in labor.
-
A 0.75‑hour short‑coat bath → about $26 in labor.
If you pay commission: it's simpler. Labor cost for a service is just the commission rate times the service revenue. If a groomer earns 45% on a $95 groom, that service carries $42.75 of labor cost. Commission structures make service‑level costing easier because the labor cost scales automatically with the ticket. If you're weighing pay structures, the tradeoffs are worth reading through in our breakdown of groomer commission and bonus models.
One mistake to watch for: mixing methods. If some staff are hourly and some are commission, cost each service using whoever typically performs it, or run a weighted average. Don't apply a shop‑wide commission rate to work that's actually done by an hourly junior groomer.
Allocation rule #2: Supplies
Supplies feel small per groom, which is exactly why they get ignored — and why they quietly compound. Don't try to track every squirt of shampoo. Build a simple supply cost per service tier based on realistic consumption:
| Service tier | Product cost estimate | Notes |
|---|---|---|
| Short‑coat bath & brush | $3–$5 | Base shampoo, minimal product |
| Standard full groom | $6–$9 | Shampoo, conditioner, cologne, wipes |
| Heavy/curly coat groom | $11–$16 | Double wash, de‑matting product, more blade wear |
| De‑shed treatment add‑on | $7–$10 | Specialty product is the whole cost |
Two things people consistently underestimate. First, consumables that aren't shampoo — blades and drum wear, sanitizer, disposable towels, nail grinder bands. Curly and matted coats dull blades far faster, and blade sharpening or replacement is a real per‑groom cost on that tier. Second, rework product. If a service frequently needs a second pass, its true supply cost runs higher than the tier suggests.
Estimate consumption honestly rather than precisely. A range you actually believe beats a decimal you invented.
Allocation rule #3: Overhead (where most people go wrong)
Overhead is rent, utilities, insurance, software, front‑desk wages, marketing — everything not directly tied to one groom. The instinct is to spread it evenly across services. That's the error.
Even‑spread overhead punishes your quick, cheap services and flatters your slow, expensive ones. A 45‑minute bath gets charged the same overhead slice as a 3‑hour groom, even though the groom occupied four times the chair‑time and four times the rent‑per‑minute.
Allocate overhead by time, not by ticket count. Total your monthly overhead, divide by total booked service hours in a month, and you get an overhead cost per chair‑hour. Then charge each service its share based on how long it takes.
-
The 2.75‑hour doodle absorbs ~$55 of overhead.
-
The 0.75‑hour bath absorbs ~$15.
Stack it up for that doodle: $95 revenue − $43 labor (commission) − $14 supplies − $55 overhead = negative $17. The service that felt premium at the register loses money once time‑weighted overhead lands on it.
That number never appears on your blended P&L. That's the entire reason to do this exercise.
Reading the results: decision thresholds
Once every service has a contribution‑per‑hour and a true‑net number, use thresholds instead of gut feel. Here's a workable set — adjust the cutoffs to your market.
-
Contribution per hour above your target (e.g. $60+/hr) healthy. Protect it, promote it, make sure it's easy to book.
-
Between break‑even and target acceptable but watch it. Small price or time fixes move these fast.
-
Positive contribution but negative true‑net (overhead sinks it) it covers its own labor and supplies but not its share of the room. Reprice or shorten the time — don't necessarily kill it.
-
Negative contribution the service loses money before overhead even shows up. This is a prune‑or‑reprice‑now candidate.
One nuance most owners miss: a service with negative true‑net isn't automatically a cut. If it's a gateway service that reliably converts to profitable recurring bookings, it might be a loss leader you keep on purpose. The threshold tells you where to look, not what to do blindly.
The prune / reprice / promote worksheet
For every service that trips a threshold, run it through this before touching your menu:
-
What's the gap to break‑even? Dollars and percent. A doodle that's $17 underwater needs roughly a 20% price bump or about 25 minutes shaved off its standard time.
-
Can time come out instead of price going up? Faster drying setup, better pre‑groom brushing at intake, a standing de‑matting fee that discourages the worst cases. Sometimes you fix the P&L without touching the price tag at all.
-
Is demand elastic here? If this service is 40% of your volume, a price move has big revenue consequences and needs a softer touch than a niche add‑on.
-
Does it feed anything? Check whether first‑time clients on this service rebook. A break‑even groom that produces loyal 6‑week regulars is worth more than its own P&L row.
-
Decide the lever raise price, add a coat/condition surcharge, shorten standard time, cap the number of slots, or discontinue.
Running every flagged service through those five stops the decisions from becoming emotional.
When repricing makes sense — and when it doesn't
Reprice when: the service is negative on contribution or true‑net, demand is steady, and you have some pricing power — loyal clientele, limited local competition, or a genuinely differentiated result. Coat‑complexity surcharges are the easiest win here because clients understand that a matted doodle is more work than a smooth‑coat beagle.
Prune when: a service is chronically negative, rarely booked, and doesn't feed profitable follow‑on work. Low‑volume specialty services that eat prep time and product are the usual suspects. Cutting them frees chair‑time for your high‑contribution work.
Promote when: you find services with strong contribution per hour that are underbooked. This is genuinely the most useful discovery in most of these exercises — there's usually one quiet, fast, profitable service the shop never pushes. Feature it, make it the default suggestion, build it into your booking flow.
Who should not do a full reprice off one month of data: anyone with big seasonal swings. A single winter month will overstate de‑matting demand and understate summer de‑shed. Use 60–90 days minimum, and if demand swings hard by season, run the P&L twice a year.
A real scenario
A two‑groomer suburban salon, somewhere between $3k and $4k of profit some months and near zero others despite always being fully booked. Classic sign of service‑mix rot.
Building per‑service P&Ls surfaced two things. Their flagship large‑breed doodle groom ran slightly negative on true‑net once time‑weighted overhead was applied — it was the "prestige" service and it was dragging the shop. Meanwhile a 50‑minute bath‑tidy‑nails combo was their single most profitable service per hour and was barely mentioned anywhere on their booking page.
They didn't kill the doodle groom. They added a coat‑condition surcharge — mild, medium, severe matting tiers — that lifted the average doodle ticket by about $18, and trimmed standard time with a stricter intake‑brushing step. They also started defaulting new short‑coat clients to the bath‑tidy combo instead of upselling toward the slow premium groom.
Within a couple of months the busy‑but‑broke pattern eased. Same appointment volume, noticeably better months. Nothing dramatic — just the mix quietly shifting toward work that actually paid.
Keeping the numbers alive
The build is the hard part; keeping it current is what people drop. Two habits keep it useful:
-
Refresh average revenue and standard times quarterly. Discount creep and gradual time drift both erode margins without announcing themselves.
-
Re‑pull labor and overhead per hour whenever pay or rent changes. A wage bump or a lease increase shifts every service's true‑net at once.
If you already track booked appointments and standard times to project revenue and staffing — the same foundation you'd use in a lightweight booking‑to‑revenue forecast — you're most of the way to per‑service P&Ls already. The time data is the expensive input, and if it's captured cleanly, adding cost allocation on top is straightforward. Systems that already hold your service times, pay data and consumption history make the quarterly refresh a filter‑and‑sort exercise instead of an afternoon of manual reconstruction.
Refresh average revenue and standard times quarterly, and re‑pull labor and overhead per hour whenever pay or rent changes.
Stop looking at ticket price and total revenue. Start looking at what each service earns per hour of chair‑time after it pays its own way. Do that once, honestly, and your pricing and promotion decisions stop being guesses.
Stop looking at ticket price and total revenue. Start looking at what each service earns per hour of chair‑time after it pays its own way. Do that once, honestly, and your pricing and promotion decisions stop being guesses.
Ready to streamline your grooming business?
Join 500+ pet groomers using Furlyly to save time, reduce scheduling conflicts, and deliver exceptional client experiences.