How do I calculate gross profit margin on a janitorial contract?
The formula is straightforward. Take your contract revenue, subtract all direct costs tied to that contract, and divide by the revenue.
Gross Profit Margin = (Contract Revenue - Direct Labor - Supplies - Travel - Equipment Depreciation) / Contract Revenue
Say you have a commercial office contract paying $4,000 per month. Your crew labor costs $1,800, cleaning supplies run $300, travel to and from the site is $200, and equipment depreciation allocated to that contract is $100. Your direct costs total $2,400. That leaves $1,600 in gross profit, which is a 40% gross margin.
The key is knowing exactly what counts as a direct cost. Direct labor includes wages, payroll taxes, and workers’ comp for the crew members actually cleaning that building. Supplies means everything consumed on the job like chemicals, trash bags, paper products, and cleaning cloths. Travel covers fuel and vehicle costs to get your crew to that specific site. Equipment depreciation covers the floor scrubbers, vacuums, and carpet extractors being used on that contract, spread over their useful life.
What you don’t include in the gross margin calculation is your overhead. Office rent, insurance, your own salary, bookkeeping fees, marketing, and phone bills are all real expenses but they sit below the gross profit line. Gross margin tells you what each contract contributes toward covering those overhead costs and eventually generating profit.
Most janitorial operators aim for 30-40% gross margin per contract. Below 30% and you likely don’t have enough left to cover overhead after accounting for all your contracts. Above 40% is strong, but make sure you’re not undercosting labor by ignoring payroll taxes and workers’ comp in your numbers. A lot of cleaning business owners calculate margin using just the hourly wage, which makes things look better than they are.
Run this calculation on every contract, not just as an average across the business. You might find that your $4,000 office contract earns 40% while your $2,500 retail contract earns 18% because travel time eats into it. That kind of visibility changes how you price new bids and whether you renew underperforming contracts.
If you’re not sure your books are set up to pull these numbers easily, that’s a common problem. Your chart of accounts needs to separate direct costs from overhead, and each contract needs to be tracked individually. Our Wisconsin small business bookkeeping services help cleaning operators structure their books so contract-level profitability is something you can check anytime, not something you guess at.
Wisconsin's Small Business Bookkeeper
The Next Step:
A Quick Conversation
Tell us about your business. We'll talk through what you need, answer your questions, and give you a clear quote.
More Questions
How do I track recurring cleaning contracts in QuickBooks?
Use recurring invoices for each contract and set up classes or customer types to separate monthly contract revenue from one-time jobs. This gives you a clear view of your monthly recurring revenue.
Read answerHow should a roofing contractor handle storm/insurance jobs vs retail jobs?
Track insurance and retail jobs as separate revenue streams using distinct income accounts or classes. Insurance work has a unique payment structure with ACV and RCV supplements that requires careful accounts receivable tracking to see true profitability.
Read answerDo I need to 1099 my subcontractors as a roofer?
Yes, in most cases. Any individual or single-member LLC you paid $600 or more via check or ACH during the year needs a 1099-NEC. Corporations are generally exempt.
Read answerWhat's the best way to track equipment and fuel costs for a landscaping company?
Equipment over $2,500 gets capitalized and depreciated as a fixed asset. Smaller tools are expensed immediately. Fuel is best tracked per truck or crew using fuel cards that feed into your accounting software for job-level cost allocation.
Read answerHow should a pool service company track recurring vs project revenue?
Set up separate service items and income accounts for recurring maintenance and one-off repair or install work. This lets you report monthly recurring revenue independently, which matters for forecasting and business valuation.
Read answerWhat's the difference between direct costs and overhead for a roofing company?
Direct costs are expenses tied to a specific job like shingles, crew labor, dump fees, and subcontractors. Overhead covers what you pay whether you have jobs on the schedule or not, like office rent, insurance, and admin wages. Accurate classification is what makes job costing and pricing reliable.
Read answer