How to bid an office-cleaning contract from measured labor hours
Operational worked example · Owner-led small team cleaning ordinary commercial offices under recurring contracts
Bid the defined tasks and paid delivery time first, then convert the result into the monthly contract price. In this example, two cleaner-hours × 13 monthly-average visits produces 26 billed hours, but travel, setup and rework make 31.33 paid hours. A $1,248 monthly quote supports only $125.29 of allocated EBITDA per account at a 12-account route before debt. It is not a measured market price.
Read the complete operating guide set · Browse operating articles
Turn the walkthrough into a service schedule
Walk the premises with the person who will approve the work and the person who can approve the invoice. A floor plan is useful, but a square-foot total is not enough. Mark floor types, bins, restrooms, kitchenette, restricted desks, storage, waste route, parking and alarms. Count items and identify who moves clutter. Record the result the client expects and the frequency at which it is required.
Separate regular visits from periodic work. A quarterly carpet extraction, annual strip/recoat, emergency spill or additional event visit should not hide inside a two-hour routine. List customer supplies separately, including paper products and any restricted cleaning products. On a trial visit, record actual cleaner-minutes by task and interruptions rather than turning the total area into an unsupported productivity rate.
| Measured task group | Assumed minutes per visit | What to record |
|---|---|---|
| Carpet vacuuming | 30 | Clearable area, cords, furniture, access |
| Hard-floor cleaning | 20 | Floor condition, method, drying and warning signs |
| Bins and waste movement | 15 | Bin count, liner policy and collection point |
| Restrooms | 25 | Fixtures, soil level and replenishment exclusions |
| Kitchenette surfaces | 15 | Surfaces included; appliances/interiors excluded unless added |
| Agreed touchpoints | 10 | Client-approved surfaces; product label and method |
| Final service inspection | 5 | Accepted-result checks and service log |
| Total billed cleaner work | 120 | One cleaner for two hours; illustration requires a trial visit |
The contact-point task is an ordinary agreed cleaning scope. If the customer asks for disinfection, identify the product, approved use and label wet-contact time, then measure the extra work. A general cleaner is not automatically a disinfectant. EPA explains the distinction.
Convert productive hours into a paid roster
For this illustrative scope, monthly paid delivery is 26 cleaning hours + 0.78 rework hours + 1.30 setup hours + 3.25 inter-account travel hours = 31.33. Multiplying by the $23.60 modeled loaded hourly wage gives $739.39. The employee's base rate is $20.00; the 18.0% burden is a planning allowance for employer payroll taxes, compensation cover and paid-time costs, not a verified local assessment.
DOL guidance treats workday travel differently from ordinary home-to-work travel. Directed supply stops, carrying out duties and movement within a shift need a paid-time record. Quoting only the two hours inside the customer's door would leave this example's travel/setup/rework unpaid in the price calculation even though the business pays for them. Travel-time source and FLSA advisor.
The national May 2025 median of $17.71 provides a wage comparison; it does not prove you can recruit evening staff at that amount or tell you what customers will pay. Use written offers and actual availability for a real proposal. BLS occupation source.
Allocate owner work and overhead once
Economic backfill labor protects the bid if someone must replace owner field work. Whole-company profit then needs an allocation bridge: the owner is already paid a salary and provides 96 field hours, so credit $2,265.60 of backfill hours before allocating the remaining commitments. Otherwise a bid would charge both full employee replacement labor and the same owner's field labor twice.
| Account cost at 12 accounts | Monthly amount | Basis |
|---|---|---|
| Economic backfill labor | $739.39 | 31.33 paid hours × loaded wage |
| Route nonlabor | $98.02 | Supplies, per-visit mileage and parking |
| Owner/overhead allocation | $285.30 | Monthly pool after owner-field credit / 12 |
| Full allocated cost | $1,122.71 | Labor + route nonlabor + allocation |
| Fee for target EBITDA margin | $1,247.45 | Full allocated cost / (1 − target margin) |
| Required hourly equivalent | $47.98 | Fee / 26 billed hours |
| Selected model fee | $1,248 | 26 × selected hourly equivalent |
The selected $48 hourly equivalent nearly matches this allocation target. At four opening accounts, however, fixed owner work and minimum staff shifts are spread over far less revenue. The opening company still loses money. A price that works on the 12-account route must be checked against the ramp, which the profitability guide shows.
Write the bid so scope changes can be priced
Attach the task/frequency matrix, service days, allowed access window, expected result, excluded work and named responsibility for supplies. Set an approval path for extra visits or a higher soil load. Define holiday treatment and what happens if a client cannot provide access. Any proposed price review should identify its date, trigger and agreement mechanism rather than assuming a forecast increase becomes contractual income.
For this Ohio case, the fee excludes sales tax; actual destination rate and exemption handling must be confirmed. The model's 7.5% is an assumption. Ohio's statutory janitorial scope and vendor requirements are relevant to registration, not a universal nationwide tax rule. Ohio tax definition and vendor statute.
Obtain appropriate insurance/bond limits and a hazardous-product safety process. OSHA requirements cover labels, accessible SDS and worker information/training where applicable. A scope sheet should never promise a chemical treatment or surface result that the method does not support. Hazard communication.
A profitable bid must also survive the payment dates
Record who approves the invoice, the submission cutoff, disputed-charge procedure and actual payment terms. The base case collects each invoice one model month after billing; extending that to two months creates a $14,213 funding gap even though EBITDA is unchanged. The funding guide reconciles that timing rather than treating net terms as free financing.
Before issuing a real bid, compare the measured paid hours with the scheduled team, an account-level cost sheet and the route calendar. After the first accepted visits, update actual time and consumption. If actual hours exceed the sold scope, resolve the reason and agree a change before accumulating repeated losses. The unit-economics guide supplies the common account definition; the projections guide explains statement links.
Sources and scope
- BLS: Janitors and Building Cleaners · Checked 2026-10-04 · National occupation median May 2025; page modified August 27, 2026. Not an Ohio recruiting offer or customer billing rate.
- SBA Loan case methodology (provided local source) · Checked 2026-10-04 · Author-selected case inputs; not observed price, demand or underwriting. Inspected provided content/methodology.html; remote fetch unavailable.
- DOL FLSA Advisor: directed duties and travel · Checked 2026-10-04 · Work duties and directed stops can extend compensable time; ordinary commute differs.
- DOL: Travel Time · Checked 2026-10-04 · Federal work-time guidance: workday travel versus ordinary commute; actual coverage/arrangement matters.
- EPA: cleaning, sanitizing and disinfecting · Checked 2026-10-04 · Page updated October 8, 2025. Any disinfectant task requires intended-site/label and wet contact-time review.
- IRS standard mileage rates · Checked 2026-10-04 · 76 cents/business mile July–December 2026; first-half 72.5 differs. Optional tax benchmark, not mandatory reimbursement or actual vehicle cost.
- Ohio Revised Code 5739.01: Sales tax definitions · Checked 2026-10-04 · Effective September 30, 2025; B(3)(j) and II cover janitorial service with under-5000 annual service-sales exclusion.
- Ohio Revised Code 5739.17: Vendor license · Checked 2026-10-04 · Statutory licensing and 50 fee per applicable fixed place; actual license class/situs must be confirmed.
- Ohio Revised Code 4123.01: Workers compensation definitions · Checked 2026-10-04 · Effective September 23, 2022; relevant businesses with one or more employees are in scope, with entity/owner exceptions.
- OSHA 29 CFR 1910.1200: Hazard Communication · Checked 2026-10-04 · Current text accessed; written program, labels, SDS and training for covered hazardous chemicals; exceptions and transitions matter.