How to Map SOC Codes to Your Internal Job Titles
Accurate salary ranges start with mapping each internal title to the right SOC code. Here's how to do it without guesswork.
Rovaryn Digital · May 14, 2026

Why the SOC Code Is the Foundation of a Defensible Salary Range
Your employment attorney asked for documentation of your compensation methodology last Tuesday. You pulled up the salary ranges you posted for three open roles — Customer Success Manager, Growth Marketing Lead, and Senior Dev — and realized each one was anchored to a different source: one to a Glassdoor snapshot from eighteen months ago, one to what you paid the last person who held the role, and one to a number someone remembered from a conference. None of them trace back to a named dataset with a reference year and a geography.
That documentation gap is exactly what a regulator or plaintiff's counsel will probe first. The starting point for closing it is not the dollar figure — it is the occupational classification that unlocks the dollar figure: the Standard Occupational Classification (SOC) code.
By the end of this guide, you will be able to map SOC codes to job titles across your organization, pull the correct Bureau of Labor Statistics (BLS) wage percentiles for each role, and document the match in a format you can hand to counsel or attach to a compliance audit.
What a SOC Code Is and Why It Matters for Salary Ranges
The Standard Occupational Classification (SOC) is a federal taxonomy maintained by the U.S. Office of Management and Budget and used across federal statistical agencies, including the Bureau of Labor Statistics. It groups workers into categories based on the work they actually perform — not on the title an employer invented for that worker.
SOC codes follow a six-digit hierarchical structure:
- The first two digits identify the major group (e.g., 13 = Business and Financial Operations).
- The middle two digits identify the minor group (e.g., 13-20 = Financial Specialists).
- The final two digits identify the detailed occupation (e.g., 13-2011 = Accountants and Auditors).
The reason this matters for pay transparency compliance is direct: the BLS Occupational Employment and Wage Statistics (OEWS) program — which produces employment and wage estimates annually for over 800 occupations from a sample of approximately 1.1 million establishments (BLS, May 2025) — is organized entirely by SOC code. When you want to know what the market pays for a role in your state, the OEWS is the primary public, auditable source. But you can only pull the right row from that dataset if you have first matched your internal title to the correct SOC code.
Without that match, you are either pulling the wrong data or pulling no data at all.
For a deeper walkthrough of how to read and pull figures from the OEWS once you have your SOC codes, see How to Read BLS OEWS Data.
Step 1 — Inventory Your Internal Job Titles
Before you open the BLS search tool, gather a clean list of every distinct job title in your organization. "Distinct" means the title as it appears on the offer letter and the org chart — not a shorthand managers use in Slack.
A useful inventory captures five fields for each title:
- Job title (verbatim, as written)
- Department or function
- Primary duties (two to four bullet points — what does this person actually do most of the time?)
- Level or band (individual contributor, manager, director, VP, etc.)
- Current headcount in this title
The primary-duties column is the most important and the most skipped. Fancy internal titles — "Chief of Staff," "Growth Hacker," "People Scientist" — rarely map cleanly to a single SOC code. The work the person does is what drives the match, not the label.
Keep this inventory in a spreadsheet. You will extend it with two more columns in Step 3: SOC Code and SOC Title (the BLS label for that code).
Step 2 — Use the BLS SOC Search Tools to Find Candidate Codes
The BLS publishes two tools that together cover almost any matching scenario:
A. The O*NET OnLine occupational search at onetonline.org is the fastest starting point. Type a plain-language description of the role — "manages social media campaigns and paid digital advertising" — and ONET returns a ranked list of occupations with their linked SOC codes and detailed task lists. ONET is maintained by the U.S. Department of Labor and is keyed to the same SOC taxonomy the OEWS uses.
B. The BLS OES occupational search at bls.gov/oes allows you to browse or search the full OEWS occupation list directly. Once you have a candidate SOC code from O*NET, confirm it exists in the OES series and verify the published wage percentiles for your geography.
Work through this sequence for each title in your inventory:
- Type a duty-based description (not the internal title) into O*NET's keyword search.
- Review the top three to five candidate occupations. For each, click through to the "Tasks" tab — does the task list match what this role actually does most of the time?
- Note the SOC code for the best-fit candidate.
- Cross-check that code in the BLS OES to confirm wage data is available at the national, state, or metro level you need.
Step 3 — Apply the Duty-Match Test Before You Commit
The most common SOC-mapping error is matching on the most prominent word in a job title rather than on primary duties. A few examples illustrate how often these diverge:
| Internal Title | Tempting (Wrong) Match | Correct Match (Duty-Based) |
|---|---|---|
| Customer Success Manager | 11-1021 General & Operations Managers | 43-4051 Customer Service Reps or 41-3099 Sales Reps (depending on whether the role is predominantly retention/support or upsell/expansion — examine duties) |
| IT Manager | 15-1299 Computer & Info Specialists, All Other | 11-3021 Computer & Info Systems Managers (if the role supervises staff and manages systems budgets) |
| Marketing Coordinator | 11-2021 Marketing Managers | 13-1161 Market Research Analysts (if primary duties are campaign analytics and reporting, not strategy leadership) |
| People Operations Generalist | 11-3121 HR Managers | 13-1071 HR Specialists (if the role has no direct reports and focuses on benefits admin, onboarding, and policy) |
The test to apply: What does this person spend the majority of their working hours doing? If the answer aligns with the SOC definition's "principal work activities," the match holds. If you are splitting duties across two clear SOC codes (e.g., a hybrid DevOps/SRE role), choose the code that covers the plurality of hours and document the judgment.
A note on levels. The BLS SOC generally distinguishes between individual-contributor occupations and managerial/supervisory occupations. Mapping a people-manager to an individual-contributor SOC code — or vice versa — will produce a wage reference that is meaningfully off from the market for that role. Always check whether "manager," "supervisor," or "director" in the title reflects a genuine supervisory function (people-managing) or is simply a seniority label for a senior individual contributor.
Step 4 — Document the Mapping Decision, Not Just the Output
Here is the part most HR generalists skip: the mapping decision itself needs to be documented, not just the resulting dollar figure.
An employment attorney or auditor asking for documentation of your compensation methodology is not satisfied by a spreadsheet showing "Marketing Manager — $95,000–$115,000." They want to know why that range was the right one. The audit trail includes:
- The SOC code and BLS OES title you matched to the role
- The primary duties that drove the match (the two-to-four bullets from your inventory)
- The BLS OEWS reference year and geography (e.g., "BLS OEWS, May 2024, Washington State")
- The percentiles you used to construct the range (e.g., the 25th and 75th percentiles as the band floor and ceiling, or the median as the midpoint — and why)
- Any judgment call you made (split-duty role, non-managerial title at a managerial compensation level, a metro-vs.-state geography choice)
This documentation is what transforms a salary range from a number you posted to a methodology you can defend.
For the full framework on turning those OEWS percentiles into a structured range — including how to set a range spread (the width of a salary band expressed as a percentage of the midpoint) and calculate a midpoint (the salary at the center of the band, typically anchored to a market percentile) — see How to Build a Salary Range.
Special Cases: Hybrid Roles, Emerging Titles, and Multi-Location Teams
Hybrid or blended roles. When a role genuinely spans two SOC codes — a "Marketing Data Analyst" who is half marketing analytics and half campaign management — choose the code covering the majority of duties, document the split, and note in your methodology that the secondary function was considered but did not constitute the plurality of working hours.
Emerging or highly customized titles. Titles like "AI Product Strategist" or "Head of Community-Led Growth" will not map to a single SOC code cleanly because the SOC taxonomy is updated on a slower cycle than the labor market invents titles. The practical approach: identify the closest SOC code based on the work the person actually does (product management? marketing management? operations?), document the absence of a direct match, and note that the role's compensation was benchmarked against the closest available occupation. That documentation of the judgment call is itself part of a defensible methodology.
Multi-location and remote teams. The OEWS publishes wage data at the national, state, and metropolitan statistical area (MSA) level. For remote roles that trigger pay-transparency obligations in more than one state, you will need to pull OEWS data for each relevant geography and decide — and document — which geography governs the range. For roles that must comply with laws in multiple states simultaneously, this is worth a conversation with employment counsel about which jurisdictional anchor is appropriate.
If your organization employs workers in Canada, note that the Canadian equivalent of the SOC is the National Occupational Classification (NOC), maintained by Employment and Social Development Canada and used by Statistics Canada for wage data. The two taxonomies are distinct — a SOC code and a NOC code are not interchangeable, and BLS OEWS wage figures (in USD) should never be compared directly to Statistics Canada NOC wage figures (in CAD) as a single series. For a full comparison of how the two systems work and where they diverge, see NOC Codes vs. SOC Codes.
To explore OEWS-grounded wage data organized by occupation category, the Occupation Salary Guides Hub covers individual SOC codes with methodology notes.
What Good SOC Mapping Looks Like in Practice
A worked example, using figures from the BLS Occupational Outlook Handbook (May 2024 reference):
Internal title: Senior Accountant
Primary duties: Prepares financial statements, manages month-end close, reviews junior staff work, no direct budget authority over headcount.
SOC match: 13-2011 Accountants and Auditors
Duty-match test: The BLS task list for 13-2011 includes examining financial records, computing taxes, and assessing financial operations — consistent with this role's actual work. The role does not manage a team or hold budget authority, which distinguishes it from a Finance Manager classification.
BLS OEWS data (May 2024, national): median $81,680; 10th percentile $52,780; 90th percentile $141,420 (BLS OOH, May 2024).
Worked example — constructing a range: Using a 50% range spread centered on the national median: midpoint = $81,680; minimum = midpoint ÷ 1.25 = $65,344; maximum = midpoint × 1.25 = $102,100 (rounded). This is illustrative arithmetic using BLS national figures — a real range would use state or metro OEWS data and the organization's chosen spread methodology, documented in writing.
Documentation note in the mapping log: "Matched to SOC 13-2011 based on primary duties (financial statement prep, month-end close). Role has no headcount management authority; Finance Manager (11-3031) was considered and excluded. Range anchored to BLS OEWS May 2024, [state] data. 50% spread chosen based on mid-career individual-contributor band policy. Review at next OEWS release."
That entry is the audit trail.
Start With a Structured Workbook
Doing this mapping manually across twenty, fifty, or a hundred job titles in a one-off spreadsheet is time-consuming and produces an audit trail that is hard to maintain as titles change and new OEWS releases come out.
The Salary Range Builder Workbook gives you a pre-structured template — title inventory, SOC mapping columns, OEWS-percentile inputs, range-spread calculations, and a methodology-documentation tab — designed so that your mapping decisions are captured in the same place as the outputs. It is the fastest way to get from a raw title list to a documented, defensible set of salary ranges without rebuilding the structure from scratch each cycle.
If you want to see how Salary Range Builder handles SOC mapping, OEWS data pulls, and compliance-formatted range outputs in the software itself, the features overview covers the full workflow.
Download the Salary Range Builder Workbook at salaryrange.com/store/salary-range-builder-workbook and work through your next title audit with the documentation structure already in place.
Get new guides in your inbox
One email when a new article goes live. Unsubscribe with one click.


