Skip to main content

Carpet and Upholstery Cleaning Bookkeeping: Why Every Truck Is Its Own Profit Center

7 min readMike ThriftMike Thrift
Carpet and Upholstery Cleaning Bookkeeping: Why Every Truck Is Its Own Profit Center

A single-truck carpet cleaning operator can gross $360,000 a year and still not know if Tuesday's route made money. That's not a hypothetical — it's the norm in an industry where 78% of operators are solo or two-person shops running the books from memory, a shoebox of receipts, or a spreadsheet that hasn't been updated since spring.

The math isn't complicated. What's complicated is that a carpet and upholstery cleaning business has three separate cost engines running at once — chemistry, the truck, and the tech's time — and most owners track exactly none of them separately. They see one number: what hit the bank account this month. That number tells you nothing about which jobs, which routes, or which trucks are actually carrying the business.

The Three Numbers Every Operator Should Know

Before getting into the mechanics, it helps to separate the three questions that actually matter:

  1. What does a job cost to deliver? (chemistry, water, waste disposal, direct labor)
  2. What does a truck cost to run? (fuel, insurance, maintenance, equipment depreciation)
  3. What does a route cost in dead time? (drive time between jobs that earns nothing)

Most bookkeeping setups answer none of these. They lump "supplies," "gas," and "van payment" into a single expense category and call it a day. That's fine for filing a tax return. It's useless for deciding whether to take the job across town or the two jobs three blocks apart.

Chemistry and Supplies: Your Real COGS Line

Chemical and supply costs should live in their own cost-of-goods-sold category, not buried in "operating expenses." For a healthy carpet cleaning operation, chemistry and supplies typically run 5–7% of revenue for shops buying wholesale and mixing their own solutions efficiently. Once that number crosses 10%, it's usually a sign of over-dilution errors, waste, or paying retail prices for product a wholesale account would cut in half.

Total COGS — chemistry, fuel, and any subcontracted labor — should land in the 8–18% range of revenue. Per job, that typically translates to $5–$15 in direct chemical cost, which is small in isolation but adds up fast when it's not tracked per job type. Pretreatment for pet stains, protectant application, and upholstery-specific solutions all carry different costs than a standard traffic-lane clean, and pricing that doesn't reflect the difference quietly erodes margin on the jobs that use the expensive stuff.

The practical fix: set up a dedicated "Chemistry & Supplies" account in your chart of accounts, separate from general shop supplies, and track purchases by volume so you can calculate a rough per-job cost. Even a simple monthly average — total chemical spend divided by jobs completed — gives you a number to price against instead of guessing.

The Truck Is a Cost Center, Not a Company Asset

Here's where most carpet cleaning bookkeeping falls apart: the truck-mounted system isn't a line item, it's a second business riding along with the first.

A truck-mounted system runs $20,000–$45,000 for a mid-range unit, financed at 7–12% APR over 48–60 months, with the full range spanning $5,000 for a basic portable setup to $75,000+ for a top-tier truck mount. That unit depreciates over 5–7 years for tax purposes, but the more useful number for pricing decisions is depreciation per operating hour — a $25,000 truckmount rated for roughly 2,500 service hours works out to about $10 per hour just in equipment wear, before fuel, maintenance, or the van payment itself.

Section 179 lets a profitable operator expense qualifying equipment purchases (up to $1.16 million as of 2026) in the year they're placed in service rather than depreciating over several years — useful for a growing operation replacing an aging unit, but it changes the tax picture, not the unit economics picture. You still need to know what an hour on that truck costs to run so you can price jobs correctly, independent of how the purchase gets deducted.

Vehicle costs stack on top: fuel, insurance, routine maintenance, and either actual expenses or the standard mileage rate (65.5–67 cents per mile as of recent IRS guidance) if you're not tracking actual costs. Multi-truck operators should track these per vehicle, not pooled — a van doing long commercial routes with heavy highway miles has a very different cost profile than one running tight residential loops, and pooling them hides which truck is actually profitable.

Route Density Is a Bookkeeping Problem, Not Just a Scheduling One

The single biggest lever on a carpet cleaner's margin rarely shows up in the accounting software: drive time between jobs. A 45-minute gap between appointments doesn't just cost fuel — it costs an entire billable slot that could have gone to another job. Operators who cluster appointments by neighborhood and zip code consistently outperform ones who chase whichever job books first, because route density compounds: more jobs per truck per day, less fuel burned per dollar earned, and less wear accumulating on equipment for the same revenue.

This is where bookkeeping and field-service scheduling need to talk to each other. If your accounting system (QuickBooks Online, Xero, or similar) is synced with a field-service platform like Jobber or Housecall Pro, you can pull job-level revenue against a route and start seeing which days and which zones are actually profitable versus which ones just look busy. Without that integration, you're manually reconciling two systems that were never designed to talk, which is exactly how route profitability stays invisible for years.

A rough benchmark: successful single-truck operators complete 4–6 jobs per day. If your average is meaningfully lower and your average job price hasn't compensated for it, the gap is very likely sitting in drive time — and no amount of chemistry-cost discipline will fix a route problem.

Setting Up the Books Correctly From the Start

Commingling personal and business finances is the single most common mistake in this industry, and it's the one that turns a straightforward Schedule C into a forensic reconstruction project at tax time. The fix is five accounts, set up before the first job is invoiced:

  • Business checking — all revenue in, all business expenses out
  • Business credit card — for purchases, kept entirely separate from personal cards
  • Tax savings account — 25–30% of every deposit swept here automatically; solo operators owing self-employment tax on top of income tax should lean toward the higher end
  • Operating reserve — a buffer for the slow season or an unexpected truckmount repair
  • Owner draw account — how the owner actually gets paid, separate from operating cash

With margins running 50–70% at the gross level for operators who price deliberately (and total operating costs consuming 65–78% of revenue once everything is accounted for), the difference between a profitable year and a break-even one often comes down to whether these categories are tracked at all, not to some dramatic pricing error.

When to Bring in Outside Help

A part-time bookkeeper ($200–$600/month) becomes worth the cost once revenue crosses roughly $150,000 a year, particularly for operators managing employees or more than one truck — at that point, reconciling chemistry costs, per-truck fuel, payroll, and route profitability manually eats hours that are worth more spent running jobs. On the entity side, S-corp election typically starts paying for itself once net profit clears $80,000–$120,000, since it can meaningfully reduce self-employment tax exposure — but that's a decision to make with an accountant who can run the actual numbers for your situation, not a rule of thumb to self-apply.

Keep the Ledger as Clean as the Carpets

None of this requires expensive software or a finance degree — it requires treating chemistry, trucks, and routes as three distinct cost centers instead of one blurred "expenses" bucket. Plain-text accounting tools like Beancount.io make that separation easy to enforce: every chemical purchase, truck expense, and job deposit lives in version-controlled, auditable entries you can tag by vehicle or route, so the numbers that actually drive pricing decisions are there when you need them, not buried in a shoebox. Get started for free and see what your routes are really worth.

Share this article