How to Record Recurring Service Contract Revenue in QuickBooks

Jul 11, 2026

PDF, JPG, PNG, BMP, HEIC, TIFF

Upload your bank statement

Short answer: When a customer prepays an annual or multi-visit service plan, that cash is unearned (deferred) revenue, which is a liability, not income. You recognize it into revenue as each service is delivered, not all at once when the money hits the bank. Book the full plan price to a deferred-revenue liability account when you collect it, then move a slice into income every time you complete a treatment, cleaning, or maintenance visit.

Last updated July 2026.

Why prepaid service plans are a liability, not income

Recurring service businesses sell future work. A pest control company sells four quarterly treatments, an HVAC shop sells a two-visit annual maintenance plan, a lawn care crew sells a season of mowings, and a cleaning company sells a block of biweekly visits. In each case the customer often pays up front, so the cash arrives long before the work is done.

Under accrual accounting, revenue is earned when you deliver the service, not when the deposit clears. Until you show up and do the work, that prepayment is money you owe back in the form of future service. That is why it lands on the Balance Sheet as a liability called deferred revenue (also called unearned revenue), not on the Profit and Loss as income.

ASC 606, the revenue recognition standard, frames this the same way. When a customer prepays, you record a contract liability, then satisfy the performance obligation over time, recognizing revenue as the customer receives the benefit of each visit. For a maintenance or treatment plan, each completed service is a step in satisfying that obligation, so revenue drips into income visit by visit rather than in one lump on the deposit date.

The reason this trips people up is that the bank deposit looks identical either way. Whether you book a $480 plan as income or as a liability, the same $480 shows up on the statement. The bank feed cannot decide this for you, and a rule that auto-posts every deposit to income will overstate revenue in the month the customer paid and leave the following months looking dead.

A worked example that balances

A residential customer prepays $480 on January 1 for a year of pest control, delivered as four quarterly treatments of equal value. Each visit is worth $120 ($480 divided by 4). Here is how it flows.

When the $480 arrives, you record the cash but keep it out of income:

  • Debit Bank (or Undeposited Funds) $480
  • Credit Deferred Revenue (Other Current Liability) $480

Nothing hits income yet. Then, each time you complete a treatment, you recognize one quarter of the plan:

  • Debit Deferred Revenue $120
  • Credit Pest Control Income $120

The debit reduces the liability, and the credit books the earned revenue. Repeat that entry after each of the four visits. The table below tracks the liability winding down to zero.

VisitRecognized to incomeDeferred Revenue remaining
Opening (cash received)$0$480
Q1 treatment$120$360
Q2 treatment$120$240
Q3 treatment$120$120
Q4 treatment$120$0

Confirm it balances: total income recognized is $120 times 4, which is $480, and the liability ends at zero the moment the last visit is done. At every point in between, the remaining Deferred Revenue equals the value of the visits you still owe. If it ever drifts, an entry is missing or doubled.

Setting it up in QuickBooks

Do the first two steps once, then repeat the recognition step for each visit.

  1. Create the liability account. In Chart of Accounts, click New, set Account Type to Other Current Liabilities, and name it Deferred Revenue (or Prepaid Service Plans if you want it obvious on the Balance Sheet).
  2. Create a service item that points to the liability. Under Products and Services, add an item such as Annual Plan and map its income account to the Deferred Revenue liability instead of a normal income account. Now the invoice or sales receipt credits the liability directly when the customer pays.
  3. Recognize each visit with a journal entry. Debit Deferred Revenue and credit your real service income account for the value of the completed visit. In QuickBooks Online you can build this as a recurring template, but pause or delete it if a plan ends early, because a recurring entry does not know a customer canceled.

QuickBooks Online Advanced adds revenue recognition schedules that attach to an item and post the recognition for you, worth it once you carry a large book of plans. On QuickBooks Desktop, the equivalent of the recurring template is a memorized transaction (Ctrl+M).

Monthly plans, annual plans, and partial-year starts

The mechanics do not change with the billing cadence, only the size of each slice. A monthly maintenance plan billed and delivered every month is barely a deferral, since you earn each payment in the period you collect it. The deferral matters when cash and delivery separate: an annual plan paid up front, a season of lawn care bought in March for work that runs April through October, or a multi-visit cleaning package.

Recognize revenue on the pattern that matches delivery. If four treatments are equal in value, split evenly at $120 each. If your visits are not equal (a heavy spring service and lighter follow-ups, say), recognize based on the relative value of each visit rather than a flat quarter. For partial-year starts, you defer only what has been prepaid and recognize only the visits actually delivered. A customer who joins in July and prepays for two remaining treatments this year has a $240 liability that clears over those two visits.

This is where the back office earns its keep. Keeping plan start dates, visit counts, and renewals straight is a workflow problem as much as an accounting one, and tightening the recurring billing and customer onboarding workflow behind your plans keeps renewals from slipping and your deferred-revenue schedule matching reality.

Cancellations and refunds

When a customer cancels partway through and you refund the unearned portion, you reduce the liability and the cash together. Say the customer cancels after two of four visits and you refund the remaining $240:

  • Debit Deferred Revenue $240
  • Credit Bank $240

Income never moves, because you never earned that slice. If your contract keeps a cancellation fee, recognize only that fee as income and refund the rest. The key discipline is that the liability should always equal the value of the work you still owe or still owe money back for.

Auto-pay batches and processing fees

Most recurring plans run on card auto-pay, and the processor deposits a batch net of its fee. A $480 charge might land as roughly $466. The deferred-revenue amount is the gross plan price, $480, not the net deposit. The fee is a separate expense, not a discount on what you earned.

So the batch splits into three pieces: credit Deferred Revenue for the full $480, debit Merchant Fees expense for the roughly $14 the processor kept, and debit Bank for the net that hit the account. If you net the fee against revenue instead, both your income and your liability schedule come out wrong, and the plan will not clear to zero on the last visit.

Warranties and service bonds are a separate obligation

Some plans bundle a warranty or a bond, and those are their own future obligation. A termite bond promises retreatment or repair for a defined period after the initial treatment. That retreatment guarantee is a distinct performance obligation with its own timeline, so the portion of the price tied to the bond gets deferred and recognized across the bond period, separate from the one-time treatment revenue you earn when the initial job is done.

Extended warranties on installed HVAC equipment work the same way: the equipment sale is earned on installation, but the multi-year warranty is unearned until that coverage period elapses. Many shops park these in a dedicated Warranty Liability account so the balance is easy to reconcile. If you are unsure how to carve the price between the immediate service and the long-tail guarantee, that allocation is worth a conversation with your CPA, and firms handling a lot of these can lean on their accountant workflow to standardize it across clients.

Reconciling to the bank statement

Reconciliation and revenue recognition are two different jobs, and mixing them is where books go sideways. The bank statement shows cash received: the full $480 deposit (or the net batch) on the day it settled. Recognizing $120 per visit is a separate step that lives in your journal entries, not in the bank feed. Your statement and your P and L are supposed to disagree in the short run, and the deferred-revenue liability bridges the gap.

So reconcile cash first, then handle recognition. Match every deposit on the statement to QuickBooks, confirm the fee split on card batches, and make sure the liability balance equals the visits you still owe. The faster you get clean transactions in, the sooner you can do the recognition work. Instead of keying deposits by hand, convert the PDF statement into a .qbo file and import it: our page on bank statement to QuickBooks for pest control walks through it, and the same flow serves HVAC and plumbing contractors running maintenance plans. The bank feed usually only reaches back about 90 days, so converting the statement is also how you catch up older months of prepaid contracts.

One note for anyone hiring subcontractors to deliver visits: if you pay an unincorporated subcontractor $2,000 or more in 2026, that is the 1099-NEC threshold to watch, and it is unrelated to how you recognize the plan revenue itself.

Frequently asked questions

Is prepaid service contract revenue income when the customer pays?

No, not on accrual books. When a customer prepays an annual or multi-visit plan, the cash is deferred revenue, a liability, because you still owe the work. You recognize it into income as each service is delivered. Only a strict cash-basis filer would report the whole amount as income on the day it is received.

How do I record a prepaid maintenance plan in QuickBooks Online?

Create an Other Current Liability account named Deferred Revenue and a service item that maps to it. When the customer pays, the credit lands in the liability instead of income. After each completed visit, post a journal entry debiting Deferred Revenue and crediting your service income account, then check the remaining liability on the Balance Sheet.

Do I book the gross plan price or the net card deposit as deferred revenue?

Book the gross plan price. If a $480 plan settles as a net card batch of about $466, you still credit Deferred Revenue for the full $480, debit Bank for the net, and debit Merchant Fees for the processor cut. The fee is an expense, not a reduction of the revenue you owe the customer.

What happens to deferred revenue when a customer cancels?

You reduce the liability and the cash together for the unearned portion. Debit Deferred Revenue and credit Bank for the refund. Income never moves, because you never earned the canceled visits. If your contract keeps a cancellation fee, recognize just that fee as income and refund the remaining balance.

How is a termite bond or extended warranty different from the service plan?

A bond or warranty is a separate future obligation. The one-time treatment or installation is earned when the work is done, but the retreatment guarantee or multi-year warranty is unearned until that coverage period elapses. Defer the portion of the price tied to the guarantee and recognize it across the bond period, often in a dedicated liability account.

Convert your first statement free.

Upload a PDF bank statement, get a QuickBooks-ready .qbo back in seconds. No card to try it.