AskTuvo
← All guides

Why You're Missing Government Contracts You Could Win (the NAICS Code Trap)

9 min read

If you sell to the government — or you're trying to — there's a good chance you're seeing only a fraction of the contracts you could actually win. Not because they aren't posted, but because you're searching for them the way everyone tells you to: by your NAICS code. That single habit quietly hides winnable work every single day. Here's why it happens, and the simple fix that surfaces the contracts you've been missing.

First, what a NAICS code actually is

NAICS stands for the North American Industry Classification System. It's a six-digit number that labels what industry a business (or a contract) belongs to. Painting contractors are 238320. Computer systems design is 541512. Janitorial services is 561720. The government uses NAICS codes for statistics, for setting small-business size standards, and — most importantly for you — to tag and organize the contracts it posts on SAM.gov.

Here's the rule that causes all the trouble: every federal solicitation gets exactly one NAICS code, and the contracting officer picks it. Not you. The person inside the agency who's buying the thing chooses which single industry code best describes it. And that's where the gap opens up.

The trap: the government doesn't always use "your" code

Contracting officers are not industry experts in your field. They're procurement professionals juggling dozens of buys at once. When they set up a solicitation, they pick the NAICS code that seems right to them — and they routinely pick one you'd never think to search. Four reasons this happens constantly:

None of this is malicious — it's just how the system works. But the effect on you is real: a contract that is squarely your work gets filed under a code you don't search, so it's invisible to you, and it goes to whoever did stumble onto it.

Real examples of the mismatch

These are the kinds of mislabels that show up every day:

In each case the business could have won the work. They just never saw it.

The fix: match by PSC code, not just NAICS

Here's the part almost nobody uses. Every federal contract carries a second label besides NAICS: the PSC, or Product and Service Code. While NAICS describes the industry, the PSC describes the actual thing being bought. And crucially, even when the officer picks an odd NAICS, the PSC usually still tells the truth about the work.

PSC codes come in two flavors:

Look at that janitorial example again: the NAICS might be wrong, but if the PSC is S201, you know it's custodial work. The PSC doesn't lie about what's being purchased. So if you match on both NAICS and PSC, you catch the contracts hiding under the wrong industry code — the ones your competitors also can't find.

When we added PSC matching to our own system, it surfaced dozens of extra winnable contracts per business — real renewals, licenses, and services that a pure-NAICS search had buried completely.

NAICS vs PSC: what each one controls

It helps to keep them straight:

NAICSPSC
DescribesYour industryThe specific product/service
Format6 digitsLetter+3 (services) or 4 digits (products)
Also setsYour small-business size standard
Best forEligibility & set-asidesFinding the actual work

You need NAICS to know whether you count as "small" and whether you qualify for a set-aside. You need PSC to make sure you actually see the work. Use both.

How to find your own codes

1. Your NAICS code(s). Think about your real lines of business in plain terms ("commercial cleaning," "IT support"), then look them up on the official Census NAICS search — or let a tool map your plain-English industry to the code for you. You can (and should) claim more than one if you genuinely perform more than one kind of work. See our full NAICS explainer.

2. Your PSC codes. Browse the official PSC Manual (search "PSC Selection Tool") and note every code that matches what you sell. Most businesses have a small handful — for example, an IT services firm might legitimately use DA01, DA10, and 7030.

3. Cross-check with real awards. Look up a few contracts similar to yours on USAspending.gov and note which NAICS and PSC codes the government actually used. You'll often find the "unofficial" codes officers keep reaching for.

How to actually search both on SAM.gov

On SAM.gov's Contract Opportunities search, you can filter by NAICS and by PSC. The high-leverage move most people skip: run separate searches by your PSC codes, not just your NAICS. You'll turn up solicitations that never appeared under your industry code. Save those searches so new postings alert you. It's tedious by hand across several codes — which is exactly the kind of thing worth automating.

The size-standard wrinkle (why the code affects who you compete against)

There's a second reason the NAICS code matters beyond visibility: it sets your small-business size standard — the ceiling (in average annual revenue or number of employees) under which you count as "small" for that contract. Every NAICS code has its own standard. Janitorial services (561720) uses a revenue ceiling; many manufacturing codes use an employee count. The same company can be "small" under one code and "other than small" under another. That means the NAICS an officer picks doesn't just change whether you see the contract — it can change whether you're eligible for the small-business set-aside on it. When you look up a solicitation, always check the size standard tied to its NAICS before you invest time.

A worked example: the contract you'd have missed

Say you run a small IT services firm. Your primary NAICS is 541512 (Computer Systems Design), so that's what you search — and you see the obvious help-desk and systems contracts. Meanwhile, an agency posts a "Red Hat Enterprise Linux Software Renewal" and files it under 513210 (Software Publishers), because to the contracting officer it's "buying software." You never see it; it's not in your NAICS results. But its PSC code is 7030 (IT Software) — unmistakably your world. A business searching by PSC, or using a tool that matches both codes, catches it. The one searching by a single NAICS doesn't, and the renewal quietly goes to a competitor who did. Multiply that by every mislabeled contract across a year, and the cost of the NAICS-only habit adds up fast.

A wider net only helps if you rank by fit

There's a catch to casting a wider net: if you simply match more, you can drown in loosely-related noise. The answer isn't to match less — it's to rank by fit. An exact industry match should sit above a "related industry" match, which sits above a broad service-code match. That way you're not scrolling past accounting solicitations to find the one IT contract. Wider net, smarter order — that's the combination that actually surfaces winnable work.

Your quick checklist

The government isn't hiding these contracts from you. It's just labeling them inconsistently — and a NAICS-only habit does the rest. Fix that, and a whole layer of winnable work becomes visible.

*See the contracts that match your business — by industry and service code, ranked by fit. Free, in 30 seconds.* Find my contracts →

Ready to see your matches?

Free, in 30 seconds — no signup, no sales call.

Find my contracts — free