NewSearch millions of jobs from your AI agent with MCP
All posts
ReferenceNoc
Reference·Sep 5, 2026·8 min read

NOC codes: Canada's five-digit occupation system, and what December 2026 changes

A NOC code is five digits, and the second one is not a serial number - it is the TEER tier. This reference decodes the hierarchy (10 broad categories, 45 major groups, 516 unit groups), covers what the NOC does not ship (no API, and no published bridge to ISCO-08), and flags the NOC 2026 revision arriving in December with 165 unit groups impacted. Then it puts live numbers against it: 253,731 active Canadian postings coded to ISCO, the ten largest occupation groups, and how to turn a NOC code you were handed into results today.

Dvir Atias

Dvir Atias

Founder, JobsPipe

A NOC code is a five-digit number Statistics Canada assigns to a kind of work. If you build anything on Canadian labour data - a job board, a sourcing tool, a hiring dashboard, an immigration product - it turns up eventually, usually as a column somebody else populated and nobody can explain.

The National Occupational Classification is the Canadian counterpart to the US SOC and to ISCO-08. This is a reference for people who have to store, filter or join those codes: how the five digits decode, how many groups exist at each level, the two things the NOC does not ship, what changes in December 2026, and what Canadian job postings look like once every one of them is classified.

How to read the five digits

Every digit is a level of a hierarchy, and the second one is not a serial number - it is the TEER category, the training-and-responsibility tier. Reading 21232, the code for a software developer, from the left:

2      Natural and applied sciences and related occupations             broad category
21     Professional occupations in natural and applied sciences         major group (TEER 1)
212    Professional occupations in applied sciences (except engineering) sub-major group
2123   Computer, software and Web designers and developers               minor group
21232  Software developers and programmers                              unit group

The first digit is what the work is about, the second is how much training and responsibility it carries, and digits three to five narrow the family to the unit group you actually filter on. Two codes sharing their first two digits sit in the same broad category at the same TEER, which is why hand-written NOC filters tend to be prefix matches.

How big the system is

Counted from the classification-structure CSV Statistics Canada publishes, NOC 2021 Version 1.0 contains:

  • 10 broad categories
  • 45 major groups
  • 89 sub-major groups
  • 162 minor groups
  • 516 unit groups - the level a job gets coded to

Group those 516 unit groups by their TEER digit and the distribution is lopsided in a way worth knowing before you design a filter: TEER 0 has 48, TEER 1 has 97, TEER 2 has 162, TEER 3 has 69, TEER 4 has 95 and TEER 5 has 45. Nearly a third of the whole classification sits in TEER 2, the college-diploma and skilled-trades tier - the part of the labour market that job-data products usually cover worst.

What TEER replaced

NOC 2016 was four digits with skill levels A, B, C and D. NOC 2021 is five digits with six TEER categories, released on 28 September 2021, and IRCC has used it for every Express Entry decision since 16 November 2022. The official definitions:

  • TEER 0 - management occupations
  • TEER 1 - occupations that usually require a university degree
  • TEER 2 - college diploma, apprenticeship training of 2 or more years, or supervisory occupations
  • TEER 3 - college diploma, apprenticeship training of less than 2 years, or more than 6 months of on-the-job training
  • TEER 4 - high school diploma, or several weeks of on-the-job training
  • TEER 5 - short-term work demonstration and no formal education

The old skill levels do not map onto TEER one-for-one, which is the trap in any pipeline still carrying NOC 2016 codes: A is not TEER 1, and the old B splits across TEER 2 and TEER 3 by a judgement made per unit group. Statistics Canada publishes an empirical concordance between NOC 2016 Version 1.3 and NOC 2021 Version 1.0 for exactly this. Use it instead of a prefix rule.

What the NOC does not ship

There is no API. The NOC is distributed as files: the classification structure as CSV, an elements file, three variants (STEM, TEER, and labour-force analysis aggregates) and the full PDF under catalogue number 12-583-X. That is fine - you load it once and store it - but there is no lookup service to call at runtime and no versioned endpoint to diff against when the classification moves.

There is also no bridge to ISCO. Statistics Canada’s own documentation says a correspondence table between NOC 2021 Version 1.0 and ISCO-08 will be developed and published; it is not out. What exists is an archived ISCO 2008 to NOC 2011 concordance, and since NOC 2011 and NOC 2016 share a structure, the only supported route from a NOC 2021 code to ISCO-08 runs NOC 2021 to NOC 2016 to NOC 2011 to ISCO-08. Three hops, one of them archived, each losing precision. Statistics Canada also warns that conceptual and structural differences between the two systems limit comparability, so treat any NOC-to-ISCO mapping as a judgement rather than a join.

And the practical one: job ads do not carry NOC codes. Postings collected from company career sites, LinkedIn or Indeed carry a free-text title written by a recruiter. If you want occupation codes on live postings, somebody has to infer them.

NOC 2026 lands in December

Statistics Canada consulted on a revision and published the results report: NOC 2026 Version 1.0 is scheduled for public release in December 2026. Eighteen unit groups take real structural changes - creations, splits, transfers, takeovers - and 147 take content-only changes to titles, definitions, job-title examples, duties and employment requirements, for 165 unit groups impacted in total. The report describes this as a first attempt to make the classification more responsive to labour-market shifts between the standard revision cycles, which is another way of saying to expect it again.

The consequence for anyone storing these codes is simple and usually skipped: store the version next to the code. A bare 21232 in a database column is ambiguous the moment two versions are in circulation, and Canadian pipelines have already lived through that once with the 2016-to-2021 switch.

What Canadian postings look like once they are coded

JobsPipe codes every posting it collects to ISCO-08 rather than NOC, for the reason above: ISCO is the one occupation system that holds across every country in the index. Here is the Canadian slice, queried the day this post published - 253,731 active postings across 60,074 companies. 77.0% carry an ISCO occupation code, 92.5% carry at least one normalised skill, 56.3% an ISIC industry division, and 42.2% a salary parsed out of the ad itself. Those coded postings land in 414 distinct ISCO unit groups out of the 433 that exist, so the Canadian market fills almost the entire classification.

The ten largest occupation groups, by live posting count:

2512  Software Developers                                 10,813
1221  Sales and Marketing Managers                         6,611
3322  Commercial Sales Representatives                     6,248
1219  Business Services and Administration Managers NEC    5,792
5223  Shop Sales Assistants                                5,622
2421  Management and Organization Analysts                 4,465
2431  Advertising and Marketing Professionals              3,947
1211  Finance Managers                                     3,713
2411  Accountants                                          3,588
8332  Heavy Truck and Lorry Drivers                        3,473

Two sources carry most of the volume - LinkedIn at 125,461 postings and Indeed at 120,965 - with an ATS tail behind them: Workday 1,834, Workable 1,666, Greenhouse 1,563, Lever 955, Ashby 677. That mix matters for coding quality, because ATS postings arrive structured while aggregator postings arrive as prose.

Going from a NOC code to live results

When a stakeholder hands you NOC codes, the working bridge is the unit group title and its definition, not a lookup table, because there is not one to use. Four worked examples, with the live Canadian counts attached:

NOC 21230  Computer systems developers and programmers
NOC 21231  Software engineers and designers
NOC 21232  Software developers and programmers
           -> ISCO 2512  Software Developers                    10,813

NOC 11100  Financial auditors and accountants
           -> ISCO 2411  Accountants                             3,588

NOC 73300  Transport truck drivers
           -> ISCO 8332  Heavy Truck and Lorry Drivers           3,473

NOC 64100  Retail salespersons and visual merchandisers
           -> ISCO 5223  Shop Sales Assistants                   5,622

Look at the shape of the first one. Three NOC unit groups collapse into a single ISCO group, because NOC separates computing work by what is being built and by TEER, while ISCO keeps developers together and splits analysts out. Any real NOC-to-ISCO mapping is many-to-one in places and one-to-many in others, and it is worth writing yours down as data rather than burying it in a query.

Once you are on ISCO, the query is a filter. Canadian software roles posted in the last week:

curl https://api.jobspipe.dev/v1/jobs/search \
  -H "Authorization: Bearer jp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "job_country_code_or": ["CA"], "occupation_code_or": ["2512"], "posted_at_max_age_days": 7 }'

Every result carries occupation_code and occupation_label next to the raw and normalized_title, plus isic_division for the employer’s industry and the parsed salary fields where the ad discloses one. Filter with skills_or when the NOC group is broader than the roles you want, and with job_title_or when the group is narrower.

Which system to standardise on

If your data is Canada-only and your users are Canadian - immigration products, provincial programmes, anything that has to talk to a government form - code to NOC, because everything downstream expects it. If your data crosses a border, code to ISCO-08 and keep NOC as a display mapping you own, versioned, and expect to revisit in December. The same rule holds on the industry axis: NAICS inside North America, ISIC the moment the data leaves it.

Live Canadian postings, coded by occupation, industry and skill - with salary where the ad discloses it.

Get a free API key