Short answer
A commercial cleaning bid template has two parts: a costing sheet (sq ft, production rate, hours per visit, loaded labour, supplies, overhead, margin, price per visit × visits per month) and a proposal (scope by frequency, monthly price, term, exclusions). Example: a 6,000 sq ft office cleaned 3 times a week bids at $1,571.20 a month.
- Keep two documents: an internal costing sheet and a client-facing proposal. Never send the costing sheet.
- The costing sheet needs 15 lines, from cleanable area to annual contract value.
- Worked 6,000 sq ft office, 3 visits a week, plus quarterly carpets: $1,571.20 a month.
- Periodic work (carpet extraction, floor care) gets its own line, spread across months.
- Visits per month = visits per week × 52 ÷ 12. A template that uses × 4 underbills.
On this page
- What goes in a commercial cleaning bid template?
- Try the pricing half: per-visit bid calculator
- How much to charge to clean a 6,000 sq ft office (a filled-in bid sheet)
- Scope of work: the section clients actually read
- The pricing block: janitorial bid sheet formulas
- Pricing periodic services on the bid
- Common mistakes in cleaning bid templates
- Word, PDF or spreadsheet: which bid template should you use?
- How to write up a cleaning bid proposal that wins
- Step-by-step
- FAQ
What goes in a commercial cleaning bid template?
A usable template is two documents that share one set of numbers: an internal bid sheet that prices the work, and a client-facing proposal that describes it. Most free downloads are only the second half, a nicely formatted page with a blank where the price goes.
The ranking results for this search are mostly proposal layouts from document-software companies and marketplace listings. They help with presentation. None of them tells you what number to write in the price box. This page covers both halves, with the arithmetic shown so you can check it. For the bidding method itself (walk-throughs, production rates, where to find bids), read the companion guide on how to bid commercial cleaning jobs.
| Bid sheet (internal) | Proposal (sent to client) |
|---|---|
| Cleanable sq ft by area type | Your business details and the client's |
| Production rate per area type | Scope of work by frequency |
| Hours per visit, loaded labour rate | Service days and times |
| Supplies, overhead per sellable hour | Monthly price and what it includes |
| Target margin, price per visit, visits per month | Periodic services, priced separately |
| Periodic work costing | Term, notice period, exclusions |
| Monthly price, per sq ft, annual value | Acceptance and signature |
Try the pricing half: per-visit bid calculator
The calculator prices one routine visit from the same lines as the bid sheet. It starts with the 6,000 sq ft example below; type over it.
Multiply the price by visits per week × 52 ÷ 12 for the monthly line. The janitorial bid sheet template does that conversion and shows break-even per visit and per month side by side.
How much to charge to clean a 6,000 sq ft office (a filled-in bid sheet)
On the assumptions below, a 6,000 sq ft office cleaned three times a week, plus carpet extraction every quarter, bids at $1,571.20 a month, or $0.262 per sq ft per month. Every input is a placeholder for your own number.
Assumptions: one cleaner at $18 an hour with 30% burden; 3,000 sq ft per cleaner-hour blended across the building; $8 of supplies a visit; $29,040 of yearly overhead over 2 people × 220 days × 8 hours ($8.25 per sellable hour); 35% margin; drive time left out.
| Line | Entry | How it is calculated |
|---|---|---|
| Cleanable area | 6,000 sq ft | Measured on the walk-through |
| Production rate | 3,000 sq ft per cleaner-hour | Your timed rate (assumption) |
| Hours per visit | 2 | 6,000 ÷ 3,000 |
| Loaded labour rate | $23.40 | $18 × 1.30 |
| Labour per visit | $46.80 | hours × loaded rate |
| Supplies per visit | $8.00 | Your cost (assumption) |
| Overhead per visit | $16.50 | hours × $8.25 per sellable hour |
| Break-even per visit | $71.30 | labour + supplies + overhead |
| Price per visit | $109.69 | break-even ÷ 0.65 |
| Visits per month | 13.00 | 3 × 52 ÷ 12 |
| Routine monthly price | $1,425.97 | price per visit × visits per month |
| Carpet extraction, quarterly | $145.23 a month | $435.69 ÷ 3 |
| Total monthly bid | $1,571.20 | routine + periodic |
| Per sq ft per month | $0.262 | total ÷ 6,000 |
| Annual contract value | $18,854.40 | total × 12 |
Worked example: Routine visit: 6,000 sq ft office at 3,000 sq ft per cleaner-hour (assumed inputs)
| Item | Value |
|---|---|
| Workers (input) | 1 |
| Hourly wage paid (input) | $18.00 |
| Labour burden % (input) | 30% |
| Materials (input) | $8.00 |
| Overhead for the year (input) | $29,040.00 |
| People in the field (input) | 2 |
| Billable days a year (input) | 220 |
| Target margin % (input) | 35% |
| Jobs a week (input) | 3 |
| Area (sq ft) (input) | 6,000 |
| Production rate (sq ft per hour) (input) | 3,000 |
| Loaded labour rate (per hour) | $23.40 |
| Crew-hours | 2 |
| Labour cost | $46.80 |
| Overhead per sellable hour | $8.25 |
| Overhead share | $16.50 |
| Break-even cost | $71.30 |
| Price to quote | $109.69 |
| Profit on the job | $38.39 |
| Price if you MARK UP instead | $96.26 |
| Margin you actually keep with markup | 25.93% |
| Lost per job by marking up | $13.44 |
| Lost per year by marking up | $2,096.22 |
| Hours on the job | 2 |
| Price per sq ft | $0.018 |
| Break-even per sq ft | $0.012 |
Computed with the same formulas as the free calculators on this site. Change any input in the calculator above to see your own numbers.
Break-even for the routine cleaning is $926.90 a month. Below that, the contract costs you money every month it runs.
Scope of work: the section clients actually read
The scope lists every task with its frequency. It is what the client compares between bids, and it is what you will be held to, so write only what your hours cover.
| Frequency | Typical task lines |
|---|---|
| Each visit | Empty trash and recycling, restrooms cleaned and restocked, vacuum traffic areas, break room counters and sinks, entrance glass |
| Weekly | Full vacuum, dust horizontal surfaces, mop hard floors, wipe door handles and switches |
| Monthly | High dusting, vents, baseboards, interior glass partitions |
| Quarterly or on request | Carpet extraction, floor scrub and recoat, exterior windows |
Each frequency tier costs different hours. If the weekly tasks add half an hour to one visit a week, price that half hour into that visit instead of stretching the nightly production rate to cover it.
Add an exclusions list too: what you do not do (for example, exterior windows above ground floor, biohazard cleanup, moving furniture). It prevents scope creep more than any clause.
The pricing block: janitorial bid sheet formulas
These formulas make the bid sheet calculate itself. Layout: B2 = cleanable sq ft, B3 = production rate, B4 = wage, B5 = burden %, B6 = supplies per visit, B7 = yearly overhead, B8 = people in the field, B9 = billable days, B10 = margin %, B11 = visits per week, B12 = periodic job price, B13 = times per year.
Price per visit
=(B2/B3*B4*(1+B5)+B6+B2/B3*B7/(B8*B9*8))/(1-B10)Loaded labour + supplies + overhead share, divided by (1 − margin).
Routine monthly price
=B14*B11*52/12B14 = price per visit from the line above; B11 = visits per week.
Periodic services per month
=B12*B13/12B12 = price of one periodic job, B13 = times per year (4 for quarterly).
Total monthly bid and per sq ft
=B15+B16B15 = routine monthly, B16 = periodic monthly. Per sq ft: =ROUND((B15+B16)/B2,4).
Annual contract value
=(B15+B16)*12The figure most approvers look at first.
Keep inputs in one colour and formulas locked, so no one overtypes a formula when they update the square footage.
Cleaning Contract Pricing Calculator
The spreadsheet version of this guide for Excel & Google Sheets: type your numbers into the highlighted cells and the formulas do the rest. One-time $39, no subscription, instant download.
See the Cleaning Contract Pricing Calculator →Buy now — $39Instant access by email after checkout via Payhip. Want to try the maths first? Use the free calculator — no signup.
Pricing periodic services on the bid
Price periodic jobs as separate jobs, then spread them: job price × times a year ÷ 12. Quarterly carpet extraction at $435.69 a time adds $145.23 to each month.
Worked example: Periodic line: quarterly carpet extraction, 2 people × 4 hours (assumed inputs)
| Item | Value |
|---|---|
| Workers (input) | 2 |
| Hourly wage paid (input) | $18.00 |
| Labour burden % (input) | 30% |
| Materials (input) | $30.00 |
| Overhead for the year (input) | $29,040.00 |
| People in the field (input) | 2 |
| Billable days a year (input) | 220 |
| Target margin % (input) | 35% |
| Jobs a week (input) | 3 |
| Hours on the job (input) | 4 |
| Loaded labour rate (per hour) | $23.40 |
| Crew-hours | 8 |
| Labour cost | $187.20 |
| Overhead per sellable hour | $8.25 |
| Overhead share | $66.00 |
| Break-even cost | $283.20 |
| Price to quote | $435.69 |
| Profit on the job | $152.49 |
| Price if you MARK UP instead | $382.32 |
| Margin you actually keep with markup | 25.93% |
| Lost per job by marking up | $53.37 |
| Lost per year by marking up | $8,326.08 |
Computed with the same formulas as the free calculators on this site. Change any input in the calculator above to see your own numbers.
Assumptions: two people for 4 hours, $30 of solution and supplies, same wage, overhead and margin as the routine cleaning. Spreading it into the monthly price keeps invoices even; billing it when done is also fine. Either way, it belongs on its own line so the client can see what they are paying for and drop it without renegotiating the whole bid.
Common mistakes in cleaning bid templates
Most template errors are in the pricing half: weeks per month, markup instead of margin, and labour at the wage.
| Error in the template | Monthly routine price it produces | Correct |
|---|---|---|
| 35% added as markup | $1,251.38 | $1,425.97 |
| Visits × 4 weeks | $1,316.28 | $1,425.97 |
| Labour at the $18 wage | Short $5.40 every cleaner-hour | Price at $23.40 |
Other gaps worth checking in any template you download: no line for drive time, no separate periodic services, a price-per-sq-ft figure typed in rather than calculated, and no annual contract value (which is what the client's approver usually looks at). The markup vs margin guide covers the margin error in detail.
Word, PDF or spreadsheet: which bid template should you use?
Write the proposal in whatever looks clean, a Word document or PDF is fine. Price it in a spreadsheet, because a spreadsheet recalculates when the square footage or frequency changes and a Word table does not.
| Format | Cost | Good for | Weak at |
|---|---|---|---|
| Word or PDF proposal template | Often free | Presentation, scope, signature | Working out the price |
| Free cleaning price calculator | Free, no signup | Pricing one visit | Keeping bids, monthly conversion |
| Janitorial bidding software | Varies by vendor | Teams bidding many sites | Cost for a small operator |
| Cleaning contract pricing spreadsheet | $39 one-time | Per-visit and monthly break-even, contract log | You still write the proposal wording |
The cleaning bid template spreadsheet covers the pricing half: break-even per visit and per month, the monthly price, annual contract value, an "am I underpricing?" check, a production-rate check against the ISSA 612 band, and a contract log with win rate. Free start: the Job Pricing Starter. Need it built around your own line items and branded quote page? That is the $497 custom build.
How to write up a cleaning bid proposal that wins
Lead with the scope and the monthly price, make it easy to check, and end with a clear way to accept. Buyers compare bids line by line, so the clearest one has an advantage.
- One page summary first: building, frequency, monthly price, start date.
- Scope table by frequency, as above.
- Periodic services as optional priced lines.
- Term and notice period, and when the price is reviewed.
- Exclusions.
- Insurance and contact details, and an acceptance signature block.
Leave off your wage, burden, overhead and margin. Those belong on the internal sheet. Other trade pricing guides using the same method: window cleaning and pressure washing.
Step-by-step: Commercial Cleaning Bid Template: What Goes on the Sheet, Line by Line
- Record the building. Enter cleanable square footage by area type, restroom fixtures, floor types and access hours from the walk-through.
- Set production rates. Enter sq ft per cleaner-hour for each area type and let the sheet calculate hours per visit.
- Enter your costs. Wage, burden %, supplies per visit, yearly overhead, people in the field, billable days and target margin.
- Read the monthly price. The sheet prices one visit, divides by (1 − margin), and multiplies by visits per week × 52 ÷ 12.
- Add periodic lines. Price each periodic job separately and spread it: job price × times a year ÷ 12.
- Copy the totals into the proposal. Move scope, monthly price, periodic options, term and exclusions into the client document. Keep costs internal.
Skip the setup: Cleaning Contract Pricing Calculator
The spreadsheet version of this guide for Excel & Google Sheets: type your numbers into the highlighted cells and the formulas do the rest. One-time $39, no subscription, instant download.
See the Cleaning Contract Pricing Calculator →Buy now — $39Instant access by email after checkout via Payhip. Want to try the maths first? Use the free calculator — no signup.
Frequently asked questions
How do you write up a cleaning bid?
Price it first on an internal bid sheet: square feet, production rate, hours, loaded labour, supplies, overhead and margin, converted to a monthly price. Then write the proposal: scope by frequency, monthly price, periodic options, term, exclusions and a signature block. Keep your costs off the proposal.
Can I get a free template for a commercial cleaning proposal?
Free proposal layouts are easy to find, but most leave the price blank. For the price, the free cleaning calculator on this site prices one visit, and the free Job Pricing Starter covers break-even and margin. The paid template adds monthly conversion and a contract log.
How much to charge to clean a 6,000 sq ft office?
Calculate it from your costs. With this page's assumptions (3,000 sq ft per cleaner-hour, $18 wage, 30% burden, three visits a week, quarterly carpet extraction, 35% margin) it comes to $1,571.20 a month. Change any input and the price changes.
How do you do a bid sheet?
List the inputs in one column: area, production rate, wage, burden, supplies, overhead, margin and visits per week. Add formula lines for hours, labour, overhead, break-even, price per visit, monthly price and annual value. Lock the formulas so only the inputs change.
What is the best bidding software for cleaning services?
It depends on volume. Teams bidding many buildings may justify dedicated janitorial software. A small operator bidding a few contracts a month can do the same pricing in a spreadsheet, as long as it uses production rates, loaded labour and weeks per month correctly.
How do you win a cleaning bid?
Walk the building, bid a scope you can deliver at your measured production rate, and submit a proposal that is easy to compare: scope by frequency, a clear monthly price, optional periodic lines and exclusions. Follow up before the client's current contract renews.
What is the difference between a bid and a proposal?
The bid is the price and the costing behind it. The proposal is the document the client reads: scope, schedule, price, term and signature. A good template links them so the proposal's price comes straight from the bid sheet.
