<!--
  The NAICS code is doing more than describing the work
  https://offra.cc/blog/the-naics-code-is-doing-more-than-describing-the-work
  Published: 2026-07-17
  Language: en · Category: Public procurement
  © Consuly Pte. Ltd. — republished with attribution and a link to the canonical URL.
-->

A NAICS code sits in the solicitation header looking like a filing convention — the government's
way of saying this job is roadwork rather than roofing. Most bidders read it as a label and move
on.

It is not a label. It is the switch that determines whether your firm is small for this particular
competition, which in turn determines whether you can compete for it at all when the work is set
aside. Everything downstream of the eligibility question runs through this one field.

## The code carries a size standard with it

Every NAICS code has a size standard attached, expressed either as average annual receipts or as
number of employees depending on the industry. Construction codes are generally measured by
receipts, averaged over several years rather than taken from your last one.

The averaging matters more than firms expect. A single unusually large year does not immediately
make you other than small, and a single lean year does not restore the status after a run of growth.
The number that decides your eligibility is a trailing average, and it moves slowly enough that it
can cross a threshold without anyone in the office noticing the year it happened.

## One firm can be several sizes at once

Because the standard travels with the code rather than with you, your size is not a fact about your
company. It is a fact about the pairing of your company with a specific solicitation.

A contractor can be comfortably small under a highway construction code and not small under a
building construction code, on the same day, with the same balance sheet. Firms that describe
themselves internally as "a small business" are compressing something that genuinely varies, and
the compression is what produces a confident bid on work the firm was never eligible for.

## The buyer chooses the code, and the choice is contestable

The contracting officer assigns the NAICS code that best describes the principal purpose of the
requirement. On a job that mixes trades — sitework plus a building, or construction plus a
substantial equipment supply — reasonable people can land on different codes, and the choice
changes which firms are small enough to bid.

That decision is not final. A NAICS code designation can be appealed to SBA's Office of Hearings and
Appeals, and the window is short: within ten calendar days of the solicitation being issued, or by
the closing date, whichever comes first. It is a real remedy on an unrealistic clock, and it is only
reachable by a team that read the header in the first days rather than the last.

## Size protests run the other direction, after the fact

The mirror image is the size protest, which arrives after bids are in and comes from a competitor
who believes the apparent winner is not small under the assigned code. That window is also measured
in a handful of days from the notification.

Both mechanisms exist because the size determination genuinely affects who wins, and both are
routinely missed for the same reason: they are open during periods when the bid team has already
moved on to the next thing.

## Why this is read too late

The NAICS code is the first line of the solicitation and one of the last things a bid team
evaluates, and the ordering is not irrational — it is what happens when the interesting content is
in the drawings and the consequential content is in the header.

There is also a quieter cause. Firms that have bid the same kind of work for years develop a
settled sense of which codes describe them and stop re-checking, which works exactly until the
company grows past a threshold or a buyer classifies a familiar job differently. Neither event
announces itself.

Checking the code, its size standard and the set-aside together takes two minutes on day one. It is
the cheapest qualification step available, and the only one whose remedies expire before the bid
does.

You can see how open solicitations distribute across classifications, and what is currently posted
under each, at [/tenders](/tenders) — no account required.

Related reading: [what a set-aside actually excludes](/blog/what-a-set-aside-actually-excludes).
