Free tool

Janitorial bid calculator

Square footage in, a defensible monthly price out. Production rate turns building size into labor hours, supplies ride on labor, and margin comes off the price the way the trade actually quotes it. No signup, and nothing you type ever leaves your browser.

$0 / month
—
Hours per visit—
Visits per month—
Labor hours / month—
Labor cost—
Supplies—
Monthly cost—
Monthly price—

Visits per month uses 52 weeks ÷ 12, so a 5×/week account bills 21.7 visits a month — not 20.

How the math works

Every janitorial bid is the same five steps, and the whole game is being honest at each one.

Hours. Cleanable square footage divided by your production rate gives labor hours per visit. Production rate is the number that decides whether you make money, and it is the number contractors guess at most often.

Frequency. Visits per week times 52 divided by 12 gives visits per month. Using a flat "4 weeks" instead quietly loses you about 8% of your revenue on every recurring contract.

Labor. Monthly hours times your loaded rate — wage plus payroll tax, workers' comp and insurance. Bidding off the raw wage is the fastest way to win an account that loses money every month.

Supplies. Chemicals, liners, paper and equipment wear, carried as a percentage of labor. 5–8% covers most office work; restrooms-heavy and restaurant accounts run higher.

Margin. Price = cost ÷ (1 − margin). This is the step that catches people out, so it gets its own section.

Margin is not markup

In this trade margin is a share of price, not a markup on cost. On $1,837 of monthly cost:

A 30% margin prices the job at $1,837 ÷ 0.70 = $2,624, and you keep $787 — 30% of what you invoice.
A 30% markup prices it at $1,837 × 1.30 = $2,388, and you keep $551 — only 23% of what you invoice.

That is $236 a month, or $2,832 a year, on one mid-size account — gone, on a single misunderstood word. Confusing the two is the most common way small cleaning contractors underprice a contract and then cannot work out why a full book of business is not paying them.

Before you send the number

A calculator gives you a starting point. These are what move it.

Walk it

Restrooms change everything

Restroom fixture count is the single biggest drag on a production rate. An office that pencils at 3,000 sq ft/hr can fall to half that if it is fixture-heavy — never quote a building you have not walked.

Floor type

Hard floors cost hours

Carpet is fast. Tile, VCT and polished concrete need detail work, and periodic strip-and-wax or burnishing should be priced separately from the nightly scope, not absorbed into it.

Scope

Write down what is not included

Windows, carpet extraction, floor refinishing, day porter coverage, consumables supply. If it is not in the scope letter, the customer will assume it is included and you will do it for free.

Reality check

Track what crews actually hit

Log real hours against every account for a month. Your true production rate is almost never the industry starting point, and once you know it your bids stop being guesses.

Common questions

What production rate should I use?

General office commonly starts around 3,000 sq ft per labor hour, warehouse can exceed 8,000, and medical or restaurant work often falls to 2,000 or below. Treat all of these as starting points — building condition, restroom count, floor type and how detailed the customer expects you to be all move the number, sometimes by half.

What counts as a loaded labor rate?

The full hourly cost of putting a cleaner in the building: wage, employer payroll taxes, workers' compensation, general liability, and any benefits. It is commonly 25–40% above the raw wage. Bidding off the wage alone is the classic way to win an unprofitable account.

Why 21.7 visits a month instead of 20?

Because a month is not four weeks. Five visits a week is 260 visits a year, which is 21.7 a month. Billing as though it were 20 gives away roughly 8% of the contract's revenue every single month.

Does this handle periodic work like strip and wax?

Not directly, and it should not — periodic work is priced as its own line item, not folded into the recurring rate. Use the calculator for the nightly or scheduled scope, then quote floor care, extraction and window work separately.

Is anything I type here stored or sent anywhere?

No. The whole calculator runs in your browser. There is no account, no analytics on your inputs, and nothing is transmitted — you can load the page, disconnect from the internet, and it still works.

More free tools

All free, all in your browser, none of them ask for an email.

The app

Keep the bid. Win the contract.

This calculator is one screen of DayPorter, a CRM built for one trade: commercial cleaning. Every bid saves against the client and the building it belongs to, moves through the pipeline the industry actually sells on — lead, walkthrough, bid sent, active, lost — and the contracts you win roll up into your monthly recurring revenue. It all stays on your phone.

See what DayPorter does →