How do HVAC contractors track service calls vs installation jobs in their books?
Service calls and installations are different businesses running under the same roof. Service is small-ticket, same-day work with quick turnaround. Installations are larger jobs that span days or weeks with material orders, crew scheduling, and sometimes subcontractors. Your books need to treat them differently or you’ll never know which side is actually making money.
Start with the chart of accounts. Create separate income accounts for service revenue and installation revenue. Some contractors go further and split service into diagnostics, repairs, and maintenance agreements. On the installation side, you might separate residential installs from commercial. The point is that a single “Sales” line on your profit and loss statement hides the story. Splitting revenue by type lets you see the mix month over month and spot when service is subsidizing weak installation margins or vice versa.
For installations, use job costing. Every install becomes a job in your accounting software with its own materials, labor, equipment, and subcontractor costs assigned to it. When the crew pulls condensers and line sets from the warehouse, those costs hit the job. When payroll runs, the hours worked on that install get coded to it. At the end of the job, you compare total costs against what you billed and see the actual gross margin. Without job costing, you’re guessing at installation profitability based on gut feel.
Service calls don’t need that level of detail. A tech drives to a house, diagnoses the problem, swaps a capacitor, and leaves with a paid invoice. Trying to job-cost every service ticket creates more administrative work than the data is worth. Use flat-rate pricing, invoice on site, and code the revenue to service income. Track materials used through a simple truck stock system or by coding parts directly to cost of goods sold for service work. Your margin on service comes from labor rate and parts markup, which you can monitor at the category level without per-call job costing.
Maintenance agreements deserve their own treatment. These are prepaid contracts, so the cash comes in upfront but the revenue should be recognized over the life of the agreement. Book the cash receipt to a deferred revenue liability account and recognize income monthly as you perform the visits. Contractors who book the whole contract as income on day one overstate revenue in the month of sale and understate it every month after.
The invoicing workflow differs too. Service calls close same-day with payment collected before the tech leaves. Installations usually involve a deposit, progress billing or a balance due at completion, and sometimes financing. Tracking accounts receivable matters more on the installation side because balances sit open longer. Invoicing and payment tracking gets more complicated when you’re juggling deposits, milestone payments, and final billings across multiple active installs.
The reporting payoff is what makes this worth doing. At month end you can pull a profit and loss statement that shows service gross margin separately from installation gross margin. You can see whether your service department is profitable on its own or just a lead generator for installs. You can spot when material costs are eating installation margins and adjust pricing. You can decide whether to hire another install crew or another service tech based on where the demand and margins are.
Most HVAC contractors we see running bookkeeping services in Pasadena started with one income account called “Sales” and no job costing. They could tell you gross revenue and that was about it. Separating service from installation, adding job costing on the install side, and handling maintenance agreements correctly takes a few hours to set up and gives you financial visibility you can actually run decisions from.
Pasadena's Small Business Bookkeeper
The Next Step:
A 15-Minute Call
Tell us where your books stand today. We'll ask a few questions, share how we can help, and give you a clear quote.
More Questions
How do I manage certified payroll reporting for prevailing wage jobs in California?
California public works jobs require weekly certified payroll reports filed electronically with the DIR through eCPR. You need to track hours, work classifications, wage rates, and fringe benefits for every worker on every project, with strict compliance requirements and steep penalties for errors.
Read answerWhat accounting modules does Yardi include for commercial properties?
Yardi's commercial accounting suite covers general ledger, AP and AR, lease administration, CAM reconciliations, percentage rent, tenant billing, bank reconciliation, budgeting, and financial reporting. Everything flows to the GL automatically so property-level and consolidated reporting stays in sync.
Read answerHow do I handle bookkeeping for a cleaning business with both employees and contractors?
Run W-2 employee wages through payroll and track 1099 contractor payments separately in accounts payable. California's ABC test is strict, so most cleaners working under your direction are legally employees. File 1099-NEC for any contractor paid $600 or more.
Read answerHow do I track warranty work costs for my electrical contracting business?
Set up a separate job or project specifically for warranty callbacks and code all labor, materials, and travel time to it. Treating warranty as its own cost bucket shows you the true expense and lets you price it into future bids.
Read answerShould my landscaping company track revenue by service type?
Yes. Separate income accounts for maintenance contracts, one-time projects like hardscaping and installations, and add-on services like irrigation and lighting show which revenue streams are growing and which are actually profitable.
Read answerWhat are the California sales tax filing deadlines for small businesses?
California sales tax returns are filed with the CDTFA on a monthly, quarterly, or annual schedule based on your sales volume. Most small businesses file quarterly, with returns due the last day of the month after each quarter ends.
Read answer
