Count the panes, time how long your crew takes on each type, turn those minutes into cost at your loaded hourly rate, add access, travel and overhead, then divide by one minus your target margin. Per-pane, per-square-foot and hourly prices are the same sum presented differently. AI can build the quote sheet, but not count panes reliably from a photo.
Buyer cost guides tell a facilities manager roughly what a clean costs. They say nothing about what it costs you. Your price has to cover your own labour, equipment, insurance and driving, and the only reliable inputs are your pane counts and your stopwatch. The sheet below works for a single shopfront and for a four-storey office alike. All figures below are illustrative.
Per pane, per square foot, per hour: one sum shown three ways
Each pricing method is a different way to show the same labour. The method you quote in matters because each one breaks in a predictable place:
| Method | Works for | Where it breaks |
|---|---|---|
| Per pane | Shopfronts, offices and blocks with repeated glazing | Mixed pane types. A twelve-light window is not one pane of work. |
| Per square foot of glass | Large panes and curtain walls, where area drives the time | Small panes. In the timings below, a transom costs about five times as many minutes per square foot as a shopfront pane. |
| Per hour | First cleans, awkward access, jobs you cannot count in advance | The client cannot budget or compare, and it can reward slow work. |
| Lump sum per visit | What the client wants to see on the quote | Nothing, as long as it was built from one of the above. |
The five-times figure comes from simple division: a shopfront pane takes 4.0 minutes for 35 square feet (0.11 minutes a square foot) and a transom takes 4.5 minutes for 7.5 square feet (0.60). A flat per-square-foot rate would overpay you on the shopfront and underpay you on the transom.
Time twenty panes before you price one
Everything starts with a time study. On your next few jobs, time the work pane by pane with a phone stopwatch: wash, squeegee, detail the edges, wipe the frame if that is part of your service. Do not time set-up, filling the tank or driving; those become the fixed visit time. Group the panes by type and take the average. A filled-in log of 20 timings looks like this:
| Pane type | Timings (minutes) | Average |
|---|---|---|
| Shopfront pane, 35 sq ft | 4.2, 3.8, 4.1, 3.9 | 4.0 |
| Door and sidelight, 16 sq ft | 3.2, 2.8, 3.0 | 3.0 |
| Transom light, ladder, 7.5 sq ft | 4.8, 4.3, 4.4 | 4.5 |
| Upper sash pane, water-fed pole, 10 sq ft | 2.1, 1.9, 2.0, 2.2, 1.8, 2.0 | 2.0 |
| Twelve-light window, 15 sq ft | 7.4, 6.6, 7.0, 7.0 | 7.0 |
Write down what a "pane" includes before you start, because it changes the minutes. Does your price cover both sides of the glass or the outside only? Frames and sills? Tracks, screens and mullions? In this example the outside glass is timed as above, and frames and sills add half a minute per pane. Inside glass would be a separate list with its own times. A client who compares your quote with a rival's needs to know which of those each price covers.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowFrom minutes to a per-pane price list and a visit fee
Now the cost of a minute. A one-person crew with a water-fed pole might look like this:
| Input | Illustrative value | Where it comes from |
|---|---|---|
| Loaded labour | $23.00 an hour | $20.00 wage × 1.15 payroll burden |
| Van and kit | $10.00 per job hour | Fuel, pole, pure-water resin, ladders, squeegees, wear |
| Overhead | $12.50 per job hour | $1,500 a month ÷ 120 job hours |
| Cost per job hour | $45.50 | About $0.758 a minute |
| Price per job hour at a 30% margin | $65.00 | $45.50 ÷ 0.70 |
| Consumables | $0.30 per pane | Solution, cloths, resin used |
| Fixed visit time | 25 minutes | Set-up, filling the tank, pack-down, driving |
From these, each pane type gets a price: its minutes plus half a minute for the frame, times the cost per minute, plus consumables, divided by 0.70. The 25 fixed minutes become a visit fee of $27.08 ($0.758 × 25 ÷ 0.70).
| Pane type | Minutes including frame | Cost | Price per pane |
|---|---|---|---|
| Shopfront pane | 4.5 | $3.71 | $5.30 |
| Door and sidelight | 3.5 | $2.95 | $4.22 |
| Transom light (ladder) | 5.0 | $4.09 | $5.85 |
| Upper sash pane (pole) | 2.5 | $2.20 | $3.14 |
| Twelve-light window | 7.5 | $5.99 | $8.55 |
A price list with a visit fee is honest about where the money goes. If you would rather quote one number per pane, spread the visit fee across the panes you expect per visit, as you would with rooms per visit in a carpet quote. For repeat shopfront work the visit fee is the safer choice, because it stops a two-pane job losing money.
Twenty-one panes on a two-storey shopfront, minute by minute
A small retail unit has four large shopfront panes, a door with two sidelights, four transom lights and ten upper sash panes, which are cleaned from the ground with a water-fed pole. That is 21 panes and 318 square feet of glass. Minutes come from the averages above:
| Line | Panes | Minutes each | Minutes |
|---|---|---|---|
| Shopfront panes | 4 | 4.0 | 16.0 |
| Door and sidelights | 3 | 3.0 | 9.0 |
| Transom lights (ladder) | 4 | 4.5 | 18.0 |
| Upper sash panes (pole) | 10 | 2.0 | 20.0 |
| Frames and sills | 21 | 0.5 | 10.5 |
| Fixed visit time | 25.0 | ||
| Total | 21 | 98.5 (1.64 hours) |
Time cost is 1.64 hours × $45.50 = $74.70. Consumables are 21 × $0.30 = $6.30. Cost is $81.00, and at a 30% margin the price is $81.00 ÷ 0.70 = $115.71, which you quote as $115. The price list gives the same answer: 4 × $5.30, 3 × $4.22, 4 × $5.85 and 10 × $3.14 plus the $27.08 visit fee comes to the same $115.71, give or take a few cents of rounding.
Read the result in the other units, as outputs rather than inputs: $5.48 a pane, $0.36 a square foot of glass and $70 for each hour on the job, against the $65 an hour your cost stack and margin require. At $115 the margin is 29.6%. If the crew runs 20% slow, it falls to 16.6%: thinner, but still a profit.
Access and height: price the method, not a percentage
Many quotes add a "height surcharge" of some percentage and call it done. A percentage hides what the extra cost is. Name the method and price its cost:
| Access factor | How to price it | Illustrative example |
|---|---|---|
| Ladder work | Longer minutes per pane, from your timings | Transoms at 4.5 minutes against 2.0 for a pole pane |
| Second person on ladders or lifts | Extra minutes of loaded labour, then the margin | 18 transom minutes × $23.00 ÷ 60 = $6.90 of cost, about $9.86 on the price |
| Lift hire | Hire cost shared across the buildings done that day, then the margin | $440 ÷ 3 buildings = $146.67, about $210 added to each visit |
| Rope access | Subcontractor's price plus your own margin | Verify their qualifications and insurance yourself |
| Inside access | Inside panes on their own price list, plus waiting time at reception | A 15-minute sign-in is paid time |
| Pavement or traffic management | Cones, barriers or permits passed through at cost plus handling | Itemised on the quote |
The lift sum shows why scheduling matters. If you can clean three buildings on the day you hire a lift, each carries $147 of hire cost. If you can fit only one, that building must carry the full $440, which is about $629 on the price. Group the lift jobs by street and quote the group rate only when the group exists. Some insurers and safety rules also require a second person for ladders or lifts above a certain height, so read your policy wording and the rules that apply to your work before you quote the method, not afterwards.
A four-storey office quoted by the square foot
Large fixed panes are where per-square-foot pricing earns its place, because time follows area and lift positions rather than pane count. Take the front and sides of a four-storey office: 96 fixed panes of 30 square feet each, 2,880 square feet in all, cleaned from a lift. The crew takes 3.0 minutes a pane including the frame wipe. Each lift position covers six panes and takes 8 minutes to move and level, so 16 positions add 128 minutes. Lift set-up and pack-down add 35 minutes to the usual 25 fixed minutes.
| Line | Working | Minutes |
|---|---|---|
| Panes from the lift | 96 × 3.0 | 288 |
| Moving the lift between bays | 16 positions × 8 | 128 |
| Fixed visit time, including lift set-up | 25 + 35 | 60 |
| Total | 476 (7.93 hours) |
This firm works on a two-person rule for lifts, which you should confirm against your own insurer and site rules. The crew therefore costs $81.00 an hour: two loaded wages ($46.00), van and kit ($10.00) and overhead for two people ($25.00). Labour and kit come to 7.93 × $81.00 = $642.60, and consumables are $28.80. The lift costs $440 for the day, and a second building on the same street shares it, so $220 lands on this quote. Cost is $891.40, and the price at a 30% margin is $1,273, which you quote as $1,275.
In other units that is $13.28 a pane, $0.44 a square foot and about $161 for each hour on site, which is $80 per person-hour against $65 for the one-person crew. The difference is the lift and the second person, and both show as visible lines rather than a percentage. If no second building shares the hire day, cost rises by $220 and the price to $1,590. A $315 swing from scheduling alone is why you group lift jobs by street before you quote.
Frequency discounts built from the time you save
A building cleaned monthly is less dirty on each visit, so each visit is quicker. A building cleaned once a year needs scraping and extra passes. Reflect that in the pane-time factor, not in a round-number discount. For the shopfront, with pane and frame minutes scaled but the fixed 25 minutes unchanged:
| Frequency | Pane-time factor | Minutes a visit | Price a visit | Visits a year | Annual revenue |
|---|---|---|---|---|---|
| Monthly | 0.80 | 83.8 | $100 | 12 | $1,200 |
| Quarterly | 1.00 | 98.5 | $115 | 4 | $460 |
| Once a year | 1.35 | 124.2 | $145 | 1 | $145 |
| First clean of a new account | 1.50 | 135.2 | $155 | once | one-off |
The monthly visit is about 13% cheaper than the quarterly one, though pane time falls by 20%, because the fixed 25 minutes do not shrink. That 13% is a discount your timings support. A client who asks for 25% off for monthly service is asking you to lose margin on every visit. The better argument is the annual total: monthly service brings you $1,200 a year from the same shopfront, against $460 quarterly, and that extra revenue is what justifies the lower price per visit.
The factors here (0.80, 1.00, 1.35 and 1.50) are placeholders. Replace them after you have timed the same building at two frequencies, and treat any figure you borrow, including these, as a guess until your own log disagrees.
The re-clean promise has a cost
Plenty of quotes promise a free re-clean if rain falls soon after a visit. The promise is fine, but it is a cost, and it belongs in the price. Suppose it triggers on one visit in twelve, a figure you should replace with your own weather log. A re-clean costs the whole visit again, $81.00 of time and consumables, so the expected extra cost is $81.00 ÷ 12 = $6.75 a visit. Effective cost becomes $87.75, and at $115 your margin drops from 29.6% to 23.7%. To keep 30% you would price at $125.
You have three options: build the allowance into the price, limit the promise, or drop it and say so. A limit might be outside glass only, if rain falls within 24 hours and the client reports it within 48. Whichever you choose, write the rule into the quote, because a vague "we will come back if it rains" invites exactly the argument it was meant to avoid.
A quote summary the client can read in one minute
The sheet is for you; the client gets a short summary. This is the shape that works, using the shopfront numbers with the re-clean allowance built in:
Window cleaning, [site name]. 21 panes: 4 shopfront, 3 door and sidelight, 4 transom and 10 upper sash. Outside glass, frames and sills, by ladder and water-fed pole. $125 a visit, quarterly. Inside glass, awnings and signage are not included. Each visit takes about 1 hour 40 minutes and needs access to the rear yard gate. If rain falls within 24 hours of a visit and you tell us within 48 hours, we re-clean the outside glass once at no charge. Price held for 12 months. Insurance certificate available on request.
Every sentence answers a question a facilities manager would otherwise ask by email: what is covered, what is not, how long it takes, what you need from them, what happens when it rains and how long the price holds. An assistant can draft this from your quote sheet if you paste the numbers in and tell it to add nothing you did not supply.
Where per-window pricing breaks: 24 twelve-light windows
A flat per-window price works until the building changes. Say you charge $6 a window on plain frames, and a former office comes up with 24 twelve-light windows: 288 small lights, each with its own edges. You quote the usual $6 a window, which is $144 for the visit.
The price list says each twelve-light window costs $8.55, so the visit needs 24 × $8.55 plus the $27.08 visit fee, which is $232. The cost is $163. At $144 you are not just under target; you are losing $19 a visit, a margin of minus 13%. Quoted by the pane type, the same job is $230. The client may still say no, but you will have said no first, with numbers. If you quote per window, keep a separate rate for multi-lite glass, or better, keep the price list and let the pane type decide.
Pane counts: a photo is not a survey
It is tempting to count panes from a street photo and quote from the desk. A count is the most expensive number to get wrong, because every error multiplies by your pane price on every visit. OpenAI's guide to image inputs lists counting among the model's limitations: the model may give approximate counts for objects in images. The same guide says images may be resized before analysis, which does not help when you are trying to count small lights.
Suppose a photo-based count says 42 panes and the walk-round finds 51: the rear windows, the door glass, two side panels and some internal glazing were out of view. Nine panes at the shopfront's $5.48 average is $49 a visit, or about $197 a year at quarterly visits, with 17.6% of the true pane count missing from the price before you have lifted a squeegee. The same photo-quote problem shows up in other trades: pricing gutter cleaning from street view looks at what AI gets wrong there, and per-window rates and AI quotes from photos covers the residential side of the same question.
A reliable count is a tally sheet and a walk. Go round each elevation, front, sides and rear, and each level, and record pane type, inside or outside, and any obstruction such as an awning, signage or a locked yard. Photograph each elevation. An assistant can then tidy a handwritten or dictated tally into quote lines, as long as you tell it to flag every missing number rather than guess. Use photos for what they do well: asking what might make access difficult, such as overhead cables, steps, reflective film or a narrow alley, and then confirming it on site.
The pane-count workbook: a prompt and the formulas to check
An assistant can build the workbook once you hand it the structure. Give it your timings and costs and keep the arithmetic in plain formulas, not in an AI function inside a cell:
Build a commercial window cleaning quote sheet for Excel or Google Sheets.
Tabs: Inputs, Panes, Quote. Plain formulas only; no AI functions in cells.
Inputs: wage 20.00; payroll burden 15%; van and kit cost per job hour 10.00;
monthly overhead 1500; job hours per month 120; fixed minutes per visit 25;
frame and sill minutes per pane 0.5; consumables per pane 0.30; target margin
30% (profit divided by price, NOT markup on cost). Frequency factors for
pane time: Monthly 0.80, Quarterly 1.00, Annual 1.35, First clean 1.50.
Panes: type, typical sq ft, minutes per pane: Shopfront 35 / 4.0;
Door and sidelight 16 / 3.0; Transom ladder 7.5 / 4.5; Upper sash pole
10 / 2.0; Twelve-light 15 / 7.0.
Quote: one line per pane type (count), a frequency choice, and an access cost
cell. Output: total minutes, cost, price at target margin rounded to the
nearest 5, price per pane, price per sq ft of glass, margin at the rounded
price, and margin if the job runs 20% slower.
Use INDEX and MATCH. List every formula. Then give me two test buildings
with answers worked out by hand.
The assistant's first attempt (illustrative) usually lays the tabs out well. Check these formulas before anything else:
Inputs!B11 Cost per job hour =B2*(1+B3)+B4+B5/B6
Quote!C4 Minutes for a line =B4*(INDEX(Panes!C$2:C$6,MATCH(A4,Panes!A$2:A$6,0))+Inputs!$B$8)*INDEX(Inputs!$B$13:$B$16,MATCH($B$1,Inputs!$A$13:$A$16,0))
Quote!B16 Total minutes =SUM(C4:C13)+Inputs!B7
Quote!B17 Cost =B16/60*Inputs!B11+SUM(B4:B13)*Inputs!B9+B15
Quote!B18 Price =MROUND(B17/(1-Inputs!B10),5)
Quote!B19 Price per pane =B18/SUM(B4:B13)
Quote!B20 Margin =(B18-B17)/B18
Quote!B21 Margin if 20% slower =(B18-(B16*1.2/60*Inputs!B11+SUM(B4:B13)*Inputs!B9+B15))/B18
Expect to catch at least one of five faults. The frequency factor gets applied to the fixed visit minutes as well, so a monthly quote loses the driving and set-up time that does not shrink. The price cell multiplies cost by one plus the margin, which gives a markup, not a margin. The frame minutes are added once per visit instead of once per pane. The price-per-square-foot cell divides by the pane count instead of the glass area. And the assistant adds a height surcharge percentage you never asked for, so delete it and price the method instead. Test both buildings against the assistant's hand-worked answers and your own sums before the sheet goes anywhere near a customer.
Once the quote sheet works, the commercial window cleaning contract and proposal covers the paperwork, access and safety wording that sits around the price. If windows are one line of a wider cleaning contract, the commercial cleaning margin calculator uses the same cost model for the rest of the building, and what AI helps with in a one-van window business puts quoting in the context of the whole week.
Commercial window pricing questions
Is per pane or per square foot better for commercial windows?
Per pane suits uniform openings such as shopfronts and offices with repeated glazing. Per square foot suits large panes and curtain walls, where area drives the time. Hourly suits first cleans and unknown counts. All three come from the same sum of minutes, labour cost and margin, so choose the one your client can compare.
How much extra should I charge for height?
Do not use a flat percentage. Price the method: ladder minutes, a share of lift hire, a second person if your insurer or the site requires one, or a subcontractor's quote plus your margin. In the worked example, a lift costing $440 shared across three buildings adds about $210 to each visit at a 30% margin.
Should a monthly window clean cost less than a quarterly one?
Per visit, yes, if the glass really is cleaner and faster. In the example, pane time falls by 20% but the 25 fixed minutes stay, so the monthly visit is about 13% cheaper. Offer the discount that your timings support, and no more.
Can AI count the windows from a photo for a quote?
Not reliably. OpenAI's own guidance says its models may give approximate counts for objects in images, and a street photo hides rear windows, side panels and door glass. Count on site or from plans, and use photos to spot access problems, not to set quantities.
Further reads
- Window Cleaning Price Increase Letter: Text and Leaflet Versions With AI — Raise prices on existing accounts without losing them.
- Window Cleaning Round Software: Can AI Plan and Rebook a Round? — Plan and rebook rounds once the prices are settled.
- Can AI Help a Roof Cleaning Business? Photo Quotes and Safety Notes — Photo quotes and safety notes for another high-access trade.
- Solar Panel Cleaning Business: Quote and Route Jobs With AI — Quote and route a neighbouring glass-cleaning trade.
- How to Get Window Cleaning Customers: Leaflets, Local Search and AI — Find the customers once your price card is ready.
- Price Carpet Cleaning Jobs: Build a Per-Room Calculator With AI — The same cost model applied to carpet and rooms.
- How to Price Christmas Light Installation: Roofline, Trees and Take-Down — A worked quote with roofline, two trees and take-down as separate priced lines, the cost behind each rate, and an AI check of the sheet.
- Labour Burden Rate: What Each Employee Really Costs a Trades Firm — Build a labour burden rate per employee from your payroll, with two worked trades examples and the unbillable hours most firms forget.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: OpenAI developer guide to images and vision (limitations, including approximate counts and resizing before analysis).