
October 9, 2026 · Mitt Patel · 5 min read
You just placed a $600 order with your supplier: floor stripper, microfiber cloths, trash liners, a replacement backpack vacuum. It covers every client you have this month. Six weeks from now, when you're deciding whether to raise the rate on your biggest office account, you won't have any idea how much of that $600 actually belongs to them.
Why this happens
Most cleaning businesses buy supplies in bulk because it's cheaper and faster. One trip to the supplier, one invoice, done. The problem is that invoice usually gets entered as a single lump: "Supplies - $600." It sits in one expense account, mixed in with everything else you bought that month.
That single number is useless when you try to figure out which clients are profitable. You know your total labor cost roughly, because you can look at hours scheduled per account. But chemicals, paper products and equipment wear don't get tracked per account at all. They just disappear into overhead.
This can lead to two specific bad decisions. First, you underprice large accounts that actually use more product than small ones. A big office with multiple bathrooms and a break room goes through paper towels, liners and glass cleaner much faster than a three-room house. If you price both jobs mostly on hours, you're quietly eating the supply cost difference on the big account.
Second, you can't tell a client is unprofitable until it's too late. You might think an account is fine because the hourly math looks okay, while the real story is that a floor machine takes a beating there every visit and needs parts occasionally. Without separating supply costs, that expense gets buried in "general supplies" and never gets tied back to the one client causing it.
A worked example
Say you run a small crew servicing eight clients. In one month, you spend $600 total on supplies: chemicals, paper goods and a replacement vacuum belt. Right now, that $600 sits in one account, and you have no way to tell whose job used what.
Suppose you track hours per client for the month, and your biggest account, a dental office, gets cleaned four times a week for two hours each visit. That's 32 hours out of, say, 160 total hours worked across all clients that month. That's 20 percent of your labor time.
If you allocate the $600 in supplies by that same 20 percent, the dental office carries $120 of supply cost for the month. Compare that to a small residential client who gets cleaned once a week for one hour, roughly 4 hours out of 160, or 2.5 percent. That client's allocated supply share is about $15.
Now look at what each client pays you. If the dental office pays $800 a month and the residential client pays $150 a month, you can start to see real profit per account once labor and allocated supplies are both counted, instead of guessing from the invoice total alone.
This isn't exact to the penny. Hours are a reasonable stand-in for supply use when you don't track every roll of paper towel by client. But it moves you from zero information to a workable estimate.
How to set it up
- Create separate expense lines for supplies. In QuickBooks Online, split "Supplies" into categories like Cleaning chemicals, Paper goods, and Equipment and repairs. This alone tells you where the $600 a month is actually going.
- Track hours per client, even roughly. If you already schedule jobs, you likely have this. Pull total hours worked per account for the month from your scheduling tool or timesheets.
- Calculate each client's share of total hours. Divide each client's hours by total hours worked across all accounts that month. This gives you a percentage.
- Apply that percentage to the month's supply spend. Multiply total supply cost by each client's hour-share to get an allocated supply cost per account.
- Compare allocated cost plus labor to what the client pays. This is the number that tells you whether an account is actually profitable, not just whether it looks busy on your calendar.
- Flag large or heavy-use accounts for a closer look. If an account uses a floor machine, strips wax, or goes through chemicals faster than its hours suggest, note it separately. Hours are a good general stand-in, but a few accounts may need more specific tracking if the mismatch is large.
Mistakes that undo this
- Lumping all supplies into one account forever. If you never split chemicals, paper goods and equipment apart, you can't see which category is driving cost increases.
- Forgetting to update the hours. If you set this up once and never refresh the hour totals as clients are added or dropped, the allocation drifts and stops meaning anything.
- Allocating evenly instead of by hours. Splitting supply cost equally across all clients ignores that a big office uses far more product than a small home, and it will understate the true cost of your largest accounts.
- Only doing this once. A single month's snapshot can be thrown off by one bulk order or one equipment repair. Looking at a few months together gives a steadier picture.
- Skipping the equipment piece. Vacuum belts, mop heads and machine repairs tied to one difficult account often get missed because they feel like one-off purchases rather than ongoing cost.
Monthly checklist
- Separate supply purchases into chemicals, paper goods, and equipment and repairs.
- Pull total hours worked per client for the month.
- Calculate each client's percentage share of total hours.
- Allocate total supply spend by that percentage, client by client.
- Compare allocated cost plus labor against what each client pays.
- Flag any account where equipment wear or chemical use seems out of line with its hours.
Common questions
Do I need to track every roll of paper towels by client?
No. For most accounts, allocating supply cost by hours is close enough to be useful. Exact per-client tracking only makes sense for a handful of large or unusual accounts where the gap between hours and actual usage seems large.
What if one client genuinely uses more supplies per hour than others?
Note that account separately and watch it over a few months. If a client consistently needs more chemicals or faster equipment turnover, that's useful information for pricing that account specifically, rather than spreading the cost across everyone else.
How often should I redo this calculation?
Monthly is reasonable for most small crews, since hours and supply spending both shift as clients are added or dropped. Quarterly can work if your client list is stable and doesn't change much month to month.
Does this work in QuickBooks Online, or do I need separate software?
QuickBooks Online handles the expense categories well if you split supplies into their own lines. The hours-per-client allocation itself is usually done outside QuickBooks, in a simple spreadsheet, since it depends on your scheduling data.
North Hudson Bookkeeping sets up this kind of expense tracking and allocation for cleaning businesses, and can help keep it current month to month so you're not rebuilding it from scratch every time you want to check a client's profitability. The first call is free.
