Administrative & Support Services Chart of Accounts: Labor, Contracts, and Overhead
How janitorial, staffing, security, and facilities management companies should structure their chart of accounts to separate billable labor from overhead and see real margin by service line.
If you run a janitorial company, staffing agency, security firm, or facilities management business, your biggest cost is people — and most of those people work at a client's site, not yours. The default QuickBooks chart of accounts doesn't make that distinction. It gives you one payroll expense line, which mixes the wages of the cleaner working a client's office floor with the salary of the office manager running your business. That single number can't tell you whether a contract is profitable.
This guide walks through setting up a chart of accounts built for labor-intensive service businesses — the kind where the product you sell is hours of work performed on someone else's premises.
Why a Generic Chart of Accounts Fails This Industry
Administrative and support services covers a wide range of businesses — janitorial services, temp staffing, call centers, document management, facilities management, security guards — but they share a structure: you bill clients for labor and services, that labor is your largest cost, and most of it happens off your own premises under a client contract.
A generic chart of accounts groups everything labor-related into one "Payroll Expenses" account. That tells you total payroll spend, but it can't answer the questions that actually run the business:
- Which contracts are profitable once you net out the wages of the people working them
- What billable service delivery actually costs versus what it costs to run the office that manages those contracts
- How much you're spending to source and screen workers before they ever bill a client
- What you're owed for work already performed but not yet invoiced
Under Generally Accepted Accounting Principles (GAAP), the cost of directly delivering a service belongs in cost of goods sold, sitting right above gross profit — while the cost of running the business sits below it, in operating expenses. Collapsing both into one payroll line erases that line entirely, and with it any way to see gross margin by service or by client.
Separating Direct Labor from Administrative Overhead
The single most important structural decision for this industry is splitting payroll into two groups, based on one question: is this person's time billed to a client?
Direct labor (cost of goods sold) covers wages for people actually performing the contracted work — the janitorial crew on a client's floor, the temp worker placed at a client site, the security guard on assignment, the support staff answering calls under a client contract. This is the cost of producing the service you're selling.
Administrative payroll (operating expense) covers everyone who keeps the business running but doesn't personally deliver billable work — office staff, management, the people who sell and schedule contracts rather than staff them.
This split is what turns a payroll total into a margin number. Once direct labor sits in cost of goods sold, gross profit tells you what's left after paying the people who actually did the work — before rent, insurance, and management salaries come out.
Core Accounts for Administrative & Support Services
The table below pulls directly from the Administrative & Support Services chart of accounts template — the accounts that separate this industry from a generic services business.
| Account | Number | Type | Purpose |
|---|---|---|---|
| Unbilled Services | 1210 | Accounts Receivable | Services performed but not yet invoiced to the client |
| Contract Retainage Receivable | 1220 | Accounts Receivable | Amounts a client is holding back under contract terms until work is confirmed |
| Direct Labor - Janitorial Staff | 5000 | Cost of Goods Sold | Wages for cleaning staff working on client sites |
| Direct Labor - Temporary Workers | 5010 | Cost of Goods Sold | Wages for temp staff placed at client locations |
| Direct Labor - Security Personnel | 5030 | Cost of Goods Sold | Wages for security guards on client assignments |
| Staffing Recruiter Costs | 5400 | Cost of Goods Sold | Costs to recruit and source temporary workers before they're placed |
| Background Checks - Direct | 5410 | Cost of Goods Sold | Screening tied to a specific worker placement |
| Temp Agency Payables | 2010 | Accounts Payable | Amounts owed to staffing suppliers you subcontract through |
| Temp Worker Wages Payable | 2210 | Other Current Liability | Wages owed to temporary workers, tracked separately from regular payroll |
| Deferred Service Revenue | 2240 | Other Current Liability | Client payments received in advance of services being performed |
| Admin Salaries & Wages | 6000 | Expense | Salaries for office and administrative staff — not billed to any client |
| Recruiting & Job Postings | 6710 | Expense | Hiring and advertising costs for administrative hires, kept separate from client-facing recruiting |
Notice the pattern: recruiting and background checks appear twice, once in cost of goods sold (5400, 5410) for sourcing the workers you place on client contracts, and once in operating expenses (6710) for hiring your own office staff. Same activity, different purpose — one is a direct cost of delivering a service, the other is running the business.
How This Gets Booked: A Staffing Agency Placement
A staffing agency places a temp worker with a client for a two-week assignment at $28/hour, billing the client $42/hour.
The wages paid to the temp worker post to Direct Labor - Temporary Workers (5010), a cost of goods sold account, because that person's time is the service being sold. If the agency ran a background check specifically for this placement, that cost posts to Background Checks - Direct (5410) — also cost of goods sold, because it was incurred to deliver this specific placement.
Meanwhile, the agency's own office coordinator who scheduled the placement and handled the client relationship is paid from Admin Salaries & Wages (6000), an operating expense. That salary doesn't scale with any one placement — it's the cost of running the agency.
At the end of the two weeks, if the agency has performed the work but not yet sent an invoice, the earned revenue sits in Unbilled Services (1210) until billing catches up. Once invoiced, it moves to standard accounts receivable. This matters for accrual-basis reporting: the revenue and its matching labor cost should land in the same period, even if the invoice goes out a few days later.
With this structure, the agency can pull a report on the placement alone — $42/hour billed minus $28/hour in direct labor minus the background check — and see the actual margin on that assignment, separate from the office coordinator's salary and every other overhead cost.
How This Gets Booked: A Janitorial Contract with Retainage
A facilities client signs a monthly janitorial contract but holds back 10% of each invoice as retainage — money owed but not released until the end-of-year service review.
The janitorial crew's wages post to Direct Labor - Janitorial Staff (5000), the cleaning chemicals and supplies they use on-site post to Cleaning Supplies - Direct (5200), and both sit in cost of goods sold because they're incurred to deliver this specific contract. When the monthly invoice goes out, 90% becomes standard accounts receivable, and the 10% held back posts to Contract Retainage Receivable (1220) — still an asset, since the client owes it, but tracked separately so it doesn't get mistaken for cash that's about to arrive.
Separating retainage matters for cash flow planning. A business with $50,000 in accounts receivable that's genuinely 30 days out plans very differently than one where $10,000 of that total won't be collected until a year-end review clears.
Get Started
Our administrative & support services chart of accounts template includes all of these accounts pre-configured — direct labor split from administrative payroll, staffing and screening costs separated by purpose, and retainage tracked apart from standard receivables. Import it into QuickBooks in 60 seconds.