A pressure washing truck pulls up to a strip mall at 5 a.m., sprays a sodium hypochlorite mix on the concrete walkway, and drives away with a $400 invoice an hour later. The owner sees the deposit hit the bank, marks the job "done," and moves on. But the bookkeeping decisions that determine whether this business is actually profitable were made hours earlier: how the chemical mix was costed, how the truck and equipment are depreciated, how the recurring monthly contract is recognized, and whether the crew member who showed up was a W-2 employee or a 1099 contractor under state ABC tests.
Window cleaning and pressure washing look simple from the outside. The economics are unforgiving. Chemical costs swing 20 percent based on supplier deliveries and SH potency loss over time. A single broken window or paint-damage claim can wipe out a quarter of margin. Misclassifying a crew member as a 1099 contractor under California's AB-5 ABC test can trigger back-wages, payroll taxes, and penalties that exceed annual profit. The owners who run their financials with the same discipline they bring to chemical mixing build companies worth selling. The ones who don't burn through trucks and crews chasing top-line growth.
The Two Distinct Revenue Streams You Must Separate
Most exterior cleaning operators run both window cleaning and pressure washing under one roof, but the two services have meaningfully different cost structures, equipment requirements, and customer profiles. Your chart of accounts should reflect that.
Window Cleaning Revenue
This breaks into three sub-streams:
- Residential window cleaning — interior and exterior glass on single-family homes, typically billed flat-rate by number of panes or pane-equivalents. Margins are healthy but routes are dense, requiring efficient drive-time management.
- Commercial route work — storefronts, restaurants, and small office buildings on weekly, biweekly, or monthly contracts. Tickets are smaller per visit but revenue is predictable and crews can hit 20-plus stops per day.
- High-rise and rope-access work — multi-story commercial and condominium buildings using bosun's chairs, swing stages, or rope-access (IRATA/SPRAT certified). This is a different business with insurance and OSHA requirements that most small operators don't carry.
Pressure Washing and Soft Washing Revenue
Pressure washing is a misnomer for most modern exterior cleaning. The industry has largely moved to soft washing, where a low-pressure chemical mix does the work and the wand is just a delivery vehicle. Sub-streams include:
- House washing (vinyl, hardiplank, stucco, brick) — typically soft wash with sodium hypochlorite (SH), water, and a surfactant
- Concrete and flatwork (driveways, sidewalks, parking lots) — surface cleaner attachment, higher SH concentration
- Roof cleaning (asphalt shingles, tile) — pure soft wash, never high pressure
- Commercial flatwork (gas stations, drive-thrus, dumpster pads) — often recurring monthly contracts
- Deck and fence cleaning — wood-safe chemistry, sometimes with re-staining as a pass-through
Each line should hit its own revenue account in your books. Mixing them obscures unit economics. A driveway clean might gross $300 with $15 in chemicals; a roof clean might gross $700 with $40 in chemicals but four times the labor time. You cannot manage what you cannot see.
Recognizing Recurring Maintenance Contract Revenue Under ASC 606
Recurring contracts are the holy grail of an exterior cleaning business. They smooth seasonality, support route density, and turn one-time jobs into compounding revenue. They also create the bookkeeping question most one-person operations get wrong.
Under ASC 606, the controlling principle is that revenue is recognized when the performance obligation is satisfied — that is, when the cleaning is actually performed. A 12-month commercial storefront contract paid annually in advance creates a deferred revenue liability on the day cash is collected, and the liability is released to revenue each month as the visits happen.
In practice, that means:
- When a commercial customer prepays $3,600 for 12 monthly window cleanings, book
Dr Cash 3,600 / Cr Deferred Revenue 3,600. - Each month after a visit, book
Dr Deferred Revenue 300 / Cr Window Cleaning Revenue 300. - If the contract is canceled mid-year, the unearned portion of deferred revenue is either refunded (clearing the liability) or recognized as breakage revenue only if your written policy supports non-refundability and you have history to estimate the breakage rate.
Most operators run cash-basis books and recognize the full $3,600 when it lands. For a sole proprietor under the $30 million gross receipts threshold, cash basis is permissible for tax purposes. But for managerial accounting — knowing whether you're actually making money this month or just spending next month's prepaid cash — accrual is far more honest.
If you ever want to sell the business or secure a bank line of credit, the buyer or lender will normalize your financials to accrual. Better to keep them that way from the start.
Job-Costing Chemicals, Labor, and Equipment Wear
The single most common mistake in exterior cleaning bookkeeping is treating chemicals as a flat overhead expense. They are not. They are direct cost of revenue and they vary wildly by job type.
Sodium Hypochlorite (SH) Cost Allocation
A 55-gallon drum of 12.5% SH runs roughly $2-$3 per gallon delivered, or about $150 for the drum. A typical house wash uses 1.5-2% SH cut from concentrate, meaning roughly 1-2 gallons of concentrate per house. That's $2-$6 in chemical cost per house wash that grosses $300-$500.
But SH loses potency at roughly 3 percent per 30 days from manufacture. A drum that sat at the distributor for six weeks before delivery is already substandard. Operators who track chemical cost as a percentage of revenue per job catch potency drift early — when COGS-to-revenue ratio creeps up but pricing hasn't changed, the SH is weak and crews are using more to compensate.
Build sub-accounts under Cost of Service:
- Chemicals — Sodium Hypochlorite
- Chemicals — Surfactants and Soaps
- Chemicals — Wood Brighteners and Strippers
- Chemicals — Acids (oxalic, hydrofluoric for rust)
Direct Labor and the Per-Hour Effective Rate
Labor is the single largest variable cost. Track it by job, not just by pay period. Modern field service apps (Jobber, Service Autopilot, Housecall Pro, ResponsiBid) capture on-site time per job. Pull that data monthly into your accounting system and you can compute the per-hour effective rate for each service line — your gross revenue divided by total field labor hours.
Industry benchmarks suggest healthy operators target:
- Residential window cleaning: $90-$130 per labor hour
- Commercial route window cleaning: $60-$90 per labor hour
- House wash (soft wash): $200-$400 per labor hour at the job (these jobs are fast)
- Roof cleaning: $250-$500 per labor hour
- Concrete flatwork: $150-$250 per labor hour
If your numbers fall below the bottom of these ranges, the problem is either pricing, route inefficiency, or untracked labor leakage (drive time billed as job time, training time mixed with productive time).
Equipment Wear as a Real Cost
Pressure washers, soft wash pumps, hoses, and surface cleaners wear out. A commercial-grade gas pressure washer with 5.5 GPM at 3500 PSI lasts 1,500-2,500 hours of operation before major rebuild. At $1,800-$2,500 to replace, that's roughly $1 per running hour of effective wear cost. Track it. The crew that runs the unit dry once costs you $400 in pump damage instantly.
Capitalizing Equipment Under Section 179 and Bonus Depreciation
The IRS Section 179 election allows immediate expensing of qualifying business equipment up to the annual limit (the 2025 limit was $1.16 million with a $2.89 million phase-out, with future inflation adjustments). For an exterior cleaning operator, that ceiling is effectively unlimited.
Eligible Section 179 property in this industry includes:
- Trailers with mounted equipment (commercial pressure washing rigs, soft wash skids)
- Pressure washers (cold water, hot water, and skid-mounted units)
- Soft wash pumps and chemical injection systems
- Reverse osmosis (RO) and deionization (DI) systems for water-fed pole window cleaning
- Water-fed poles (carbon fiber up to 80 feet)
- Surface cleaners, hoses, reels, and fittings above the de minimis safe harbor
- Trucks and vans with a gross vehicle weight rating over 6,000 pounds (the "heavy SUV" rules apply for vehicles between 6,000 and 14,000 GVWR)
- Buffer tanks, water storage, and mixing stations
The de minimis safe harbor under Treas. Reg. § 1.263(a)-1(f) lets you expense individual items under $2,500 each (without an applicable financial statement) directly to supplies. For an operator buying a $300 hose reel or a $1,200 surface cleaner, that's easier than running Section 179.
Bonus depreciation under Section 168(k) remains available but is phasing down — operators should run the Section 179 vs. bonus comparison annually with their tax preparer, especially in years with large equipment purchases or planned sale of the business.
A common trap: trucks under 6,000 GVWR are subject to the luxury auto limits ($20,400 first-year cap as of recent guidance, adjusted annually). A half-ton pickup likely sits below 6,000 GVWR. A three-quarter-ton or one-ton work truck is over. The few hundred dollars more for the bigger truck can unlock tens of thousands in first-year depreciation.
Reverse Osmosis Water-Fed Pole Systems: Why the Math Matters
Window cleaning has been transformed in the last decade by water-fed pole (WFP) systems. Pure water — filtered through reverse osmosis or deionization to under 10 parts per million total dissolved solids — cleans glass without soap, dries spot-free, and lets one technician on the ground reach the third or fourth story of a building safely.
A modern WFP setup with a trailer-mounted RO system, 250-gallon buffer tank, 12V pumps, hoses, and carbon-fiber poles runs $8,000-$25,000. That's all Section 179 eligible.
The bookkeeping question is resin and membrane consumable cost, not the equipment. RO membranes last roughly 3-5 years and run $400-$800 to replace. Mixed-bed DI resin is the variable consumable — in hard-water markets (over 200 ppm TDS feed water), a $300 bag of resin might last only 2-3 months. In soft-water markets, the same bag lasts a year.
Track resin spend monthly against jobs completed. When the resin cost per WFP job creeps above $5-$8, your feed water has hardened or the RO membrane is degrading. Both are correctable. Neither is visible if you bury resin in "supplies."
Crew Classification: The 1099 vs. W-2 Trap
This is where exterior cleaning businesses most often blow up. The crew member who shows up at 7 a.m., uses your truck, your chemicals, your branded shirt, and your customers is almost certainly an employee — not a 1099 contractor — under most state ABC tests.
California's ABC test (AB-5, Labor Code § 2775) requires the hiring entity to prove all three:
- (A) The worker is free from control and direction in performing the work
- (B) The work is outside the usual course of the hiring entity's business
- (C) The worker is customarily engaged in an independently established trade
Part B is the killer. If you run a pressure washing company and the worker pressure washes, the work is inside your usual course of business. Full stop. No 1099 status, no matter what the worker signs.
Other states use the IRS common-law test or various hybrids. The IRS three-factor framework (behavioral control, financial control, type of relationship) is generally more permissive than ABC, but federal misclassification still triggers back-FICA, FUTA, and federal income tax withholding liability with penalties under Section 3509.
For most window cleaning and pressure washing operators, the right call is straightforward: crew members are W-2 employees, you carry workers' compensation insurance on them, you withhold and remit payroll taxes, and you sleep at night. The added cost is real — figure 12-18 percent over the gross wage for payroll taxes, workers' comp, and unemployment — but it's vastly less than misclassification liability and lawsuits.
True 1099 relationships in this industry are narrow: a licensed roof cleaning specialist who runs his own company, brings his own chemicals and rig, sets his own schedule, and subcontracts a portion of a job under a written subcontract. Even then, document it heavily.
Reserving for Property Damage Liability
Pressure washing breaks things. Sodium hypochlorite kills landscaping. Water-fed poles snap and crack windows. Lift booms scratch siding. Roof cleaning bleach drift damages a neighbor's car.
General liability insurance covers most of it, but two facts apply:
- There's a deductible — typically $500-$2,500 per claim — that your business eats before insurance pays.
- There's a self-insured retention (SIR) window where small damage claims are below the deductible and you pay them entirely.
Smart operators run a damage reserve as a sub-account of operating expenses, accruing 1-2 percent of revenue monthly. When a claim hits, it's paid from the reserve rather than blowing up the month's P&L. Over a year, the reserve smooths variance and produces a cleaner picture of actual margin.
This isn't GAAP-required for a small operator, but it's good managerial accounting. A bookkeeper who knows the business will set it up automatically.
Refundable Deposits and Cancellation Fees
Booked jobs in peak season (April-October for soft washing, year-round for commercial) often require a deposit. The bookkeeping treatment depends on the contract terms:
- Refundable deposits are a liability (
Customer Deposits) until service is performed. They are not revenue and they are not income for tax purposes until earned. If the customer cancels and the deposit is returned, the liability simply clears. - Non-refundable deposits, properly papered, are deferred revenue with breakage on cancellation. Under ASC 606, breakage is recognized in proportion to the pattern of rights exercised, but for small operators the simpler approach is to recognize breakage when the customer's right to redeem has expired (i.e., job date passed with no service performed).
- Cancellation fees are revenue when charged, assuming the contract gives you the right to charge them.
Run all three through distinct accounts. A customer deposit liability balance that doesn't move tells you collections are coming in but jobs aren't getting completed — a leading indicator of scheduling or capacity problems.
KPIs That Matter for Exterior Cleaning Operators
Beyond the basics (gross margin, net profit, current ratio), exterior cleaning operators should track:
- Revenue per truck per month — single-truck owner-operator targets $20,000-$35,000 monthly; multi-truck operations target $25,000-$45,000 per truck depending on service mix
- Effective per-hour rate by service line (see above)
- Recurring revenue percentage — what share of monthly revenue comes from contracts vs. one-time jobs (healthy operators run 30-50 percent recurring)
- Booking conversion rate — quotes sent vs. jobs booked (above 50 percent is strong)
- Customer acquisition cost vs. customer lifetime value — a residential customer who books one $400 house wash is worth less than a commercial property manager who books monthly storefront window cleaning
- Days sales outstanding (DSO) on commercial accounts — residential is mostly card-on-file at completion; commercial often runs net 30 or net 45 and is where cash flow problems hide
Pull these monthly from your accounting system and field service software. The owner who looks at the P&L once a year at tax time has no idea what's actually happening in the business until it's too late to fix.
Keep Your Books Clean From the First Truck
Exterior cleaning is a cash-intensive business with thin margins, variable seasonality, and real liability exposure. The bookkeeping decisions you make in year one — chart of accounts, depreciation policy, worker classification, contract revenue recognition — compound over the life of the company. Operators who run their books with discipline build companies that scale, sell, or just consistently put cash in the owner's pocket. The ones who treat bookkeeping as a tax-time afterthought spend years wondering why a profitable-looking business never has any money in the bank.
Beancount.io gives exterior cleaning operators a plain-text, version-controlled ledger that captures every job, chemical drum, and recurring contract with full transparency — no black boxes and no vendor lock-in. Pair it with the Fava dashboard to see revenue per truck, gross margin by service line, and recurring contract balances at a glance. Get started for free and build the financial foundation your business actually deserves.