BidBrief Get briefs
Home / Contracts / Guides

How federal janitorial bidding actually works

You can clean a building. The reason you've never won a federal contract isn't skill — it's paperwork and reading time. Here's the whole path, in plain English.

The short version

  • Federal cleaning and facilities work is winnable for small firms — the barrier is paperwork and reading time, not capability.
  • You must be registered in SAM.gov (free) with a UEI before you can be awarded anything.
  • Most of this work is set aside for small businesses, so your competition is other small firms, not national giants.
  • The two things that decide whether a bid is worth your night: the award method (price-only vs best-value) and the SCA wage floor (the legal minimum you can pay).

Why a small cleaning company can actually win federal work

The federal government is the largest buyer of building services in the country. Every military base, VA hospital, courthouse, Forest Service office, and lock-and-dam needs its floors mopped, its lawns cut, and its doors watched. It buys almost all of that from private contractors, and by law a large share is reserved for small businesses.

That last part is the point most owners miss. When a solicitation is a Total Small Business set-aside, the national facilities conglomerates are legally shut out. You are competing against firms your own size. The reason so few small contractors ever win is not that the work is out of reach — it is that qualifying an opportunity means reading an 80-page RFP and three attachments after a full day running crews, so most owners either bid blind or never start. This guide walks the whole path from "never bid before" to "submitted a clean offer."

Step 1 — Get registered in SAM.gov (free, do it first)

You cannot be paid by the government, or even be awarded a contract, until your business is registered in the System for Award Management at SAM.gov. Registration is free — ignore anyone who charges you for it. You will need:

The slow part is entity validation — SAM matches your details to public records and sometimes asks for documents. Start early; it can take from a few days to a few weeks. Registration must be renewed every year, and a lapsed registration makes you ineligible for award overnight, so put the renewal date on your calendar.

Step 2 — Understand set-asides (your real competitive lane)

A "set-aside" restricts who may bid. The common ones for cleaning and facilities work:

Whether you count as "small" depends on the NAICS code's size standard — an average-annual-receipts cap. For janitorial services (NAICS 561720) it is in the low tens of millions of dollars in average receipts; facilities support (561210) is higher. Confirm the current figure in SBA's official size-standards table before you rely on it — the numbers are updated periodically. If you hold a certification (WOSB, HUBZone, SDVOSB, 8(a)), some solicitations are reserved just for you, which dramatically thins the field.

Step 3 — Learn to read the PWS

The heart of a cleaning solicitation is the PWS — Performance Work Statement. A PWS describes the outcome the government wants ("restrooms will be clean and stocked") and the standard it will be measured against, rather than dictating your exact method. Its older cousin, the SOW (Statement of Work), is more prescriptive ("mop with a neutral cleaner twice weekly"). You will also see a QASP — Quality Assurance Surveillance Plan — the checklist the government inspector will grade you on.

Read the PWS to answer four questions before anything else: How big is the site (square footage, number of buildings, occupant count)? How often is each task required (daily, twice weekly, monthly, periodic)? Who supplies consumables and equipment — you or the government? And what are the access constraints (security clearances, escorts, service windows)? Those four drive your entire cost estimate. Our sample brief shows exactly how a PWS turns into a labor-hour estimate.

Step 4 — Respect the wage floor (this is where firms lose money)

Almost all federal cleaning and facilities contracts are covered by the Service Contract Act (SCA). The government attaches a wage determination that sets the legal minimum hourly wage and a health & welfare (fringe) amount for each labor category in that county. You cannot bid a labor cost below that floor — do it and your offer is non-compliant. This is the single most common way new bidders disqualify themselves. It matters enough that we wrote a whole guide on it: Service Contract Act wage floors, explained.

Step 5 — Know how the award will be decided

Two families of award method cover almost everything you will see:

MethodHow you winWhat it means for you
Price-only / LPTALowest priced offer that meets the minimum requirements wins.Your proposal is mostly a price. Get the scope and wage math right and submit a clean, complete offer — no essay.
Best-value tradeoffThe government weighs price against past performance, technical approach, and other factors.Price still matters, but a strong track record and a clear technical write-up can beat a lower bidder.

For a small firm just starting, price-only (often called LPTA — Lowest Price Technically Acceptable) janitorial jobs on small, well-defined sites are usually the best first targets: the scope is knowable, there is no lengthy narrative to write, and a careful cost estimate is genuinely competitive. Best-value jobs reward incumbents and firms with references, so they are harder cold.

Step 6 — Submit a clean offer

What to do next

If you are not registered yet, start with SAM.gov setup and daily monitoring. If you are registered and want to stop wasting nights on bids you can't win, learn the bid / no-bid decision framework. And to see what current open work looks like in your area, browse live federal contract lists by state and trade.

Stop reading RFPs to find out they weren't worth it.

Every morning, BidBrief reads the new federal solicitations in your trade and states and sends you one page each: scope, the wage floor, who won it last, and a straight BID or SKIP. $249/month, cancel anytime.

See how it works →