Short answer
Build a solar panel cleaning price list from time: panels × minutes per panel, plus setup and drive, gives hours. Cost the hours at loaded wage plus overhead, add consumables, then divide by (1 − margin). Example assumptions: 20 panels on a single-storey roof take 2 hours and price at $138.33, or $6.92 a panel.
- Hours = (panels × minutes per panel + setup + drive) ÷ 60. Assumed: 20 panels × 3 minutes + 60 minutes = 2 hours.
- An assumed $24 wage, 25% burden and $9 of overhead make a $39 break-even hour, $65 at a 40% margin.
- Per-panel price falls with size: $10.17 at 10 panels, $5.29 at 40, same roof, same rates.
- The minimum charge is the computed price of the smallest job: $101.67 for 10 panels on these inputs.
- A maintained array at 1.5 minutes a panel prices at $105.83, not $138.33. No invented discount.
On this page
- How to build a solar panel cleaning price list from time
- Solar panel cleaning price calculator (opens on 20 panels, single-storey roof)
- Solar panel cleaning cost per panel: a price list for 10, 20, 30 and 40 panels
- What should the minimum charge for solar panel cleaning be?
- How to price a recurring solar panel cleaning plan
- Commercial solar panel cleaning cost: when a 2-person crew row makes sense
- Cleaning method, roof access and exclusions: what the price list has to say
- Excel formulas for the price list, and the markup mistake
- Calculator, spreadsheet or app: what to put on your solar panel cleaning price list
- Step-by-step
- FAQ
How to build a solar panel cleaning price list from time
Price the time, then divide by the panels. Each line of the list is one job costed door to door and divided by one minus your margin.
- Hours = (panels × minutes per panel + setup minutes + drive minutes) ÷ 60.
- Break-even per hour = wage × (1 + burden %) + yearly overhead ÷ sellable hours.
- Break-even for the job = hours × break-even per hour + consumables.
- Price = break-even ÷ (1 − margin).
- Price per panel = price ÷ panels.
I build pricing maths; I do not clean solar panels. Every input below is an assumption to replace with your own, the minutes per panel most of all. Time real jobs and use those.
| Access tier | Minutes per panel, first clean | Setup and pack-down | Round-trip drive |
|---|---|---|---|
| Ground mount | 1.5 | 15 min | 30 min |
| Single-storey roof, cleaned from the ground with a water-fed pole | 3 | 30 min | 30 min |
| Two-storey or steep roof | 4.5 | 45 min | 30 min |
Wage and burden (assumed): $24 an hour plus 25% burden is $30. For an employee, the employer's share is 6.2% Social Security and 1.45% Medicare, per IRS Topic 751; workers' compensation, unemployment tax and paid time off make up the rest of the assumed 25%. Get a real workers' compensation quote for roof work. None of this is tax advice.
| Item | Per year (assumed) |
|---|---|
| General liability insurance | $2,400 |
| Pure-water system, poles, hoses and cleaning heads (replacement) | $2,100 |
| Ladder and fall protection equipment | $840 |
| Vehicle: fuel, insurance, wear | $6,600 |
| Phone, booking and payment software | $1,500 |
| Marketing and lead fees | $1,800 |
| Licences, registration, bookkeeping | $600 |
| Total | $15,840 |
Overhead per hour: $15,840 ÷ (1 person × 220 billable days × 8 hours = 1,760 hours) = $9. Job hours here run door to door, so drive time is inside them; if you sell fewer than 8 hours a day, enter fewer days. Consumables (assumed): $0.25 a panel for water-treatment resin, filters and detergent. Margin (assumed): 40%.
Break-even is $30 + $9 = $39 an hour. Divided by 0.60, each hour sells at $65.
Solar panel cleaning price calculator (opens on 20 panels, single-storey roof)
Enter your hours, wage, burden, consumables, overhead and margin to get break-even and the price to quote. It opens on the example below, so it shows $138.33.
Hours come from step 1: 20 × 3 + 30 + 30 = 120 minutes. Consumables go in the materials box: 20 × $0.25 = $5.
Worked example: 20 panels, single-storey roof cleaned from the ground: 60 minutes of cleaning + 30 setup + 30 drive = 2 hours (assumed inputs)
| Item | Value |
|---|---|
| Workers (input) | 1 |
| Hourly wage paid (input) | $24.00 |
| Labour burden % (input) | 25% |
| Materials (input) | $5.00 |
| Overhead for the year (input) | $15,840.00 |
| People in the field (input) | 1 |
| Billable days a year (input) | 220 |
| Target margin % (input) | 40% |
| Jobs a week (input) | 10 |
| Hours on the job (input) | 2 |
| Loaded labour rate (per hour) | $30.00 |
| Crew-hours | 2 |
| Labour cost | $60.00 |
| Overhead per sellable hour | $9.00 |
| Overhead share | $18.00 |
| Break-even cost | $83.00 |
| Price to quote | $138.33 |
| Profit on the job | $55.33 |
| Price if you MARK UP instead | $116.20 |
| Margin you actually keep with markup | 28.57% |
| Lost per job by marking up | $22.13 |
| Lost per year by marking up | $11,509.33 |
Computed with the same formulas as the free calculators on this site. Change any input in the calculator above to see your own numbers.
Check it: 2 hours × $30.00 = $60.00 of labour, plus $18.00 of overhead and $5.00 of consumables, is $83.00. Divided by 0.60 that is $138.33, and $138.33 ÷ 20 panels = $6.92 a panel.
The free window cleaning calculator runs the same job-pricing engine with window-cleaning defaults, not solar ones; overwrite the hours and materials.
Solar panel cleaning cost per panel: a price list for 10, 20, 30 and 40 panels
On these assumptions a 20-panel array prices at $89.58 on a ground mount, $138.33 on a single-storey roof and $187.08 on a two-storey or steep roof. Each cell below is one computed job; the per-panel figure is price ÷ panels.
| Panels | Ground mount | Single-storey roof | Two-storey or steep roof |
|---|---|---|---|
| 10 | $69.17 ($6.92 a panel) | $101.67 ($10.17 a panel) | $134.17 ($13.42 a panel) |
| 20 | $89.58 ($4.48 a panel) | $138.33 ($6.92 a panel) | $187.08 ($9.35 a panel) |
| 30 | $110 ($3.67 a panel) | $175 ($5.83 a panel) | $240 ($8 a panel) |
| 40 | $130.42 ($3.26 a panel) | $211.67 ($5.29 a panel) | $292.92 ($7.32 a panel) |
| Panels | Ground mount | Single-storey roof | Two-storey or steep roof |
|---|---|---|---|
| 10 | 1 h | 1 h 30 min | 2 h |
| 20 | 1 h 15 min | 2 h | 2 h 45 min |
| 30 | 1 h 30 min | 2 h 30 min | 3 h 30 min |
| 40 | 1 h 45 min | 3 h | 4 h 15 min |
Why the per-panel price falls as the array grows
Setup and drive are the same 60 minutes whether the single-storey roof holds 10 panels or 40. That hour costs $65 at the selling rate. Spread over 10 panels it is $6.50 a panel, 63.9% of the price; over 40 it is $1.63, or 30.7%.
So the same list can be printed as a visit charge plus a flat per-panel price, which quotes any array size:
| Access tier | Visit charge (setup + drive) | Price per panel cleaned |
|---|---|---|
| Ground mount | $48.75 | $2.04 |
| Single-storey roof | $65 | $3.67 |
| Two-storey or steep roof | $81.25 | $5.29 |
The National Renewable Energy Laboratory describes cleaning cost in the same two parts: "usually a fixed fee to mobilize a cleaning crew and then a per-unit-area cost for labor and materials" (NREL, Best Practices for Operation and Maintenance of Photovoltaic and Energy Storage Systems, 3rd edition).
Try it with your numbers — free
The free calculator does this whole method in about a minute: loaded labour, overhead share, break-even and the price to quote at your margin. No signup, nothing to download, and your numbers stay in your browser.
Open the free window cleaning pricing calculator →Get the free spreadsheetWant it built around your own rates, services and branding? Done-for-you custom calculator ($497).
What should the minimum charge for solar panel cleaning be?
Set the minimum at the computed price of the smallest job you will drive to. With an assumed 10-panel floor on a single-storey roof, that is $101.67.
Worked example: Minimum charge: 10 panels on the same roof type, 30 minutes of cleaning + 30 setup + 30 drive = 1.5 hours (assumed inputs)
| Item | Value |
|---|---|
| Workers (input) | 1 |
| Hourly wage paid (input) | $24.00 |
| Labour burden % (input) | 25% |
| Materials (input) | $2.50 |
| Overhead for the year (input) | $15,840.00 |
| People in the field (input) | 1 |
| Billable days a year (input) | 220 |
| Target margin % (input) | 40% |
| Jobs a week (input) | 10 |
| Hours on the job (input) | 1.5 |
| Loaded labour rate (per hour) | $30.00 |
| Crew-hours | 1.5 |
| Labour cost | $45.00 |
| Overhead per sellable hour | $9.00 |
| Overhead share | $13.50 |
| Break-even cost | $61.00 |
| Price to quote | $101.67 |
| Profit on the job | $40.67 |
| Price if you MARK UP instead | $85.40 |
| Margin you actually keep with markup | 28.57% |
| Lost per job by marking up | $16.27 |
| Lost per year by marking up | $8,458.67 |
Computed with the same formulas as the free calculators on this site. Change any input in the calculator above to see your own numbers.
A 6-panel array on that roof pays the $101.67 minimum, because the hour of setup and drive does not shrink. The floor moves with access: $69.17 for a ground mount and $134.17 for a two-storey or steep roof, the 10-panel row of the list. A longer drive raises the minimum; rerun the row with your own drive minutes.
How to price a recurring solar panel cleaning plan
Price the repeat visit as its own row with fewer minutes per panel, not as a percentage off. If a maintained array takes an assumed 1.5 minutes a panel in place of 3, the 20-panel visit drops from $138.33 to $105.83.
Worked example: Repeat visit on a maintained 20-panel array: 30 minutes of cleaning + 30 setup + 30 drive = 1.5 hours (assumed inputs)
| Item | Value |
|---|---|
| Workers (input) | 1 |
| Hourly wage paid (input) | $24.00 |
| Labour burden % (input) | 25% |
| Materials (input) | $5.00 |
| Overhead for the year (input) | $15,840.00 |
| People in the field (input) | 1 |
| Billable days a year (input) | 220 |
| Target margin % (input) | 40% |
| Jobs a week (input) | 10 |
| Hours on the job (input) | 1.5 |
| Loaded labour rate (per hour) | $30.00 |
| Crew-hours | 1.5 |
| Labour cost | $45.00 |
| Overhead per sellable hour | $9.00 |
| Overhead share | $13.50 |
| Break-even cost | $63.50 |
| Price to quote | $105.83 |
| Profit on the job | $42.33 |
| Price if you MARK UP instead | $88.90 |
| Margin you actually keep with markup | 28.57% |
| Lost per job by marking up | $16.93 |
| Lost per year by marking up | $8,805.33 |
Computed with the same formulas as the free calculators on this site. Change any input in the calculator above to see your own numbers.
The gap is $32.50, or 23.5% of the first-clean price. That figure is an output of the shorter time, not a discount I picked. Setup and drive stay at 60 minutes.
| Panels | First clean (3 min a panel) | Repeat visit (1.5 min a panel) | Repeat visit per panel |
|---|---|---|---|
| 10 | $101.67 | $85.42 | $8.54 |
| 20 | $138.33 | $105.83 | $5.29 |
| 30 | $175 | $126.25 | $4.21 |
| 40 | $211.67 | $146.67 | $3.67 |
For 20 panels, a twice-a-year plan is $138.33 + $105.83 = $244.16 in the first year and 2 × $105.83 = $211.66 after that. Four visits a year is $455.82 in year one and $423.32 after. State on the plan that a skipped visit returns the next one to the first-clean price.
How often an array needs cleaning is not something I can put a number on. NREL's report says the frequency "may be seasonal, depending on local rainfall and dust characteristics" and calls for a local, site-specific cost-benefit analysis of whether routine cleaning is warranted.
Commercial solar panel cleaning cost: when a 2-person crew row makes sense
A second person halves the cleaning time but doubles the paid setup and drive, so a crew costs more on a job one person can finish in a day and the same on a job that would take two. Assumptions: ground mount, 1.5 minutes a panel, 30 minutes of setup, overhead held at $9 per crew-hour.
| Job | Time on the clock | Crew-hours | Price | Price per panel |
|---|---|---|---|---|
| 200 panels, one person | 6 h | 6 | $473.33 | $2.37 |
| 200 panels, crew of 2 | 3 h 30 min | 7 | $538.33 | $2.69 |
| 500 panels, one person over 2 days | 14 h 30 min | 14.5 | $1,150.83 | $2.30 |
| 500 panels, crew of 2 in 1 day | 7 h 15 min | 14.5 | $1,150.83 | $2.30 |
At 200 panels the crew adds $65: one extra paid hour of setup and drive. At 500 panels one person needs two days, so setup and drive are paid twice either way and both rows reach 14.5 crew-hours and $1,150.83. If a second person works all year, add their costs to overhead and divide by both people's hours before you trust the rate.
Cleaning method, roof access and exclusions: what the price list has to say
Print the method and the exclusions on the list, because both change the time. On method, the NREL report says to follow the module manufacturer's recommendations, and to clean with "plain demineralized water and mild detergent recommended by the manufacturer". It also says: "Do not use high-pressure water, brushes, or any types of solvents, abrasives, or harsh detergents."
Two things follow for pricing. Panels are not a pressure washing job, so do not carry rates across from the pressure washing pricing guide. And NREL's list names brushes, so read the module's installation manual before you fit a brush head to a water-fed pole; the manual and the warranty terms decide what may touch the glass.
Roof access. OSHA's Solar Energy: Falls page says maintenance work on solar panels is generally considered to fall under its general industry standards, and that such workers exposed to fall hazards of 4 feet or more must be protected. The rule itself, 29 CFR 1910.28(b)(1)(i), lists guardrail systems, safety net systems or personal fall protection systems. That is why the two-storey tier carries 45 minutes of setup and the single-storey tier assumes you stay on the ground. I am not a safety professional: confirm what applies to your work with OSHA or your state plan and your insurer.
Exclusions. List these as separate lines, quoted on inspection:
- Repairs to panels, racking or roofing.
- Electrical work of any kind, including wiring and inverters. Refer it to a licensed electrician or the installer.
- Bird-proofing, mesh or nest removal.
- Arrays that cannot be reached safely with the equipment on the truck.
Selling this beside other exterior work? The window cleaning pricing guide prices panes from time the same way, and the gutter cleaning guide works a bundle with one shared setup.
Excel formulas for the price list, and the markup mistake
Layout: B2 = panels, B3 = minutes per panel, B4 = setup minutes, B5 = drive minutes, B6 = workers, B7 = hourly wage, B8 = burden %, B9 = overhead per hour, B10 = consumables per panel, B11 = margin %, B12 = minimum charge.
Hours on the clock
=(B2*B3/B6+B4+B5)/60B2 = panels, B3 = minutes per panel, B6 = workers, B4 = setup minutes, B5 = drive minutes. Put this in B13.
Job price
=ROUND((B13*B6*(B7*(1+B8)+B9)+B2*B10)/(1-B11),2)B7 = wage, B8 = burden %, B9 = overhead per hour, B10 = consumables per panel, B11 = margin %. Put this in B14.
Quote with the minimum charge
=MAX(B14,B12)B12 = minimum charge, the job price of your smallest job. Put this in B15.
Price per panel
=ROUND(B15/B2,2)The per-panel figure for this array size and access tier.
Visit charge and per-panel price
=ROUND((B4+B5)/60*B6*(B7*(1+B8)+B9)/(1-B11),2)Visit charge. The per-panel part is =ROUND((B3/60*(B7*(1+B8)+B9)+B10)/(1-B11),2).
Copy the block across for 10, 20, 30 and 40 panels and down for each access tier to rebuild the list.
The mistake: adding 40% to break-even in place of dividing. On the 20-panel job that bills $116.20 and keeps 28.57% of the price, not 40%. It is $22.13 short per job and $11,509.33 a year at an assumed 10 jobs a week. The markup vs margin calculator guide has the conversion chart.
Calculator, spreadsheet or app: what to put on your solar panel cleaning price list
One quote needs only the calculator; a printed list needs a spreadsheet.
| Option | Cost | Suits |
|---|---|---|
| Free job pricing calculator (window-cleaning defaults) | Free, no signup | One job at a time; type in your own hours and consumables |
| Free Job Pricing Starter spreadsheet | Free | Loaded labour, overhead, break-even and margin on one sheet in Excel or Google Sheets |
| Field-service or quoting app | Subscription | Scheduling, invoicing and payments; you still supply the rates |
| Done-for-you custom job-pricing calculator | $497 one-time | Your rates set once, a branded client quote page and a job log, in Excel and Google Sheets |
What the price list needs
- Access tiers and the minutes per panel behind each.
- Visit charge and per-panel price, or the 10 to 40 panel grid.
- Minimum charge per tier.
- First-clean and repeat-visit prices.
- Cleaning method, and exclusions as separate lines.
Reprice when wages, insurance or fuel change.
Step-by-step: Solar Panel Cleaning Price List: Per-Panel Prices Built From Your Own Time and Costs
- Time the work by access tier. Record minutes per panel, setup minutes and drive minutes for each access tier.
- Turn panels into hours. Hours = (panels × minutes per panel + setup + drive) ÷ 60.
- Find break-even per hour. Wage × (1 + burden %), plus yearly overhead ÷ sellable hours.
- Cost the job. Hours × workers × break-even per hour, plus consumables per panel.
- Apply margin by dividing. Divide break-even by (1 − margin); for 40%, divide by 0.60.
- Divide by panels and set the minimum. Price ÷ panels is the per-panel figure. The price of your smallest job is the minimum charge.
Run your own numbers — free
The free calculator does this whole method in about a minute: loaded labour, overhead share, break-even and the price to quote at your margin. No signup, nothing to download, and your numbers stay in your browser.
Open the free calculator →Get the free spreadsheetWant it built around your own rates, services and branding? Done-for-you custom calculator ($497).
Frequently asked questions
How much should I charge for solar panel cleaning?
Charge the job's break-even divided by one minus your margin. With an assumed $24 wage, 25% burden, $9 of overhead an hour and a 40% margin, each door-to-door hour sells at $65, and 20 panels on a single-storey roof (2 hours, $5 of consumables) price at $138.33. Replace every input with your own.
What is a fair solar panel cleaning cost per panel?
It depends on array size and access, so one per-panel figure misleads. On this page's assumptions a single-storey roof works out at $10.17 a panel for 10 panels and $5.29 for 40. A visit charge of $65 plus $3.67 a panel gives the same totals.
What should my minimum charge be for solar panel cleaning?
Use the computed price of the smallest job you will drive to. For an assumed 10 panels on a single-storey roof, 1.5 hours door to door, that is $101.67 against a break-even of $61. Smaller arrays pay the minimum.
How do I price a twice-a-year solar panel cleaning plan?
Price the repeat visit with the shorter time a maintained array takes. At an assumed 1.5 minutes a panel in place of 3, a 20-panel repeat visit is $105.83. Year one is $138.33 + $105.83 = $244.16; later years are $211.66.
How much does commercial solar panel cleaning cost per panel?
Run the same formula with a crew. On this page's assumptions, 200 ground-mount panels price at $473.33 with one person ($2.37 a panel) or $538.33 with a crew of 2. At 500 panels both come to $1,150.83, or $2.30 a panel.
Can you pressure wash solar panels?
NREL's operation and maintenance best-practices report says not to use high-pressure water, brushes, solvents, abrasives or harsh detergents, and to follow the module manufacturer's cleaning recommendations. Check the installation manual and warranty terms for the specific module before choosing a method.
Is there a free solar panel cleaning price calculator?
Yes. The calculator on this page takes hours, wage, burden, consumables, overhead and margin and shows break-even and the price to quote, with no signup. The free window cleaning calculator runs the same engine with window-cleaning defaults.
Sources
- NREL: Best Practices for Operation and Maintenance of Photovoltaic and Energy Storage Systems, 3rd Edition (NREL/TP-7A40-73822, 2018), section 5.7.1 Cleaning — Follow the module manufacturer's cleaning recommendations; demineralized water and mild detergent; no high-pressure water, brushes, solvents, abrasives or harsh detergents; cleaning cost as a fixed mobilization fee plus a per-unit-area cost; cleaning frequency is site-specific
- OSHA: Green Job Hazards, Solar Energy: Falls — Maintenance work on solar panels generally falls under general industry standards; protection required at fall hazards of 4 feet or more
- OSHA: 29 CFR 1910.28, Duty to have fall protection and falling object protection — 1910.28(b)(1)(i): guardrail, safety net or personal fall protection systems at unprotected sides and edges 4 feet or more above a lower level
- IRS Topic no. 751: Social Security and Medicare withholding rates — Employer share 6.2% Social Security and 1.45% Medicare
