Bookkeeping, payroll, and tax services for small businesses across the Valley of the Sun.

Call or Text: (602) 730-4560

How do I account for service agreements and maintenance contracts in my HVAC business?

When a customer pays $300 upfront for an annual maintenance agreement, that $300 is not revenue yet. You received the cash, but you haven’t done the work. The accounting term for this is deferred revenue, and it sits on your balance sheet as a liability until you perform each service visit.

Here’s a simple example. You sell a maintenance contract in January for $300 that covers two visits, one in spring and one in fall. When the customer pays, you record $300 as cash in and $300 as deferred revenue. Your revenue stays at zero because you haven’t earned anything yet. When you complete the spring visit in April, you move $150 from deferred revenue into service revenue. Same thing when you complete the fall visit in October. Now the full $300 has been earned and your liability balance is zero.

This matters more than most HVAC owners realize. If you’re booking the full contract amount as revenue when collected, any month with heavy renewals looks artificially profitable. Then the months where your techs are actually out performing those visits show no contract revenue at all. Your monthly P&L becomes unreliable, and you can’t tell whether the business is genuinely profitable in a given month or just benefiting from collection timing.

The recognition method depends on how your contracts work. If the agreement covers a fixed number of visits, recognize revenue per visit. Two visits means half per visit. Four visits means a quarter per visit. If the contract is more of a monthly retainer that includes priority service and discounts, recognizing revenue evenly each month makes more sense. Pick the method that best reflects when you’re actually delivering value and stick with it.

In QuickBooks Online, set up a liability account called Deferred Revenue or Unearned Service Revenue. When you receive payment, record it to that account instead of an income account. As each visit is completed, create a journal entry moving the appropriate portion from the liability account to your service revenue account. It takes a few extra minutes per contract but the accuracy is worth it.

This is especially important if you’re growing your contract base. A business that goes from 50 contracts to 200 contracts in a year could show a huge revenue spike from collections that doesn’t reflect actual service delivery. Lenders and potential buyers look at this, and so should you when making hiring or equipment decisions. Skilled trades businesses that get this right have a much clearer picture of their real margins.

If your books currently lump contract payments into revenue when received, a cleanup is straightforward. Go through active contracts, figure out what’s been performed versus what’s still owed, and adjust accordingly. Phoenix bookkeeping services built around your specific business model can set this up properly from the start so your financials reflect reality every month.

Your Valley of the Sun Bookkeeper

The Next Step:
A Quick Conversation

Tell us what's going on with your books. We'll listen, ask a few questions, and give you a clear quote with no surprises.

More Questions

How do I separate personal and business expenses as an owner-operator leased to a carrier?

Open a dedicated business bank account and route all carrier settlements there. Pay yourself through owner's distributions, use a business credit card for expenses, and track every deductible category separately. This keeps your books clean and prevents missed deductions at tax time.

Read answer

Should I use job costing or simple expense tracking for my electrical contracting business?

If you do project-based work like new construction, remodels, or commercial jobs, job costing is worth the effort. It shows you which job types actually make money. Simple expense tracking only works if your business is strictly service calls.

Read answer

What is the difference between bookkeeping, accounting, and controller services?

Bookkeeping records your daily transactions and keeps the books accurate. Accounting interprets those numbers for tax planning and financial statements. Controller services provide financial oversight and strategic reporting. Most small businesses start with bookkeeping and add layers as they grow.

Read answer

How do I handle progress billing for large residential trade jobs?

Define clear milestones in your contract, invoice as each milestone is completed, and track your costs against each phase. Progress billing protects your cash flow so you're not financing a customer's project out of your own pocket.

Read answer

How do I account for subcontractor payments and ensure 1099 compliance on construction jobs?

Set up each subcontractor as a 1099-eligible vendor in QBO before you pay them, and code every payment to the correct project. Collect W-9s upfront, track retainage as a separate liability, and file 1099-NECs by January 31 for any sub paid $600 or more.

Read answer

How should a real estate brokerage track individual agent commissions and 1099 reporting?

Set up QuickBooks Online with classes or sub-customers for each agent. Track gross commission received, agent split paid, and brokerage retention per transaction, then use those records to generate 1099-NECs at year end.

Read answer

Phoenix-based bookkeeping firm serving small businesses across the Valley of the Sun. We provide bookkeeping, payroll, tax preparation, and fractional CFO support with transparent pricing and no upselling. Owned and operated by David Morrow, a former COO with 20+ years of business experience.

Client Reviews

5-Star Rated Firm

Social

  • QuickBooks Online Certification Level 1 badge
  • QuickBooks Online Certification Level 2 badge
  • QuickBooks Online Payroll Certification badge

© 2026 2Morrow Bookkeeping LLC