← All guides

How to Price Carpet Cleaning Jobs for Profit

Per-room rates leave money on the table. Price carpet cleaning by square footage and condition, stack upsells, and set a minimum ticket that pays.

How to Price Carpet Cleaning Jobs for Profit

Most carpet cleaning operators price their work once — usually by checking what the other guy charges — and never revisit it. That's how you stay busy and broke at the same time.

Per-room pricing feels simple. Tell the customer $35 a room, count the rooms, write the invoice. But "room" is a made-up unit. A dining room might be 120 square feet. A master bedroom might be 280. You can clean four small rooms faster and with less chemical than two large ones, and the invoice looks identical.

The carpet cleaning market in most areas runs on rates that haven't moved in a decade, set by operators who copied whoever was already working the zip code. The good news: the bar for smarter pricing is low.

Why Per-Room Pricing Kills Your Margin

Here's what a typical 3-room job looks like under per-room rates:

Three rooms at $35 = $105. Drive time: 25 minutes each way. Cleaning: 90 minutes. Chemical cost: $8. Equipment wear: $4. Fuel: $7. That's 2.5 hours on a job that nets $86 before your own pay.

Effective hourly rate: about $34. That's a side job, not a business.

Now run the same job priced by what's actually there:

800 square feet at $0.33 = $264. Pet enzyme treatment on two rooms: $60. Scotchgard on the whole house: $75. Total: $399.

Same drive. Same van. Maybe 45 minutes more of actual work. You made $313 more on that job.

That's not a best-case scenario. It's what happens when you price based on what you're cleaning instead of how many times the customer called a room a room.

Pricing by Square Footage and Condition

The base rate most profitable operators use runs $0.25 to $0.45 per square foot. Rural markets sit toward the lower end; suburban and urban markets can hold $0.35–$0.45 from customers who care about results. Start at $0.30 and test upward every few months until you hit real pushback.

Square footage is only half the equation. What the carpet looks like when you arrive determines whether the job actually pencils out.

Standard condition (normal traffic wear, no major staining): base rate applies.

Heavy soiling (matted fibers, gray traffic lanes, ground-in grime throughout): add $0.08–$0.12 per square foot. These jobs take longer and burn more product. The upcharge covers real costs.

Pet urine (odor present, visible staining, or customer mentions pets at booking): treat this as a separate line item, not a slight upcharge. Enzyme treatment runs $15–$40 per room depending on saturation. If there's subfloor involvement, that's a different conversation with a higher number. Never fold urine treatment into the base rate — you'll lose money on half those jobs.

Embedded pet hair: pre-vacuuming ground-in hair before steam extraction is real work. Add $10–$20 per room. Customers with heavy-shedding dogs aren't surprised by this; they usually feel guilty about it.

Set a minimum ticket and hold it. Mine was $125. If the job won't clear that number after your drive and setup, you're working for less than nothing. Let that call go to someone who hasn't done the math yet.

Walking Through an Actual Quote

A customer calls about four rooms and a hallway. Here's how to work the intake:

Ask square footage, or plan to measure when you arrive. "Rooms" don't give you enough to work with.

You get there and measure: living room (320 sq ft), two bedrooms (180 each), one bedroom (140), hallway (60). Total: 880 square feet. They have a dog. The living room and one bedroom have odor.

Base: 880 × $0.33 = $290 Pet enzyme treatment (2 rooms): $70 Pet hair pre-treatment (whole house): $25 Floor before upsells: $385

Now you offer Scotchgard on the two clean bedrooms and the hallway: another $55.

Final ticket: $385–$440. The customer was probably expecting $140 based on whatever they found online. But they have a real problem — urine odor in two rooms and embedded pet hair throughout — and you're delivering a real solution. Customers who care enough about their home to call and book don't walk away over a fair price.

The Four Upsells That Actually Convert

Fabric protector: Your chemical cost is $2–$5 per room. You charge $20–$30 per room, or about $0.10 per square foot. Pitch it at booking and again when you arrive. Don't say "would you like Scotchgard?" — say "I'm adding a seal coat after the extraction, keeps the fibers repelling spills for 12 to 18 months. Want me to include it?" Naming the outcome converts better than naming the product.

Deodorizer: Different from enzyme treatment. This is a general freshness rinse, not a urine-specific product. $10–$20 per room. Works for any home with pets, smokers, or carpet that hasn't been cleaned in years. "I can add a neutralizing rinse while I'm here — the carpet will smell fresh for a few months, not just look clean." About half the customers who hear that say yes.

Upholstery: Your equipment is already running. A three-cushion sofa takes 15–20 minutes. Charge $60–$120 depending on size. A loveseat is $45–$80. The customer didn't call about the couch, but they're standing there watching you work. Ask. You'll get a yes more often than you'd expect.

Stairs: Price by step ($2–$4 each) or as a flat add-on ($30–$60 for a standard flight). Stairs are slow and hard on hoses. Build "Does the home have stairs?" into your booking intake so there are no surprises when you're standing at the bottom of a 14-step flight you quoted over the phone.

A job that books at $160 and finishes at $290 after one or two of these offers is a normal day once you're asking consistently. You didn't do twice the driving. You asked.

For the same approach applied to electrical work, the electrician upsell guide covers how to offer add-ons in someone's home without it feeling like a sales call — the same principles apply in any residential service.

Pricing Mistakes That Cost You Real Money

Setting rates by copying competitors: The going rate in your market was probably set by someone who copied someone else. If you show up on time, do good work, and leave the carpet noticeably cleaner than expected, you don't have to compete on price. You compete on outcome.

Keeping new customers at stale rates: People you've served for three years who always book and always pay deserve some consideration. New customers should pay what you charge now. If your base rate hasn't moved in two years, you've cut your own pay every year inflation ran.

Quoting firm numbers before you see the job: Never give a hard price over the phone without asking about pets, staining, or how long since the last cleaning. "Based on what you've described, probably $180 to $240 — I'll confirm when I get there." That sets realistic expectations and protects you from conditions you didn't anticipate.

Not offering the add-on: You don't need to pitch hard. You need to mention it once, clearly, so customers who want it can say yes. Customers with a pet-hair problem or a stained sofa won't ask for enzyme treatment or upholstery cleaning because they don't know you offer it. Tell them. Most won't feel pressured. Some will say yes. Not offering guarantees a $0 upsell on every job.

The job-costing logic here applies across service trades — the landscaping pricing guide runs the same kind of margin math for outdoor work if you want to see how other operators think through their numbers.

What a Profitable Day Actually Looks Like

Four residential stops is a realistic day for one operator with one van, assuming you're routing stops close together and not burning 40 minutes between jobs.

Four jobs averaging $250 each = $1,000 gross. Chemical and supplies: ~$80. Fuel: ~$40. That's $880 before equipment depreciation and your own pay. A real business.

Four jobs averaging $150 each = $600 gross. Same costs. $480 left. That's $400 less in take-home from the same number of jobs, the same hours, the same equipment — from pricing and one upsell conversation per stop.

The operators who stick with carpet cleaning long-term are not working twice as many jobs as everyone else. They figured out the math, stopped letting per-room pricing make decisions for them, and started asking for the add-on.

---

Ready to build a carpet cleaning business on your own terms? Start your free 14-day trial — set your own rates, manage your own schedule, and keep everything you earn.

FAQ

Should I price carpet cleaning by the room or by square footage?

Square footage is far more accurate — a "room" can be anywhere from 120 to 280 square feet, so per-room pricing charges the same for very different amounts of work. Most profitable operators price at $0.25-$0.45 per square foot, adjusted for condition and staining.

How much extra should I charge for pet stains or odor?

Treat pet urine as its own line item, not a small upcharge — enzyme treatment typically runs $15-$40 per room depending on saturation. Embedded pet hair pre-treatment is a separate add of $10-$20 per room; folding either into your base rate is a fast way to lose money on those jobs.

What's a good minimum charge for a carpet cleaning job?

A minimum ticket around $125 is common and protects you from jobs that don't cover your drive time and setup. If a job won't clear your minimum after those costs, it's not worth booking at that price.

What upsells actually work in carpet cleaning?

Fabric protector (Scotchgard), a deodorizing rinse, upholstery cleaning, and stairs are the four that convert best because your equipment is already running and the customer is already home. Naming the outcome — "keeps fibers repelling spills for 12 to 18 months" — converts better than just asking "want Scotchgard?"

Run your side-work like a real business

SideWRK turns your phone into estimates, professional invoices, photos, payments, and a public profile that wins repeat customers — built for carpet & upholstery cleaning.

Start your free 14-day trial →
See how SideWRK works for carpet & upholstery cleaning →
Price it, compare it, run it: the free repair cost checker · the best invoicing apps for tradesmen, compared · switching from Markate?