Here is a pattern our advisors saw for twenty years from the buying side. A capable firm registers in SAM, picks a handful of NAICS codes that feel right, and waits. A year later, nothing. The firm concludes the market is closed to newcomers. The market concluded nothing. It never saw them.

NAICS codes are not a description of your business. They are the address buyers use to find you. If the address is wrong, effort does not fix it. More bids, more marketing, more hours on SAM.gov, none of it fixes an address problem.

Who picks the code, and who doesn’t

You choose the codes on your SAM registration. The contracting officer chooses the code on the solicitation. FAR 19.102(b)(1) directs officers to assign one NAICS code and size standard to every solicitation, contract, and order, classifying the buy in the one industry that best describes its principal purpose. 13 CFR 121.402(b) says the same: one solicitation, request for quotations included, carries one code, with multiple-award vehicles the carve-out under 13 CFR 121.402(c) that FAR 19.102(b)(2) widens after October 1, 2028.

She is not flipping a coin between two defensible options. 13 CFR 121.402(b)(1) tells her to weigh the NAICS manual descriptions, the solicitation’s own product description and attachments, the relative value of the components, and the function of what is bought. Then paragraph (b)(2): a procurement is generally classified by the component accounting for the greatest percentage of contract value. That sentence is what makes an appeal winnable.

The codes come from how the government classifies the requirement, not from how your industry describes itself.

What she does with the code is search. FAR 10.002(b)(2) points officers at the governmentwide contract database and other government databases, and FAR 10.002(e) turns the result into a documented file. SBA adds a mandatory tool: “You’re required to use the Small Business Search (SBS, formerly the Dynamic Small Business Search) as a part of your market research.” All of it runs on a code, filter by filter.

Now the part that costs you. FAR 19.502-2 reserves buys above the $15,000 micro-purchase threshold for small business unless the officer finds no reasonable expectation of two or more competitive offers from responsible small firms, and applies the same test above the $350,000 simplified acquisition threshold, both figures effective October 1, 2025. A firm under the wrong code is not passed over. It is missing from the count that decides whether the buy is set aside at all.

Recollections from the buying side

“In my contracting officer years, when the code search turned up one small firm instead of two, I wrote ‘no reasonable expectation’ in the market research memo and took the requirement full and open. I never wrote down the names of the firms I didn’t find. Nobody does.”

A GovPointe advisor and former federal acquisition official

What NAICS is, and who runs it

NAICS is the North American Industry Classification System, adopted in 1997 to replace the old Standard Industrial Classification. The Census Bureau publishes it, OMB charged the Economic Classification Policy Committee with maintaining it, and it is reviewed every five years. Census states the purpose plainly: “NAICS is designed for statistical purposes … the requirements for nonstatistical purposes played no role in its development or subsequent revisions.”

The system your eligibility runs on was built to count establishments. Read a code left to right: sector, subsector, industry group, NAICS industry, and at the sixth digit the national industry, one of 1,012 in NAICS 2022. Size standards attach at that sixth digit.

Federal contracting runs on NAICS 2022, adopted by SBA effective October 1, 2022. Revisions lag, because FAR 19.102(a)(2) makes new codes unavailable until SBA publishes matching size standards, and OMB’s proposed 2027 updates carry no announced procurement date. Check the last revision instead: when 2017 became 2022, 111 new industries came out of 156 old ones, and a firm whose code was split now sits under one its buyers stopped typing.

The size standard belongs to the code, not to you

Standards in 13 CFR 121.201 are expressed in employees or annual receipts in millions of dollars, setting the maximum allowed for a concern and its affiliates to count as small. The standard belongs to the industry, not to your company.

So your ceiling gets set by somebody else, one buy at a time. Under 13 CFR 121.402(a) you must not exceed the standard for the code in the solicitation, as it stood the day that solicitation issued. 13 CFR 121.404(a) fixes the moment: the date you submit the self-certification with your initial offer including price. FAR 52.219-1(b) prints both on the face of the solicitation, and paragraph (c)(1) is where you check “is” or “is not.”

Two numbers belong in your head, and most firms have never computed the second. Receipts: total receipts over your most recently completed five fiscal years divided by five, per 13 CFR 121.104(c)(1). Five, not three, and 13 CFR 121.104(a) forbids subtracting subcontractor costs. Employees: the average for each pay period across the preceding completed 24 calendar months, affiliates included, counting part-time, temporary, temp-agency, and leased staff as full-time, per 13 CFR 121.106.

Both go into SAM under Assertions, Size Metrics, “according to 13 CFR 121,” and SAM computes a small business indicator, Y or N, for every code on your record, one at a time.

Which settles a common fear. Adding a code with a smaller standard does not make you other than small. Size is determined per code, always: the new code carries an N and the rest of your record is untouched. The cost is that buyers now find you where you have to represent that you are not small, in the good faith FAR 19.301-1 requires.

Which code is your primary

Your record carries a separate Primary NAICS Flag, which GSA’s data dictionary defines as the code the entity selected as primary, noting that for many programs SBA requires a firm be small in its primary industry. “Selected” misleads people into treating it as a marketing slot.

SBA does not read it that way. 13 CFR 121.107 makes primary industry a finding of fact, drawn from the distribution of receipts, employees, and costs of doing business across the industries you operated in last fiscal year. Two instructions live here and firms collapse them. Carry the codes your buyers use. Set primary to your real primary industry.

No rule caps how many codes you may list, and another one costs nothing at the keyboard. It costs elsewhere. Each gets its own indicator computed against a standard you may not clear, and each surfaces you for work you cannot staff. Code misalignment is one of five failures in what breaks when you build your own registration, and this is the long version.

The axis almost nobody fills

Product Service Codes sit in the same SAM section, under Assertions, Goods and Services, where the checklist marks them optional. Optional in the form is why they get skipped. Optional in the market they are not.

GSA’s PSC Manual, Fiscal Year 2025 edition, says the codes “indicate ‘WHAT’ was bought for each contract action.” The PSC is data element 8A on the award record.

Four characters each: products all digits, services beginning with a letter (S201 Housekeeping, Custodial Janitorial; M1AA Operation of Office Buildings; Z1AA Maintenance of Office Buildings), research and development beginning with A.

The two axes use different tests. NAICS is picked once for the solicitation by principal purpose, and it sets your size standard. PSC is picked per contract action by the predominant product or service. Both are filters in SAM.gov Contract Data and Contract Opportunities.

The search that shows you the gap

Take a commercial janitorial firm, roughly $9 million in average annual receipts, 140 employees, chasing work at a nearby installation. In SAM it entered one code: 561720, Janitorial Services, which Census defines as establishments primarily engaged in cleaning building interiors and windows. Accurate. The standard is $22.0 million, so the record shows a Y. The PSC field is blank.

Now run the search. Open SAM.gov Contract Data on the awards side, where the public FPDS search went when fpds.gov was decommissioned on February 24, 2026. Set the department and sub-tier, set contract fiscal year to the last three, then do the counterintuitive part. Do not filter by NAICS. Search by keyword. Custodial. Housekeeping. Cleaning.

Read three fields on every award, not one. NAICS tells you which size standard the buyer applied. The Product or Service Code tells you how the buy was categorized. Type of Set Aside tells you whether being small mattered. Pull twenty, not five. One appearance is noise. Eleven is your address.

Some awards carry 561720 with PSC S201, the standalone cleaning contracts, usually smaller. The large recurring awards, the ones covering the buildings this firm wants, carry NAICS 561210, Facilities Support Services, with PSCs out of Category M and Category Z. M1AA. Z1AA. The firm has never been searchable under 561210.

The officer was not wrong. Census defines Facilities Support Services as establishments providing operating staff for a combination of support services within a client’s facilities: janitorial, maintenance, trash disposal, guard and security, mail routing. The installation is not buying cleaning. It is buying an operating staff that cleans, hauls trash, and mans a front desk.

The ceiling moves with the code. 561720 carries $22.0 million. 561210 carries $47.0 million. Same firm, same $9 million, small under both, but the room is different. Under 561210 this firm competes against companies twice its size that still count as small.

Sometimes the officer is wrong, and this is the code where it shows. Footnote 12 to 13 CFR 121.201 says that if one activity can be identified with a specific industry accounting for 50 percent or more of the value of the whole procurement, that industry is the proper classification. The footnote also requires three or more separate activities. Custodial labor at 70 percent of estimated value makes the designation appealable.

Ten calendar days, and where to file

FAR 19.102(b)(4) makes the designation final unless appealed under FAR 19.103. Appeals go to SBA’s Office of Hearings and Appeals, and 13 CFR 121.1103(b)(1) requires them served and filed within 10 calendar days after issuance of the solicitation, or of the amendment that changed the code. Calendar days. OHA must have it by 5 p.m. Eastern.

Standing is wide open: 13 CFR 121.1103(a)(1) lets any interested party adversely affected appeal, including a firm that wants the code changed so it counts as small. There is no required format. The petition needs the solicitation number, both parties’ contact information, and a specific statement of why the designation is erroneous. Serve the officer and SBA’s Associate General Counsel for Procurement Law, and use OHA’s published channels. Anything else is not a filing.

Filing is not a paper exercise. 13 CFR 121.1103(c)(1) makes the officer stay the closing date for offers, amend the solicitation to say an appeal is pending, and send it all to OHA. FAR 19.103(a)(6) gives her 15 calendar days to respond and requires award withheld.

OHA reviews for clear error of fact or law, with the burden on you by a preponderance of the evidence, per 13 CFR 134.314. That is deferential, so “our code fits better” loses and “the greatest percentage of contract value sits in a different industry” wins. Win, and under 13 CFR 134.318(b) the decision reaches future solicitations for the same services. FAR 19.103(a)(7) applies it to this buy only if it lands before offers are due.

Miss the ten days and there is no second door. GAO will not hear it: 4 CFR 21.5(b)(1) sends NAICS code challenges to SBA alone, and 13 CFR 121.1102 makes the OHA appeal the remedy you exhaust before court.

Why the wrong version feels right

Codes pulled off a state contractor license or a trade association category feel authoritative, because a real institution issued them. Census built NAICS to count establishments. Your state built the license class to regulate a trade. They overlap by coincidence.

Reading the code title and stopping feels efficient. The split usually lives in the cross-references. A firm that installs security cameras is choosing between 238210, Electrical Contractors and Other Wiring Installation Contractors, whose examples include “Alarm system (e.g., fire, burglar), electric, installation only,” at $19.0 million; and 561621, Security Systems Services (except Locksmiths), which covers selling alarm systems with installation, repair, or monitoring, at $25.0 million. The hinge is “installation only.” Same crew, same day, six million dollars of difference in the ceiling.

Picking a code for its roomier standard feels like strategy. It fails at step one, because you do not pick the code on the buy. Your size is measured against the standard in that solicitation. It tunes a field nobody scores.

Leaving the profile alone feels safe, and two clocks are running. Your own numbers roll every year as the receipts and headcount averages move forward. SBA reviews size standards on a five-year cycle, and a proposed rule published August 22, 2025 would raise 263 monetary based standards. No final rule has issued, so 13 CFR 121.201 stands as written.

Assuming your profile controls the solicitation does the most damage. Nothing in FAR Part 19 makes your right to bid depend on your registered codes; FAR 19.301-1 ties the representation to the solicitation’s code. Your codes govern whether a buyer finds you. The solicitation’s code governs how you are measured.

What to do this week

Pull twenty awards from the last three fiscal years in SAM.gov Contract Data, filtered to the department and sub-tier you want, searched by keyword rather than by code. Tally the NAICS code, the Product or Service Code, and the Type of Set Aside on each.
Sort into three buckets: codes your buyers use that you carry, codes they use that you do not, codes you carry that never appear. Delete the third bucket. Almost nobody does.
Price every surviving code in SBA's Size Standards Tool, then open the regulation itself and read the footnotes attached to that code. The footnotes are where the traps live.
Enter the Product Service Codes that showed up on those awards, then mirror your codes into your SBA Small Business Search profile so the two records tell one story.
Save a search in SAM.gov Contract Opportunities for sources sought notices under your new codes. Those notices carry the code an office intends to use, months before a solicitation exists.

Then put it on a clock. A SAM registration has to be renewed every 365 days, which makes renewal the moment to run the sequence again, after both averages have rolled.

We do it in a fixed order in contract recon: harvest the codes your buyers use, price each against the regulation, set primary last. Firms that pick a primary first and reason backward end up where they started.

More outreach will not repair this. Neither will a paid opportunity feed or another year of trying harder, because the search that decides whether you exist runs on the code first.

About the authors

The GovPointe Advisory BenchFormer Federal Acquisition Officials

Written by the GovPointe advisory bench: former federal acquisition officials with 20+ year careers as contracting officers, Senior Executive Service members, and source selection officials.

Meet the Advisors