Most pricing mistakes in exterior cleaning come from quoting by feel: a number that sounded right on the phone, a flat price that quietly assumed a smaller driveway, or a roof that turned out to be two stories and steep. Pricing by the square foot fixes that, because the price moves with the work. This guide walks through a method you can use on every job and then put on your booking page so customers get the same answer you would give.
1. Start from the hourly rate you need
A per-square-foot rate is just your target hourly rate divided by how many square feet you clean in an hour. Work out the hourly number first: your wage, the crew's wages, fuel, chemicals, insurance, equipment wear and the profit you want, divided by the hours you actually bill in a year (not the hours you are busy).
Then time yourself. On a clean, open driveway with a surface cleaner you might cover several hundred square feet an hour; on detailed siding with windows and landscaping to protect, far less. Your own numbers matter more than anyone's published average.
| Example inputs | Value |
|---|---|
| Target hourly rate (example) | $120 / hour |
| Measured production on flat concrete (example) | 800 sq ft / hour |
| Resulting base rate | $0.15 / sq ft |
2. Set a rate per surface, not one rate for everything
Different surfaces clean at very different speeds and carry different risk. Price them as separate services so each one has its own rate:
- Flat concrete (driveways, patios, walkways): priced per sq ft of surface.
- Siding and house washing: priced per sq ft of wall, which is perimeter x wall height - not floor area.
- Roofs and soft washing: priced per sq ft of true roof area, which is larger than the footprint because of pitch.
- Decks and fences: per sq ft or per linear foot, with a surcharge for stain prep if you offer it.
3. Add multipliers for what makes a job slower
Two jobs of the same size are not the same job. Rather than inventing a new price each time, keep a short list of multipliers and apply them consistently:
| Factor | Why it costs more | Typical way to charge |
|---|---|---|
| Heavy staining, moss or lichen | More dwell time and chemical, sometimes two passes | Condition multiplier, e.g. x1.25 to x1.5 |
| Second or third story | Ladders or extension wands, slower and riskier | Height multiplier or per-story surcharge |
| Steep roof pitch | More real surface than the footprint shows | Pitch factor applied to the measured area |
| Difficult access | Carrying hose, protecting plants and fixtures | Flat access fee |
4. Protect small jobs with a minimum charge
A per-square-foot rate on a tiny patio can come out below what it costs you to load the truck and drive there. Set a minimum job price so every visit covers travel and setup. Customers accept minimums when they are stated up front; they resent them when they appear on the invoice.
5. A worked example
| Line | Calculation (example rates) | Amount |
|---|---|---|
| Driveway, 750 sq ft | 750 x $0.15 | $112.50 |
| House wash, 140 ft perimeter, 2 stories | 140 x 20 ft x $0.12 | $336.00 |
| Heavy mildew on north side | Condition x1.25 on the house wash | +$84.00 |
| Total | $532.50 |
6. Put the same logic on your booking page
Once your rates are written down, the next step is letting customers see them. In Servetic you set each surface as a service priced per square foot or per linear foot, add condition and height as pricing options, set the minimum charge, and choose whether the service books instantly or asks for a quote first. Customers enter their size, pick the condition and see the same number you would have quoted - and anything too large or unusual can route to a quote automatically.