Back to the blog

January 24, 2026 · 12 min read

Bookkeeping for Pressure Washing and Window Cleaning: Routes and Recurring Clients

By 909 Bookkeeping

How to keep books for a pressure washing or window cleaning business. Track recurring routes apart from one time jobs, hold the service income by client, match each job to the bank, and keep the monthly income true. Plain English from 909 Bookkeeping.

Trade illustration for this bookkeeping guideA flat illustration of a spray wand next to a route map and a recurring calendar card, showing recurring routes and one time jobs tracked separately for a pressure washing or window cleaning business.LEDGER

What pressure washing and window cleaning books need to track

A pressure washing or window cleaning business is not one number. It is the recurring routes you run, the one time jobs you pick up, the supplies you buy, the fuel you burn, and the deposits that come in. Each part needs its own line so your monthly income stays true.

When you track all of it by client and by route, you can see which clients pay you every month and which jobs are a one time bonus. You can see which routes cost more in fuel or chemicals than they bring in. When you do not, you get one big pile of deposits and supply bills and no way to tell whether the recurring contract paid better than the big one time job.

Most pressure washing and window cleaning work runs on routes. A house wash every month. A storefront window clean every week. A deck clean every season. A commercial lot sweep on a schedule. Some clients pay the same amount each month. Some pay by the job. Some call you once for a big job and never call again. When the books hold the recurring income apart from the one time income and each route on its own line, the business makes sense. You can read more about how we keep these lines tied on our bookkeeping page.

Here is what a clean month looks like.

LineWhat it means
Recurring incomeWhat the monthly contract clients paid
One time incomeWhat the one time jobs brought in
SuppliesThe soap, glass cleaner and chemicals you used
FuelThe gas for the truck and the rig
Net per routeWhat the route really earned after the supplies and the fuel

When the recurring income and the one time income sit on their own lines, your monthly profit is real. When they sit together, a big one time job looks like a great month and the recurring income that pays the bills hides.

How recurring routes show up in your books

A recurring route is a job you run on a schedule. The client pays you each month, or each week, or each season. The income shows up over and over. It is the backbone of the business.

The clean way is to book each recurring payment to a recurring service income line tagged to the client. When the client pays the same amount each month, the income lands the same way each time. You can see what the recurring book brings in before you take a single one time job. When a client drops off the schedule, the income line drops and you see it right away. You can read more about how we track recurring income in our pest control recurring plans guide. The same idea works for a pressure washing or window cleaning route.

The messy way is to book every payment to one general sales line with no client tag. Now you can not tell which clients are recurring and which are one time. When a recurring client leaves, you do not see the drop until the end of the quarter. You can not tell which routes pay the bills and which ones are a waste of fuel.

Here is how to keep the recurring route clean.

  • **Book recurring payments to a recurring service income line: ** not to one general sales line.
  • - **Tag each payment to the client: ** so the income sorts by who pays you.
  • - **Track the schedule in the books: ** so a dropped client shows up fast.
  • - **Watch the recurring total each month: ** a drop means a client left or a route shrank.
  • - **Match each recurring payment to the bank: ** so the cash is true.

When the recurring income sits on its own line, you can see what the business brings in before you take a single one time job. When it hides in a general pile, the backbone of the business is invisible.

How one time jobs show up apart from recurring

A one time job is work a client calls you for once. A driveway clean, a roof wash, a big commercial pressure job, a one time window clean before a sale. The income is a bonus on top of the recurring book.

The clean way is to book one time income to a separate one time service income line tagged to the client. When you run the profit and loss, the recurring line shows what pays the bills and the one time line shows the bonus. You can see whether a month was strong because the recurring book held steady or because you picked up a big one time job. You can read more about how we separate income streams in our security installers guide. The same idea works for recurring versus one time work.

The messy way is to book the one time income to the same line as the recurring income. Now a big one time job makes the month look great. Next month, with no one time work, the income drops and it looks like the business is failing. The recurring book is fine. The one time job just did not come back. You can not tell the two apart.

Here is how to keep the one time job clean.

  • **Book one time income to a separate one time service income line: ** not mixed with recurring.
  • - **Tag each invoice to the client and the job: ** so the income sorts by who called you.
  • - **Watch the one time total as a share of revenue: ** too much one time and not enough recurring means the base is thin.
  • - **Match each one time invoice to the bank: ** so the cash is true.
  • - **Track the supplies and fuel for the job when you can: ** so the job profit is real.

When the one time income sits apart from the recurring income, you can see which part of the business pays the bills. When they sit together, a slow month looks like a crisis even when the recurring book is fine.

How to track income by client

A pressure washing or window cleaning business with ten recurring clients and a handful of one time jobs needs a way to sort the money by who pays you. Tags or classes in QuickBooks Online do this.

The clean way is to turn on class tracking and set up one class for each client. Every recurring payment, every one time invoice, and every deposit carries the class for the client it belongs to. When you run the profit and loss by class, each client shows in their own column. You can see which client pays you the most and which one costs you the most in fuel and drive time. You can read more about how we keep clients apart in our cleaning companies guide. The same idea works for a pressure washing or window cleaning business.

The messy way is to book every payment to the same accounts with no client tag. Now you can not sort by client. You can not tell which recurring client pays on time and which one is always late. You can not see which route burns the most fuel for the least pay.

Here is how to keep each client on their own line.

  • **Turn on class tracking in QuickBooks Online: ** and set one class per client.
  • - **Tag each recurring payment to the client class: ** so the income sorts by client.
  • - **Tag each one time invoice to the client class: ** so the bonus sorts by client too.
  • - **Tag the deposit to the client class: ** so the cash sorts by client.
  • - **Run the profit and loss by class each month: ** so each client shows in their own column.

When each line carries a class, the business reads like a row of clients. When it does not, the business reads like one big blur.

How to match each job to the bank

Every job, recurring or one time, has to match the bank. The client pays you. The cash lands in your account. The books need to tie the two together.

The clean way is to match each invoice to the bank deposit the day it clears. The amount in the books agrees with the amount that hit the bank. When a client pays on a card, the deposit lands net of the card fee. When a client pays by check, the deposit lands whole. When a check bounces, the deposit does not stay on the books. The bank and the books always agree.

The messy way is to book the invoice and never match it. Now the books show income that may or may not have cleared. A check that bounced sits as income. A card fee that came out before the deposit hides. You can read more about how we match payments to the bank in our reconciling gig platform payouts guide.

Here is how to keep the match clean.

  • **Match each invoice to the bank deposit: ** the day it clears.
  • - **Watch for card fees: ** a card payment lands net, so split the fee out.
  • - **Watch for bounced checks: ** a payment that did not clear should not stay as income.
  • - **Reconcile the bank each month: ** so the cash total agrees with the bank.
  • - **Check the deposit total against the route sheet: ** so the books agree with what you ran.

When each invoice matches the bank, your cash is true. When they float untied, the income drifts and the real profit hides.

How the month end close works

At month end, every route and every one time job needs its lines added up. The recurring income, the one time income, the supplies, the fuel and the deposits all pull together. The income shows what you earned. The costs show what the work took. The net shows what the routes really made.

We start with the bank. We match each invoice to the deposit that cleared. We split the card fees from the net cash. We book the recurring payments to the recurring service income line tagged to each client. We book the one time jobs to the one time service income line tagged to each client. We tag every line to the client class. We send you the profit and loss by class, a balance sheet, and a cash summary. Each client sits inside the report in their own column.

Here is a simple month end check.

  • **Match each invoice to the bank: ** every deposit cleared.
  • - **Split the card fees from the net cash: ** so the fee shows on its own.
  • - **Book recurring income to the recurring line: ** tagged to each client.
  • - **Book one time income to the one time line: ** tagged to each client.
  • - **Tag every line to the client class: ** so the profit and loss sorts by client.
  • - **Run the profit and loss by class: ** so each client shows in their own column.

When the close runs every month, the route story stays clear. When it skips a month, the routes stack up and the next month is harder to close.

A situation we clean up

The routes and one time jobs that all looked the same

A pressure washing shop runs five recurring routes and picks up one time jobs between them. Every payment, recurring or one time, lands in one general sales line. No class tracking is turned on. The supplies go to general supplies with no route tag. At month end, the owner can not tell which clients are recurring and which are one time, which routes pay the bills, or which one time jobs are worth the fuel. A month with a big one time job looks great. The next month with no one time work looks like the business is failing.

Here is how we handle it. We turn on class tracking in QuickBooks Online and set up one class for each client. We go back through the open months and split each payment into recurring service income and one time service income. We tag every payment to the client class. We match each invoice to the bank. When we are done, the owner can run the profit and loss by class and see each client in their own column, with the recurring and one time income on separate lines. We set up a rule so the next recurring payment goes to the recurring line and the next one time invoice goes to the one time line, both tagged to the right client from the start.

Mistakes we fix

  • Every payment in one general sales line with no split between recurring and one time
  • No class tracking turned on so no way to sort by client
  • Recurring and one time income mixed together so a slow month looks like a crisis
  • No client tag on invoices so no way to see who pays on time
  • Supplies in general supplies instead of a route cost line
  • No match between the invoice and the bank deposit
  • Card fees buried inside net sales instead of on their own line
  • A bounced check still sitting as income after it did not clear
  • No profit and loss by client run at month end
  • A dropped recurring client not noticed for months because the income drop was hidden

Common questions

How do I track recurring routes? Book each recurring payment to a recurring service income line tagged to the client. Track the schedule in the books so a dropped client shows up fast. Watch the recurring total each month so you can see when a route shrinks. Match each recurring payment to the bank so the cash is true.

How do I separate one time jobs from recurring? Book one time income to a separate one time service income line, not mixed with recurring. Tag each one time invoice to the client and the job. Watch the one time total as a share of revenue so you can see if the recurring base is thin.

How do I sort my income by client? Turn on class tracking in QuickBooks Online and set up one class per client. Tag every recurring payment, one time invoice and deposit to the client class. Run the profit and loss by class so each client shows in their own column.

How do I match a job to the bank? Match each invoice to the bank deposit the day it clears. Watch for card fees that come out before the deposit and for bounced checks that do not clear. Reconcile the bank each month so the cash total agrees with the bank.

Ready for books that close on time?

Free 20-minute call. We reply with a fixed quote within one business day.

Book a callCall