Quick answer
If you want to win government contracts, you need to understand NAICS codes. They are the classification system that determines which contracts you can compete for, whether you qualify as a small business, and how agencies find companies like yours.
Getting your NAICS codes wrong can disqualify you from contracts you should be winning. Getting them right can open doors to billions of dollars in federal, state, and local opportunities across the $2.2 trillion U.S. public procurement market.
This guide covers everything you need to know about NAICS codes, from their basic structure to advanced strategies for maximizing your competitive position.
What Are NAICS Codes?
NAICS stands for the North American Industry Classification System. It is the standard system used by the United States, Canada, and Mexico to classify businesses by the type of economic activity they perform.
Every business in the U.S. is assigned at least one NAICS code. The system was developed in 1997 to replace the older Standard Industrial Classification (SIC) system. The U.S. Census Bureau updates NAICS codes every five years to keep pace with changes in the economy.
In government contracting, NAICS codes serve three critical purposes:
- Contract classification: Agencies assign a NAICS code to every solicitation and contract award.
- Size standard determination: The Small Business Administration (SBA) ties size standards to NAICS codes, which determines whether your company qualifies as "small."
- Market research: Contracting officers use NAICS codes to find qualified vendors in SAM.gov.
With over 108,899 companies registered for government contracting in SAM.gov and more than 5.5 million records in the system, NAICS codes are how agencies sort through the noise to find the right contractors.
The Structure of NAICS Codes: 2 to 6 Digits
NAICS codes follow a hierarchical structure that moves from broad to specific. Understanding this structure helps you choose the right level of specificity for your business.
| Digit Level | Name | Example | Description |
|---|---|---|---|
| 2-digit | Sector | 54 | Professional, Scientific, and Technical Services |
| 3-digit | Subsector | 541 | Professional, Scientific, and Technical Services |
| 4-digit | Industry Group | 5415 | Computer Systems Design and Related Services |
| 5-digit | Industry | 54151 | Computer Systems Design and Related Services |
| 6-digit | National Industry | 541512 | Computer Systems Design Services |
The first two digits identify the economic sector. Each additional digit narrows the classification further. Government contracts are always assigned a 6-digit NAICS code, which is the most specific level of classification.
There are 20 sectors at the 2-digit level and over 1,000 industries at the 6-digit level. The sectors most relevant to government contracting include:
- 23: Construction
- 33: Manufacturing
- 48-49: Transportation and Warehousing
- 51: Information
- 54: Professional, Scientific, and Technical Services
- 56: Administrative and Support Services
- 61: Educational Services
- 62: Health Care and Social Assistance
How Agencies Use NAICS Codes to Classify Contracts
When a contracting officer creates a solicitation, they must assign a primary NAICS code. This code determines:
- Which companies can compete: Especially for small business set-asides
- The applicable size standard: Revenue or employee threshold for small business status
- How the contract appears in search results: On SAM.gov, FPDS, and USAspending.gov
The contracting officer selects the NAICS code that "best describes the principal purpose of the product or service being acquired." This is defined in FAR 19.102.
This is important because the same work can sometimes fall under different NAICS codes depending on how the agency frames the requirement. For example, an IT modernization project could be classified under:
- 541512: Computer Systems Design Services
- 541511: Custom Computer Programming Services
- 541519: Other Computer Related Services
- 518210: Data Processing, Hosting, and Related Services
Each of these codes has a different size standard, which means your company might be "small" under one code but not under another.
NAICS Codes and SBA Size Standards
The SBA assigns a size standard to every NAICS code. This size standard is the threshold that determines whether a company qualifies as a small business for that particular type of work.
Size standards are expressed in one of two ways:
- Average annual receipts (revenue) over the past 3-5 completed fiscal years
- Number of employees averaged over the past 12 months
Here are examples of common NAICS codes and their size standards:
| NAICS Code | Industry | Size Standard |
|---|---|---|
| 541512 | Computer Systems Design Services | $34 million |
| 541330 | Engineering Services | $25.5 million |
| 541611 | Administrative Management Consulting | $19 million |
| 236220 | Commercial and Institutional Building Construction | $45 million |
| 541715 | R&D in Physical, Engineering, and Life Sciences | 1,000 employees |
| 561210 | Facilities Support Services | $47 million |
| 541519 | Other Computer Related Services | $34 million |
| 238220 | Plumbing, Heating, and Air-Conditioning Contractors | $19 million |
Size standards are updated periodically by the SBA. You can always check the current size standard for any NAICS code at the SBA's Size Standards Tool.
Why This Matters for Your Business
If your company's revenue is $20 million and you are bidding on a contract classified under NAICS 541512 (size standard: $34 million), you qualify as a small business.
But if the same work is classified under a NAICS code with a $16 million size standard, you are no longer "small" for that contract. This means you cannot compete for small business set-asides under that code.
This is why choosing and registering the right NAICS codes is a strategic decision, not just an administrative one.
How NAICS Codes Affect Set-Aside Eligibility
The federal government is required to award at least 23% of prime contract dollars to small businesses. To meet this goal, agencies use set-aside programs that restrict competition to small businesses.
Set-aside categories include:
- Small Business Set-Aside: Open to all qualifying small businesses
- 8(a) Business Development Program: For socially and economically disadvantaged businesses
- HUBZone: For businesses in Historically Underutilized Business Zones
- SDVOSB: Service-Disabled Veteran-Owned Small Business
- WOSB/EDWOSB: Women-Owned and Economically Disadvantaged Women-Owned Small Business
Your eligibility for each of these programs depends on meeting the size standard for the specific NAICS code assigned to the contract. You must be "small" under the NAICS code the contracting officer selects, not just under any NAICS code in your SAM.gov profile.
This means you should track which NAICS codes agencies typically assign to the type of work you perform. If you see contracts for your services classified under a NAICS code where you would not qualify as small, you may need to adjust your strategy.
Bidovate's opportunity discovery engine) automatically filters opportunities by your registered NAICS codes and alerts you to relevant set-aside contracts, so you never miss an opportunity where you are eligible.
Top NAICS Codes by Federal Spending
Not all NAICS codes are created equal. Some classifications account for massive volumes of federal spending, while others see relatively little contracting activity. Understanding where the money flows helps you prioritize your business development efforts.
Here are the top NAICS codes by cumulative federal contract spending:
| Rank | NAICS Code | Description | Federal Spending |
|---|---|---|---|
| 1 | 541330 | Engineering Services | $2.3 trillion |
| 2 | 541512 | Computer Systems Design Services | $1.8 trillion |
| 3 | 561210 | Facilities Support Services | $1.7 trillion |
| 4 | 541715 | R&D in Physical, Engineering, and Life Sciences | $1.1 trillion |
| 5 | 236220 | Commercial and Institutional Building Construction | $517 billion |
These numbers reflect cumulative spending over the history of federal contracting data. The Department of Defense accounts for 59.87% of all federal procurement dollars, which means DoD-heavy NAICS codes like engineering, R&D, and computer systems design dominate the spending charts.
If your company operates in any of these NAICS codes, you are competing in the most active segments of the $755 billion federal contracting market. The opportunity is significant, but so is the competition.
Emerging High-Growth NAICS Codes
Beyond the traditional heavy hitters, several NAICS codes are seeing rapid growth in federal spending:
- 541211: Offices of Certified Public Accountants (financial audit requirements)
- 519190: All Other Information Services (data analytics, AI services)
- 541380: Testing Laboratories and Services (cybersecurity testing)
- 561320: Temporary Help Services (staff augmentation)
- 541990: All Other Professional, Scientific, and Technical Services (emerging tech)
Tracking spending trends by NAICS code helps you identify growing markets before they become saturated.
Step-by-Step Process for Choosing the Right NAICS Code
Choosing the right NAICS codes requires research and strategic thinking. Follow this process to get it right.
Step 1: Define Your Core Services
Start by listing every service or product your company provides. Be specific. Instead of "IT services," break it down:
- Custom software development
- Systems integration
- Cybersecurity consulting
- Cloud migration
- Help desk support
- Data analytics
Each of these may map to a different NAICS code.
Step 2: Search the NAICS Database
Use the official NAICS search tool at census.gov/naics to look up codes that match your services. You can search by keyword or browse by sector.
For each service you listed in Step 1, find the 6-digit NAICS code that most closely describes that work.
Step 3: Check Size Standards
For each NAICS code you identified, look up the SBA size standard. Determine whether your company qualifies as "small" under each code.
Create a table like this for your records:
| Service | NAICS Code | Size Standard | Qualify as Small? |
|---|---|---|---|
| Custom Software Dev | 541511 | $34M | Yes |
| Systems Integration | 541512 | $34M | Yes |
| Cybersecurity | 541690 | $19M | Yes |
| Help Desk | 561422 | $19M | Yes |
Step 4: Research How Agencies Classify Similar Work
This is the step most contractors skip, and it is one of the most important.
Search historical contract awards in FPDS and USAspending.gov to see which NAICS codes agencies actually use for work similar to yours. You may find that agencies consistently use a different code than the one you expected.
For example, you might think your cybersecurity work falls under 541512 (Computer Systems Design), but agencies might classify it under 541690 (Other Scientific and Technical Consulting) or 541519 (Other Computer Related Services).
Bidovate's competitive intelligence tools make this research faster by letting you search awards by keyword, agency, and NAICS code simultaneously.
Step 5: Select Your Primary and Secondary Codes
Choose one NAICS code as your primary code. This should be the code that best represents the majority of your revenue. Then select additional secondary codes that cover your other capabilities.
Most government contractors register between 3 and 10 NAICS codes in SAM.gov. There is no hard limit, but you should only list codes for work you can actually perform.
Step 6: Validate with Industry Peers
Talk to other contractors in your space. Ask what NAICS codes they use. Check the SAM.gov profiles of companies that do similar work. This can reveal codes you may have overlooked.
Common NAICS Code Mistakes
Contractors make several recurring mistakes when selecting NAICS codes. Avoid these pitfalls.
Mistake 1: Picking Codes That Are Too Broad
Using a broad 4-digit or 5-digit description when a more specific 6-digit code exists makes it harder for contracting officers to find you. Government contracts are always classified at the 6-digit level, so your codes should be too.
Mistake 2: Picking Codes That Are Too Narrow
Conversely, selecting only one highly specific NAICS code limits the contracts you can find. If you only register under 541512 (Computer Systems Design) but your company also does custom programming, you are missing contracts classified under 541511.
Mistake 3: Only Registering One Code
Many new contractors register with a single NAICS code. This severely limits their visibility. Most companies perform work that spans multiple NAICS codes. Register all codes that legitimately describe your capabilities.
Mistake 4: Not Updating Codes as Your Business Evolves
As your company grows and adds new capabilities, your NAICS codes should evolve too. Review your codes at least once a year and update them when you add new service lines.
Mistake 5: Ignoring Size Standard Implications
Choosing a NAICS code without checking the size standard can cost you set-aside eligibility. Always verify that you qualify as small under the codes you select, especially for your primary code.
NAICS vs PSC Codes: What Is the Difference?
Government contracts use two classification systems: NAICS codes and PSC (Product and Service Codes). They serve different purposes and are used in different contexts.
| Feature | NAICS Code | PSC Code |
|---|---|---|
| Purpose | Classifies the industry of the contractor | Classifies the product or service being purchased |
| Maintained by | U.S. Census Bureau | General Services Administration (GSA) |
| Structure | 6-digit hierarchical code | 4-character alphanumeric code |
| Used for | Size standards, set-asides, market research | Spend analysis, category management |
| Example | 541512 (Computer Systems Design) | D302 (IT Systems Development) |
| Required in SAM.gov | Yes | No |
Every government contract has both a NAICS code and a PSC code. NAICS classifies the contractor's industry; PSC classifies what the government is buying. You need to understand both to effectively search for opportunities.
When searching for contracts on SAM.gov, you can filter by either NAICS or PSC codes. Using both in combination helps you find the most relevant opportunities.
How to Look Up NAICS Codes
Several free resources are available for NAICS code research:
Official Sources
- Census Bureau NAICS Search: census.gov/naics, the official NAICS database with keyword search and code descriptions
- SBA Size Standards Table: sba.gov/size-standards, look up the size standard for any NAICS code
- SAM.gov: Search contract awards by NAICS code to see how agencies classify work
- FPDS.gov: Federal Procurement Data System with detailed award data by NAICS code
- USAspending.gov: Comprehensive federal spending data searchable by NAICS code
Research Strategies
- Keyword search: Start with keywords that describe your services at census.gov
- Competitor research: Look up competitors in SAM.gov and see what NAICS codes they use
- Award history: Search FPDS for past awards related to your services and note the NAICS codes used
- Agency-specific patterns: Different agencies may classify similar work under different NAICS codes
Bidovate) aggregates data from SAM.gov, FPDS, USAspending, and over 1,000 additional portals, making it easier to research NAICS codes and find relevant opportunities across the entire $2.2 trillion procurement landscape.
How to Update Your NAICS Codes in SAM.gov
Your NAICS codes are part of your SAM.gov entity registration. Here is how to update them:
- Log in to SAM.gov at sam.gov using your login.gov credentials
- Navigate to your entity registration under "Entity Management"
- Select "Update Entity" to modify your registration
- Go to the "Entity Information" section where NAICS codes are listed
- Add or remove NAICS codes: You can search by code number or keyword
- Designate your primary NAICS code: This should be the code that represents the majority of your revenue
- Mark any codes as "small": SAM.gov will ask you to self-certify your size for each code
- Submit the update: Changes typically take 3-5 business days to process
You must renew your SAM.gov registration annually. This is a good time to review and update your NAICS codes. For a complete walkthrough of the SAM.gov registration process, see our SAM.gov registration guide.
Tips for SAM.gov NAICS Updates
- Add codes before you need them: If you are planning to pursue work in a new area, add the NAICS code to your profile ahead of time
- Remove codes you no longer support: A cluttered profile with irrelevant codes can actually hurt you in market research
- Keep your primary code current: Your primary NAICS code should reflect your main line of business as it exists today
- Document your rationale: Keep internal notes on why you selected each code, especially for size standard self-certification
Using Multiple NAICS Codes Strategically
Experienced government contractors use multiple NAICS codes as a strategic tool, not just an administrative requirement.
Broadening Your Opportunity Pipeline
Each NAICS code you register opens a new stream of potential opportunities. If you only register under one code, you are only seeing a fraction of the contracts relevant to your business.
For example, an IT services company might register under:
- 541512: Computer Systems Design Services
- 541511: Custom Computer Programming Services
- 541519: Other Computer Related Services
- 541611: Administrative Management and General Management Consulting
- 518210: Data Processing, Hosting, and Related Services
- 561422: Telemarketing Bureaus and Other Contact Centers (for help desk)
Each code has its own set of active solicitations, and some of those contracts may have less competition than others.
Size Standard Arbitrage
Because different NAICS codes have different size standards, you may qualify as small under some codes but not others. Focus your small business set-aside pursuits on the codes where you qualify as small.
This is not gaming the system. The SBA designed it this way to account for the fact that "small" means different things in different industries. A $30 million construction company is mid-sized, but a $30 million consulting firm is larger relative to its industry.
Teaming and Subcontracting
When teaming with other companies as a subcontractor, the prime contractor's NAICS code applies to the contract. Registering under NAICS codes that your potential prime contractors use makes it easier for them to find you as a teaming partner.
The Relationship Between NAICS and Opportunity Discovery
Your NAICS codes are the foundation of your opportunity discovery strategy. Every major federal procurement database (SAM.gov, FPDS, USAspending) allows filtering by NAICS code.
But manually searching multiple databases across multiple NAICS codes is time-consuming and error-prone. Most contractors miss opportunities simply because they did not search the right database with the right code on the right day.
This is where automation becomes essential. Bidovate's AI-powered opportunity discovery monitors SAM.gov, FPDS, USAspending, and over 1,000 state and local portals simultaneously. It matches opportunities to your NAICS codes and capabilities automatically, ensuring you see every relevant contract (federal, state, and local) as soon as it is posted.
The platform's Mevin AI assistant can also help you research NAICS codes, analyze spending trends, and identify which codes are most active for your target agencies.
Ready to stop missing opportunities? Book a demo to see how Bidovate can transform your NAICS-based search into a comprehensive pipeline.
Frequently Asked Questions
How many NAICS codes can I register in SAM.gov?
There is no official limit to the number of NAICS codes you can register in SAM.gov. However, you should only list codes for work your company is genuinely capable of performing. Most contractors register between 3 and 10 codes. Listing too many codes that are not relevant to your actual capabilities can dilute your profile and make you appear unfocused to contracting officers conducting market research.
Can I change my NAICS codes after I register?
Yes. You can update your NAICS codes at any time by logging into SAM.gov and modifying your entity registration. Changes typically take 3-5 business days to process. You should review your NAICS codes at least annually, ideally during your SAM.gov renewal, to make sure they reflect your current capabilities and business strategy.
What happens if an agency assigns the wrong NAICS code to a solicitation?
If you believe a contracting officer has assigned an incorrect NAICS code to a solicitation, you can file a NAICS code appeal with the SBA's Office of Hearings and Appeals (OHA). The appeal must be filed within 10 calendar days of the solicitation's issuance. The OHA will review the appeal and can order the contracting officer to change the NAICS code. This is important because the wrong code could change the size standard and affect your eligibility.
Do state and local governments use NAICS codes?
Many state and local governments use NAICS codes in their procurement systems, though it is not universally required. Some states have their own classification systems or use a combination of NAICS and commodity codes. When pursuing the $1.5 trillion state and local market, check each jurisdiction's registration requirements. Bidovate tracks over 1,000 state and local portals, many of which use NAICS-based classification.
What is the difference between my primary NAICS code and secondary codes?
Your primary NAICS code in SAM.gov represents the industry classification that accounts for the largest portion of your revenue. Secondary codes cover additional services or products you offer. The primary code is what the SBA uses for its annual small business goaling reports and what agencies see first when reviewing your profile during market research. Both primary and secondary codes can be used to find and compete for contracts.
Understanding NAICS codes is one of the first steps in building a successful government contracting business. For more foundational knowledge, read our Government Contracting for Beginners guide and our Guide to Government Contracts for Small Business.
Ready to win more contracts?
Bidovate scans 1000+ procurement portals and matches opportunities to your company profile.