How to write a janitorial services RFP that gets comparable bids
You sent the same RFP to five cleaning companies and got back five prices that cannot be lined up, because each bidder filled the gaps in your scope with its own guesses.
National Cleaning Group ·
A janitorial RFP produces comparable bids when it removes guesswork. Every bidder should price the same buildings, the same areas, the same frequencies and the same extras, on the same form. When any of that is left open, each company fills the gap differently, and you end up comparing assumptions instead of prices.
The fields come first, then the bid sheet, including the labor-hour line that exposes a bid built on fewer people.
What a janitorial RFP needs before it goes out
Start with the facts about your buildings, because every price is built from them. A bidder working from "45,000 square foot office" will be off by hours a night compared with one who knows the restroom count and floor types.
Collect this for each site before you release anything:
| Field | Why it changes the price |
|---|---|
| Address and building type | Travel, access and the kind of work |
| Cleanable square feet | Gross square feet includes shafts, mechanical rooms and vacant suites nobody cleans |
| Floor mix (carpet, VCT, tile, sealed concrete) | Vacuuming and mopping take different time per square foot |
| Restroom count and fixture count | Restrooms take more labor per square foot than any other space |
| Occupancy and daily headcount | Trash volume, paper use and restroom traffic |
| Service days and the cleaning window | Five nights versus seven, and whether the crew starts at 6 p.m. or 10 p.m. |
| Break rooms, kitchens, fitness rooms | Each adds tasks that open office space does not have |
| Areas excluded or restricted | Secure rooms, labs, IT closets, tenant suites under separate contracts |
| Access and security rules | Badges, alarm codes, escorts, key control |
Attach floor plans. A stacking plan with suite numbers is better still.
Write the scope by area and frequency, not as a task list
A scope of work that lists "empty trash, dust surfaces, clean restrooms" without saying where and how often gets you a price for whatever the bidder imagined. Write it as a matrix: each area type down the side, each task across, a frequency in every cell.
Use frequencies that cannot be read two ways:
- Nightly (5x) or nightly (7x), never just "daily"
- Weekly, with the night if it matters (high dusting on Fridays, say)
- Monthly and quarterly for detail work such as vents, baseboards and partition tops
- As scheduled only for periodic work you price separately
A typical office scope separates restrooms, lobby and entries, open offices, private offices, conference rooms, break rooms, corridors and stairwells. For what belongs under each, see what janitorial services include. A clinic suite or a warehouse floor gets its own block of rows, never a spot under general areas.
Price day porters and periodic work as separate lines
Daytime coverage and periodic floor work are where bids drift apart the most, so pull them out of the nightly price.
Day porter hours. State the hours as clock times and days: "Monday to Friday, 7 a.m. to 3:30 p.m., one porter." Then list the areas the porter covers. A line that says "day porter as needed" invites one bidder to price a full shift and another to price two hours. Our day porter services page shows what a porter route usually covers.
Periodic work. Ask for a unit price and a frequency for each item:
- Strip and refinish VCT, per square foot, per occurrence
- Scrub and recoat, per square foot, per occurrence
- Carpet extraction, per square foot, with the frequency by traffic area
- Interior window and partition glass, per occurrence
- High dusting above reach, per occurrence
Unit prices let you add or drop an occurrence without renegotiating. They also stop a bidder from hiding a cheap nightly rate behind expensive extras. See floor care for how these cycles usually run.
The bid sheet: make every bidder show their labor hours
The labor-hour line tells you more than any other field on the sheet. Ask every bidder to state, for each site, the number of cleaner hours per night, the number of supervisor hours per week, and the porter hours per day.
Labor is most of what you buy in a janitorial contract. Two bidders quoting the same scope can only differ so much on hours before one of them is planning to do less. With hours next to the price, the gap shows on day one instead of in month three, when the restrooms start falling behind.
A bid sheet that works has these columns per site:
| Line | Unit | Bidder fills in |
|---|---|---|
| Nightly janitorial | Monthly price | Cleaner hours per night, nights per week |
| Supervision | Included or priced | Supervisor hours per week, inspection frequency |
| Day porter | Monthly price | Porter hours per day, days per week |
| Consumables (paper, soap, liners) | Included, cost-plus, or excluded | Which items |
| Periodic floor and carpet work | Price per square foot per occurrence | Frequency proposed |
| Added services | Hourly rate | Rate for approved extra work |
Then read across the rows. If four bidders propose 14 to 18 cleaner hours a night for a site and the fifth proposes 8, you have found the reason that fifth bid is cheapest. Ask how it plans to cover the scope in that time before you score it.
Supplies work the same way. A price that includes paper and liners looks higher than one that leaves them out, so force the answer on the sheet. Our guide to commercial cleaning cost covers the other drivers behind a monthly price.
Insurance, terms and the transition
Put your contract requirements in the RFP so nobody prices around them:
- Insurance types and limits, and whether you require additional insured status
- Bonding, if your organization requires it
- Background checks for staff with keys or after-hours access
- Contract term, renewal options, termination for convenience and for cause
- Payment terms and invoicing format, especially for multiple sites
- The start date and the transition window
Ask bidders to describe their first 30 days. A transition plan should cover the key and alarm code handover, a joint walkthrough with your team, a supply inventory, and the date of the first supervisor inspection. Handover is where service most often breaks: the outgoing crew stops caring two weeks before the end, and the incoming crew learns the building on your time. Put a date next to each of those four items, and make the first inspection a joint one.
Run the process so bids stay comparable
The schedule matters as much as the document. A workable sequence:
- Release the RFP with all attachments and the bid sheet.
- Hold a mandatory or strongly recommended walkthrough within the first week.
- Accept written questions until a set date, then publish every answer to every bidder.
- Take proposals on one deadline, in one format.
- Score against criteria you published in the RFP, with price as one weighted factor.
- Interview the top two or three and check references from buildings like yours.
Step 3 is the one people skip under deadline. If one bidder learns the fitness room is out of scope and the others do not, your bids stop being comparable.
Scoring: price is one column
Set the weight of price before you open a single bid, and spread the rest across the staffing plan, supervision and inspection method, transition plan and references. Publish the weights in the RFP so bidders write to them.
Ask each finalist one practical question in the interview: "Who do I call at 7 a.m. when a restroom was missed, and what happens next?" The answer tells you more about the contract you will live with than the proposal binder does.
Put us on the bidder list
If the RFP is going out soon, add National Cleaning Group to the bidder list. We walk each building inside your walkthrough window and quote it as a price for the scope, with janitorial services, day porter coverage and periodic floor work on their own lines. If your bid sheet asks for labor hours, we break them out. To book the visit, request a free facility assessment or call (202) 968-1190 and give us the proposal deadline.
Frequently asked questions
What should a janitorial RFP include?
A site list with addresses and cleanable square feet, a scope of work written by area with task frequencies, service days and hours, any day porter hours, periodic floor and carpet work as separate lines, who supplies paper and liners, insurance requirements, the contract term, the start date, and a bid sheet every bidder must fill in the same way.
How long should a janitorial RFP process take?
For a single building, plan on four to eight weeks from release to award: about a week to schedule walkthroughs, one to two weeks for questions and answers, two weeks for proposals, then evaluation. Add time for a portfolio, and leave at least 30 days between award and the start date for the transition.
Should I require a site walkthrough before bids?
Yes. A walkthrough lets bidders see floor types, restroom counts, access rules and traffic, so their numbers are based on your building rather than on square footage alone. Hold one scheduled walkthrough for all bidders, or allow individual visits, and publish every question and answer to the full bidder list.
How do I compare janitorial bids fairly?
Require one bid sheet format. Compare nightly labor hours per site, frequencies by area, periodic work unit prices and supply terms line by line before you look at the total. A bid with far fewer labor hours than the others has usually dropped scope, and that gap tends to surface as complaints in the first months.
Should the lowest janitorial bid win?
Not automatically. Score price alongside the staffing plan, supervision and inspection method, transition plan and references. A bid that is far below the others on the same scope often means fewer hours on site, and the missing hours show up in your restrooms first.
