Window Cleaning Estimate Came In Too Low?

Updated July 28, 2026 · ~12 min read · Ilura Technology

Window Cleaning Estimate Came In Too Low: Recount the Panes

Short answer: A window cleaning estimate came in too low almost always because the pane count was taken from the curb instead of from the glass. Storm windows are a second unit, a 15-lite French door is 15 panes, and screens are their own line. The other half is access: a job bid as a ladder job that turns out to need a water-fed pole or a rope descent system is a different price class. Recount at the first elevation, before the bucket comes off the truck.

You quoted 46 openings and you are standing in front of 78 panes of glass, half of them behind storms, with a hard water haze on the south elevation. Nothing about the house changed. The count did, and a per-pane trade lives or dies on the count. The document that eventually goes out is ordinary enough — what to include on an invoice covers that part — but it has to carry the right quantity.

Which number broke — the pane count, the access class, or the condition?

Find it before you say anything, because the three have different answers.

What you are looking atWhat went wrong in the bidWhose problem it is
46 quoted, 78 actual panesOpenings counted instead of glass, or storms missedYours if you walked it, chargeable if you bid from photos and said so
Every window has a snap-in gridDetailing time not priced, though the pane count was rightYours, and it is a rate-card fix
The third floor has no ladder footingAccess class assumed from the groundChargeable, and it may be a stop
Chalky white haze that will not squeegeeMineral etching, not soilChargeable, and it is a different service
Paint flecks across the ground floorPost-construction, not maintenanceChargeable, if you did not walk it
Screens all need pulling, washing, dryingScreen line left off the estimateYours
Two hours of the day went to drivingRoute density and minimum charge ignoredYours, on every small job until you fix it

The split matters. A condition you could not see from the driveway is a legitimate change order. A count you took badly while standing in the driveway is a rate-card lesson.

How does a pane actually get counted?

By the piece of glass and by what has to happen to it, not by the hole in the wall.

What you seeHow it counts
Double-hung windowTwo sashes, both faces, and the sashes have to be moved to reach the meeting rail
Storm window over a sashA separate unit — the storm comes out, gets cleaned, and goes back
True divided lite, 6-over-6Twelve small panes, each with a frame edge, far slower per square inch than one big light
Snap-in or between-the-glass gridOne pane, but the grid slows the detail pass or has to be removed
French door, 15-liteFifteen panes on each face
Sidelights and transomsEach one is a pane, and they are the most commonly forgotten
Picture window or slider over about 25 sq ftCounts as more than one, because it needs two hands and a bigger channel
SkylightsA separate class entirely — roof access, and often interior pole work
ScreensTheir own line: pull, wash, dry, reinstall, per screen
Tracks and sillsTheir own line, by the opening, and vacuumed before anything wet touches them

Now run the recount on a real house instead of arguing about it. A 1940s two-story with twenty double-hung openings, eight of them with storms, a 15-lite back door, two sidelights, and a transom does not read as twenty. It reads as forty sashes, sixteen storm units, fifteen door lites, three fixed panes, and twenty screens, and if your price is per pane, that is the number that has to be on the paper.

Write the count on the estimate itself, elevation by elevation. An estimate that says “48 panes exterior, 48 interior, 20 screens, 8 storms, north and west elevations pole access” survives a recount because it can be checked. An estimate that says “clean windows, whole house” cannot be corrected without looking like a price increase.

What changed about access?

Access is not a detail, it is a price class, and moving up one class changes the labor, the equipment, and the insurance behind the job.

ClassWhat it coversWhat it changes
Ground level, inside and outFirst floor, standing on the groundBaseline production rate
Ladder workSecond story with a stable footing at the right angleSlower, two-person on some setups, and the setup time repeats at each window
Water-fed poleReaching several stories from the ground with purified waterEquipment and filtration cost, no detail wipe, weather dependent
Boom or scissor liftWhere a pole cannot reach and there is hardstandingRental, delivery, operator qualification, ground protection
Rope descent systemHigh-rise dropsA different regulatory world, below

Two ground conditions quietly force a class change and neither is visible from a phone photo: landscaping and grade. A bed of mature shrubs under a second-story window means no ladder footing, and a slope means no safe angle. Both push you to a pole or a lift.

If the job is a rope descent, the paperwork comes before the rope. Under OSHA’s general industry rules at 29 CFR 1910.27(b), the building owner has to inform the employer in writing that each anchorage has been identified, tested, certified, and maintained as capable of supporting at least 5,000 pounds in any direction per attached worker, based on an inspection by a qualified person and certification at least every 10 years, and rope descent systems are not to be used above 300 feet above grade except in limited circumstances. No letter means no drop. That is not a pricing conversation and it is not something a customer can wave off.

Is this a cleaning or a restoration?

Hard water is the single most misread condition in this trade, because it looks like dirt from twelve feet away and is not dirt at all.

Sprinkler overspray, runoff from a metal awning, and years of hard water leave mineral deposits that are bonded to the glass. A squeegee does nothing. Removing them is an abrasive or acidic process, done pane by pane, and it takes many times as long as a wash. Worse, glass that has been left long enough can be etched rather than coated, and etched glass does not come back — polishing improves it and does not restore it.

The same is true of construction residue. Paint overspray, stucco splatter, concrete dust, and adhesive from film are a post-construction clean, which is a scraped job with a razor at the correct angle on the correct glass, and it carries a real risk of scratching tempered or coated panes.

So do three things before you commit a number. Test one pane, time it, and photograph the before and after. Price restoration per pane at a separate rate from cleaning. And put the limit in writing: “Mineral deposits are removed as far as the glass allows. Glass already etched by long-term deposits cannot be fully restored.” A customer who signs that sentence does not later expect new windows.

How do I raise the price with the ladder already up?

Stop at the first elevation, not halfway through the house. That is the practical difference between this trade and the ones where the house is torn open — a half-cleaned window job is genuinely walkable, for both sides, which means the conversation has to happen while it is still cheap for everyone.

Walk it with the customer, glass in view, and count out loud. “The quote was for 46 panes. The storms on the north and west are separate units, that is 16 more, and the back door is 15 lites. Here is what that does to the number.” Pointing at the actual glass ends the discussion faster than any explanation, because the customer can count too.

Then handle the two conditions separately from the count. Hard water gets the test pane shown side by side with an untreated one. Access gets stated as a fact rather than a preference: no footing for a ladder in that bed, so it is pole work or it is not done.

What goes in a window cleaning change order?

Six fields, dated and approved before the additional work happens.

FieldWhat to write
Date and job referenceThe date, the address, and the original estimate number
Count as quoted vs count as found”Quoted 46 panes exterior. Found 78 panes plus 16 storm units and 20 screens”
Access changeThe elevation, the reason, and the class it moves to
Condition foundNamed, with the test pane photo attached, and the limit stated
New quantities and ratesPanes at the cleaning rate, restoration panes at the restoration rate, screens per screen
Totals and approvalOriginal, addition, revised total on one line, plus a signature or a texted “approved”

A photograph of one clean test pane next to a hazed one settles a hard water dispute in about four seconds. Keep it attached to the job, along with the elevation counts, since that file is where how to get clients to pay starts if a balance ever drifts.

When is finishing at a loss the right call?

The arithmetic here is unusual, because your sunk cost is the drive rather than the material.

You are already parked, the ladders are off the truck, and the setup is done. Finishing a house you undercounted by thirty panes costs you an extra hour or two of labor and nothing else — no material to write off, no unopened boxes, no unsellable inventory. Walking away costs you the whole drive, the setup, and the customer. On a one-time residential job that you misjudged yourself, finish it, log the true pane count, and fix the rate card that evening.

The decision flips completely on recurring work. A commercial storefront bid low is not one bad day, it is a bad day repeated every two weeks for a year, and the total loss is the miss multiplied by the frequency. Never absorb that quietly. Reprice at the next renewal with the counted schedule attached, or hand it back. The same goes for anything that turns out to need a lift you have to rent or an anchorage certification that does not exist — those are not losses to eat, they are jobs to stop.

How do I rebuild the per-pane number?

Build it from your own timed production, then use published ranges only to check you are not off by half.

  1. Time yourself by pane type and access. Standard double-hung interior, exterior on a ladder, French lites, storms in and out, screens, tracks and sills. You will find these differ by several times, not by a few percent.
  2. Load an hour honestly. Wage plus payroll burden, workers comp and liability — which is priced very differently once height work is on the policy — the van, purified water filtration and cartridge replacement, ladders, poles, squeegee rubber, and the hours spent quoting and driving with nobody paying.
  3. Divide, do not guess. Loaded hourly cost divided by panes per hour for that pane type gives your cost per pane. Everything after that is your decision, not the market’s.
  4. Set a minimum charge and mean it. A two-window job consumes a drive, a setup, and a pack-up. Anything below the minimum is a favor, and it is fine to call it one, as long as you know it is not a job.
  5. Price frequency as a real discount, not a reflex. A quarterly commercial storefront is faster per visit than an annual one because there is less to remove. Discount the visits you are actually faster on, and hold the price on the ones you are not.
  6. Take profit as a margin, not a markup. Add 30 percent to $500 of cost and you bill $650 and keep 23 percent. To keep 30 percent you divide by 0.70 and bill $714. Markup multiplies and margin divides, and the difference is a whole season of profit on a high-volume, low-ticket trade.

Published per-pane and per-house prices move enormously with region, story count, glass type, frequency, and how far the property sits off your route. They are a sanity check and never the price. When the pricing is right, the timing question is separate and covered in when should a window cleaning contractor invoice.

What do I keep so the correction holds?

The elevation counts you took, the test pane photos, the access notes, the dated approval, the anchorage letter on any high-rise, the supply receipts, and the miles between stops.

Keel handles that from the phone in your pocket at the top of the ladder. It is an iOS app running entirely on the device: no account, no bank connection, no cloud, no login, and an App Store privacy label reading Data Not Collected. The corrected invoice gets built at the truck in about a minute, with your numbering, your logo, your brand color, the quoted count on one line and each added item — storms, screens, restoration panes, access change — on its own, plus a payment link the customer scans as a QR code. Supply receipts for filtration cartridges and squeegee rubber get photographed and read on device by Apple Intelligence. The drive between stops logs as mileage, which matters more in this trade than most, since a route day is mostly windshield time. Freeboard shows cash minus tax reserve minus committed invoices minus buffer. The ledger is append-only and hash-chained, and the year exports as one file or as the Accountant Pack, a CSV plus a one-page summary PDF. Free is $0 with unlimited invoices, receipts, and mileage. Keel Pro is a one-time $249.99 Lifetime purchase, not a subscription, and the paperwork it holds is the same set described in a contractor receipt organizer.

Frequently asked questions

What do I do if my window cleaning estimate was too low?

Stop at the first elevation, before the bucket comes off the truck, and recount from the glass rather than from the openings. Count sashes, storms, French lites, sidelights, transoms, and screens separately. Show the customer the count out loud while pointing at the windows, then write a change order with the quoted count and the found count side by side.

How do you count panes for a window cleaning quote?

By pieces of glass and by what each one needs. A double-hung is two sashes, a storm window is a separate unit that comes out and goes back, a 15-lite French door is fifteen panes per face, and sidelights and transoms each count. Screens, tracks, and sills are their own lines, priced per screen and per opening.

Should I charge extra for hard water stains?

Yes, at a separate restoration rate per pane, because mineral deposits are bonded to the glass and a squeegee does nothing. Clean one test pane first, time it, and photograph it next to an untreated one. Put the limit in writing too, since glass etched by long-term deposits improves with polishing but does not fully come back.

Can I raise the price after starting a window cleaning job?

For conditions you could not see from the ground and for access changes, yes, provided you stop and get approval before the extra work happens. An undercount you made while walking the property yourself is harder to defend and is usually cheaper to absorb. Either way, get the approval in writing before continuing, even if it is a text message.

What do I need before doing a rope descent job?

Written information from the building owner that each anchorage has been identified, tested, certified, and maintained to support at least 5,000 pounds in any direction for each attached worker, based on a qualified person’s inspection and certification at least every 10 years. OSHA also limits rope descent systems to 300 feet above grade except in narrow circumstances. Without that letter, the job does not start.

Should I finish a window cleaning job I underbid?

On a one-time residential job, usually yes. The drive and the setup are already spent and there is no material to write off, so finishing costs an extra hour and keeps the customer. On recurring commercial work the answer is no, because the miss repeats every visit. Reprice at renewal with the counted schedule attached, or hand the account back.


This article is general information, not professional or tax advice.

Getting paid → Receipts

What do I keep?

Proof of what you spent, in a form that survives.

Contractor Receipt Organizer: A System That Survives the Truck A contractor receipt organizer that works from the truck: code every slip by job at the register, photograph it before the paper fades, and keep what counts. Continue →

When the money is late

Keel tracks what is owed and what has landed.

Every invoice sits in a private, append-only ledger on your phone, so what is outstanding is a fact you can see rather than a spreadsheet you maintain.

On-device · No account · Data Not Collected