Activity codes in company registers: what SIC, NACE and NAICS can and cannot tell you
How SIC, NACE, NAICS and SSIC codes are assigned at registration — and why a code filter is the right starting point but never the final answer for a target list.
When building a private company target list, the natural instinct is to filter the universe by industry. The registered activity code — SIC, NACE, NAICS, SSIC or ANZSIC, depending on the jurisdiction — looks like the obvious tool. It is the right starting point. It is nearly always the wrong ending point.
Understanding why requires understanding how codes are assigned, and what they actually record.
How activity codes are assigned
In every jurisdiction covered by these systems, the same mechanism applies: a company selects its activity code at incorporation from a published list, and the registrar accepts it.
The UK’s five-digit SIC list, maintained by Companies House, runs to several hundred categories. Singapore’s SSIC, maintained by ACRA, covers a similar range. NAICS covers the US, Canada and Mexico. NACE applies across EU member states, with each country mapping its national register accordingly.
None of these systems involves independent verification. When a company registers, the applicant or their agent picks the code that seems closest. If the business makes packaging materials, they find “manufacture of plastic products” and put that in. If they are not sure, they pick something adjacent. The registrar’s job is to check that the code exists in the system, not that it describes the company accurately.
The result is a code that records one thing: what the company said it did, using the available vocabulary, at a specific moment in its history.
Why codes diverge from actual activity
The assignment mechanism would be tolerable if it were maintained. It is not, for a structural reason: almost no jurisdiction makes a company update its activity code when its business changes, and almost none of the routine annual filings prompt a review.
A company that started as a retail business and grew into a logistics operation continues to file under retail. A firm that began as a recruitment agency and added consultancy services remains filed under recruitment. A holding entity formed to acquire an operating subsidiary will carry whatever code the lawyers typed into the incorporation form, which is often a generic “activities of holding companies” entry that tells you almost nothing about the subsidiary’s industry.
There are three specific failure modes worth knowing:
The founder’s shortcut. At incorporation, activity description is one of dozens of fields to complete. Code selection gets the least thought and the least review. Adjacent codes, parent category codes, and codes that describe aspirational rather than current activity all appear in real registers.
The evolving business. Businesses change. A software company becomes a data company; a manufacturer adds a services arm; a services firm pivots to a product. The register status changes when these companies dissolve, but the activity code does not update as they grow.
The holding company problem. When a group structure exists, the registered activity code is often the one the parent carries rather than the operating subsidiary’s. “Activities of holding companies” or an equivalent code is accurate for the parent entity but invisible for the underlying industry. Filtering on a trading industry code will miss the holding entity and may not reach the operating subsidiary at all, depending on how the population was constructed.
What a code filter actually selects
A code filter reliably finds companies that have not changed since registration. New companies with an accurate initial code, companies in stable industries where the vocabulary fits, and companies whose founders were careful and accurate at incorporation.
It does not find companies that have evolved, companies whose industry moved since the standard was last updated, companies registered under a parent structure, or companies whose founders chose adjacent or generic codes.
The problem for acquisition target screening is that the companies described in the second group are often the more interesting candidates — established, owner-managed businesses in well-defined niches, which have developed precisely because they were not constrained by the category they started in. A code-only filter quietly selects against exactly the businesses a thesis is often looking for.
Reconciling code with current activity
The practical response is to use the activity code as a population-casting tool and to correct it against current evidence.
Cast wide. Accept the primary target codes and adjacent codes where businesses plausibly cross category lines. Add codes for holding and investment entities if the thesis might encompass group structures, and plan to resolve those separately. The first stage should capture too many rather than too few.
Then correct from the company’s own description. The company’s website, filed accounts, and any public trading name typically describe current activity in plain language. These descriptions belong in a separate evidence field and should not replace the filed code — they are a different observation from a different source, made at a different date. The screening workflow covers how to structure that evidence.
Where a company’s registered activity diverges significantly from its website description, that divergence is itself useful. It often indicates an older company that has developed, which is exactly the profile worth investigating rather than excluding.
Cross-jurisdiction complications
When combining data across jurisdictions, code systems do not map cleanly to each other. UK SIC and NAICS share no direct correspondence at the sub-category level. SSIC and ANZSIC are distinct again. Eurostat maintains a public crosswalk between NACE and NAICS, but it operates at a high level of generality and loses precision below two-digit codes.
A data file that collapses all jurisdictions into a single code field without noting the source system makes this problem invisible. A responsible file records the code, the system it came from, and the date it was observed. Converting between systems is possible but must be done explicitly, with the conversion labelled and the original preserved.
The evaluation checklist for private company databases covers activity code provenance as one of the questions to put to a vendor before purchase.
What a well-provenanced record shows
A record that handles activity codes correctly contains four things:
- The code exactly as filed, in the source system’s format.
- The code system it belongs to (UK SIC 2007, SSIC 2020, NAICS 2022, and so on).
- The date the code was last observed in the register.
- Where the company’s own materials describe a different activity, that description in a separate field, labelled as the company’s own statement rather than the filed code.
It does not replace the filed code with a research team’s judgement. It does not silently convert between code systems. It does not omit the code system label and leave the reader guessing which numeric scheme they are reading.
These distinctions matter when the file is used to scope a market or build a target list. A column where codes have been silently normalised looks clean and is unreliable. A column that preserves what was filed, with full provenance, supports a decision that can be explained and revisited.
For a detailed look at what other fields in a company record can and cannot support, and why some fields remain blank by design, see the methodology review. Details on the verification standard applied to each field are on the coverage page.
Frequently asked questions
What is a SIC code in a company register?
A Standard Industrial Classification code is a numeric label assigned to a company at registration to describe its main economic activity. The UK uses a five-digit SIC list maintained by Companies House; the US uses a four-digit list that pre-dates NAICS and is still found in older filings and some state registers. Both are self-declared — the applicant selects the code that seems closest from a published list, and the registrar typically accepts it without verification. The code records the activity the company described at the point of registration, which may not match what it actually does today.
What is the difference between SIC, NACE, NAICS and SSIC?
They are regional variants of the same idea — a standardised numeric classification of economic activities — each maintained by a different authority. NACE is the European Union system, used in filings in Ireland and available through Eurostat; EU member-state registers may map to NACE or to a national variant. NAICS is the North American system used by the US, Canada and Mexico; it replaced the older US SIC for federal statistical purposes but the older SIC still appears in some state registers and SEC filings. SSIC is Singapore's system, maintained by ACRA, and ANZSIC covers Australia and New Zealand under ASIC's framework. The practical differences matter mainly when combining data across jurisdictions, because the same numeric code means different things in each system.
How often are industry codes updated on a company register?
Rarely. Most jurisdictions do not require a company to update its activity code when its business changes, and there is no routine that prompts one. A company that pivoted from retail to logistics ten years ago will continue to file under the retail code it chose at incorporation unless a director actively files an update. In practice this means the code on a well-established company's record reflects what the business was, not what it is. The exception is jurisdictions where codes are re-confirmed at an annual filing; even there, the confirmation is often pre-populated from the existing record and passed without review.
Why does a code filter miss companies in your target industry?
Because the filter finds companies whose founders described their business in that category at registration, not all companies that now operate in that category. A business that grew into an adjacent industry, or that started broad and specialised over time, is invisible to a code-only filter. The companies most worth acquiring — established, owner-managed, profitable, and never sold — are also the ones most likely to have grown beyond their original category description. A code filter systematically under-selects exactly those names.
What should a private company data file record about activity codes?
A well-constructed file records the source code exactly as filed, the code system it belongs to, and the date it was last observed in that register. It does not collapse multiple subsidiary codes into one, does not convert between code systems without noting the conversion, and does not substitute a research team's judgement for the filed code without labelling the substitution clearly. Where the company's own website or filed accounts describe activity that differs from the registered code, that description belongs in a separate field as a distinct observation, not as a replacement for the code field.
Sources
- Companies House — standard industrial classification of economic activities — Government of the United Kingdom; accessed September 29, 2026
- Accounting and Corporate Regulatory Authority — Singapore Standard Industrial Classification — Government of Singapore; accessed September 29, 2026
- Australian Securities and Investments Commission — company registers — Government of Australia; accessed September 29, 2026
- North American Industry Classification System — United States Census Bureau; accessed September 29, 2026
Tell us which market you need.
Research is under way. No market file, price or release date is available yet. Review the planned licence, then email the market you need to ask about its research status.