Guide · Control Tower for Claude

Claude Use by Department: What Public Data Shows

DuckDB2026-10-18Script ran before publishing

The short answer

IT, software and data work makes up about 37% of the conversations in Anthropic’s public Claude.ai data (release dated 2025-02-10), far ahead of any other department. Marketing, media and creative is next at about 11%. This is public-data evidence from Free and Pro conversations. It is not a result from any enterprise rollout.

What you will have at the end

One Python file, departments_claude_usage.py, that fetches Anthropic’s public Economic Index files itself, maps every task that has an occupation to a department, checks its own result and writes two CSV files: departments_claude_usage.csv (13 departments and an “Other occupations” group, plus the share that no occupation could take) and major_groups_claude_usage.csv (the 22 occupation groups against US employment). It needs only the duckdb Python module, no account and no API key. It does not call Claude.

The question behind it is one a CDO can expect in a Claude rollout: which departments use it, and for what? Anthropic’s Economic Index does not answer that by department, because its categories are occupations. We did the translation in the open, so you can change it.

Method

The data

The Anthropic Economic Index, folder release_2025_02_10, pinned to dataset commit 4e5f69fab13a9c3f7d0dcc31a6f893a9818738f6, at huggingface.co/datasets/Anthropic/EconomicIndex (read 2026-10-18). The dataset card says “Data released under CC-BY, code released under MIT License”; its metadata header says license: mit. We credit Anthropic either way. We use four files from the folder:

  • onet_task_mappings.csv: the percentage of conversations involving each O*NET task (3,514 rows).
  • onet_task_statements.csv: O*NET’s task text and the occupation code that lists each task.
  • SOC_Structure.csv: the occupation hierarchy, used for the group titles.
  • bls_employment_may_2023.csv: US employment by occupation group, from the Bureau of Labor Statistics.

Per Anthropic, the analysis covers about one million Free and Pro conversations on Claude.ai and excludes API, Team and Enterprise usage. Anthropic used its automated analysis tool Clio to match each conversation to the O*NET task that best fit Claude’s role, so researchers did not read the conversations (Anthropic: The Anthropic Economic Index (read 2026-10-18)). The pages we read do not state the period the conversations were collected in. The folder name dates the release, not the conversations.

From task to department

  1. Each O*NET task carries a share of conversations. The 3,514 shares add up to 100%.
  2. A task can be listed by several occupations. We split its share equally across the occupation codes that list it. Anthropic’s method for this step may differ, and the choice matters for tasks that many occupations share (see Limits).
  3. Each occupation code goes to a department by the longest matching prefix in the table below. We wrote this table. It is a judgment, not a fact about your company: an “Operations” occupation in the SOC code list is not your Operations department.
  4. Shares are summed per department. One task in the file is the text none, which has no occupation; its share is reported on its own line, not hidden.
The mapping, as written in the script (longest prefix wins)
Occupation-code prefixDepartmentCovers
11Executive managementManagement Occupations
11-2011Marketing, media & creativeadvertising and promotions managers
11-2021Marketing, media & creativemarketing managers
11-2022Salessales managers
11-2031Marketing, media & creativepublic relations and fundraising managers
11-3Operations & business support
11-3021IT, software & datacomputer and information systems managers
11-3031Finance & accountingfinancial managers
11-3121Human resourceshuman resources managers
13Operations & business supportBusiness and Financial Operations Occupations
13-1071Human resourceshuman resources specialists
13-1075Human resourceslabor relations specialists
13-1161Marketing, media & creativemarket research analysts and marketing specialists
13-2Finance & accounting
15IT, software & dataComputer and Mathematical Occupations
17EngineeringArchitecture and Engineering Occupations
19Research & scienceLife, Physical, and Social Science Occupations
21Other occupationsCommunity and Social Service Occupations
23LegalLegal Occupations
25Education & trainingEducational Instruction and Library Occupations
27Marketing, media & creativeArts, Design, Entertainment, Sports, and Media Occupations
29HealthcareHealthcare Practitioners and Technical Occupations
31HealthcareHealthcare Support Occupations
33Other occupationsProtective Service Occupations
35Other occupationsFood Preparation and Serving Related Occupations
37Other occupationsBuilding and Grounds Cleaning and Maintenance Occupations
39Other occupationsPersonal Care and Service Occupations
41SalesSales and Related Occupations
43Customer support & administrationOffice and Administrative Support Occupations
43-3Finance & accountingfinancial clerks
45Other occupationsFarming, Fishing, and Forestry Occupations
47Other occupationsConstruction and Extraction Occupations
49Other occupationsInstallation, Maintenance, and Repair Occupations
51Other occupationsProduction Occupations
53Other occupationsTransportation and Material Moving Occupations

The prefixes are Standard Occupational Classification (SOC) codes, the system O*NET builds on. Edit the DEPARTMENT_BY_PREFIX dictionary at the top of the script, run it again and every number below changes with it.

The core of the script

DuckDB reads the CSV files straight from the pinned URL. This is the step that assigns codes to departments and splits each task’s share:

Python and SQL: map codes, split shared tasks (excerpt of the script)
con.execute("""
CREATE TABLE occ_dept AS
SELECT DISTINCT code,
       coalesce(first(department ORDER BY length(prefix) DESC), 'UNMAPPED') AS department
FROM (SELECT DISTINCT "O*NET-SOC Code" AS code FROM statements) o
LEFT JOIN dept_map d ON o.code LIKE d.prefix || '%'
GROUP BY code""")

con.execute("""
CREATE TABLE task_occ AS
SELECT DISTINCT lower(trim(Task)) AS task, "O*NET-SOC Code" AS code FROM statements""")

con.execute("""
CREATE TABLE weighted AS
SELECT m.task_name, m.pct, t.code, d.department, t.task AS matched,
       m.pct / greatest(count(t.code) OVER (PARTITION BY m.task_name), 1) AS weight
FROM mappings m
LEFT JOIN task_occ t ON lower(trim(m.task_name)) = t.task
LEFT JOIN occ_dept d ON t.code = d.code""")

DuckDB reads CSV files over HTTPS with read_csv (DuckDB: CSV import (read 2026-10-18)). We ran this version:

python3 -c "import duckdb;print(duckdb.__version__)"
1.5.6

The script checks its own result

Before it writes a CSV, the script checks that the department shares sum to 100%, that the number of rows loaded equals the number in the source file, that no task appears twice, that each task’s share is handed out in full across its occupations, that every prefix in the mapping table matches a real occupation code (so a prefix that matches no real code is caught, not silently ignored), that every occupation code maps to a department, and that the only task with no occupation is the recorded none. If any check fails it prints the failure, writes no CSV and exits with code 1.

Run 1. The measurement

Run as published (python3 departments_claude_usage.py), all seven checks passed and the script wrote both CSV files. The first 26 lines of what it printed:

Output from our run: checks, then share of conversations by department
Checks
  [PASS] shares sum to 100%: departments total 100.000000%
  [PASS] mapping rows match the source file: 3514 rows loaded, 3514 in the source file
  [PASS] no duplicate task in the mapping file: 0 duplicated task name(s)
  [PASS] every task's share is spread in full: largest gap between a task's share and what its occupations received: 4.16e-17
  [PASS] every department prefix matches a real code: all prefixes used
  [PASS] every occupation code maps to a department: 974 of 974 codes mapped, 0 unmapped
  [PASS] tasks with no occupation are only the recorded 'none': 1 task(s) without an occupation, carrying 0.4816% of conversations

Share of Claude conversations by department (Economic Index release_2025_02_10)
department                                  share %  tasks  occ.
IT, software & data                           37.18    389    34
Marketing, media & creative                   11.18    297    47
Education & training                           9.28    263    61
Other occupations                              7.94    534   220
Customer support & administration              7.58    249    48
Research & science                             6.35    337    58
Engineering                                    4.49    298    64
Finance & accounting                           3.45    203    28
Executive management                           2.94    197    34
Operations & business support                  2.87    218    39
Healthcare                                     2.84    303    88
Sales                                          2.30    169    24
Legal                                          0.89     36     8
Human resources                                0.22     26     3
No occupation (task recorded as none)          0.48      1     0

Result table: share of Claude conversations by department

The same numbers, with each department’s single largest task. The largest task is the O*NET task with the biggest share inside that department after the equal split. The task text is O*NET’s, in lower case as the dataset has it.

DepartmentShare of conversations, %TasksOccupation codesLargest single task (share, %)
IT, software & data37.1838934modify existing software to correct errors, to adapt it to new hardware, or to upgrade interfaces and improve performance. (4.794%)
Marketing, media & creative11.1829747prepare, rewrite and edit copy to improve readability, or supervise others who do this work. (1.004%)
Education & training9.2826361select and edit documents for publication and display, applying knowledge of subject, literary expression, and presentation techniques. (1.406%)
Other occupations7.94534220modify existing programs to enhance efficiency. (0.783%)
Customer support & administration7.5824948perform routine system administrative functions such as troubleshooting, back-ups, and upgrades. (1.812%)
Research & science6.3533758interact with clients to assist them in gaining insight, defining goals, and planning action to achieve effective personal, social, educational, and vocational development and adjustment. (0.285%)
Engineering4.4929864analyze information to determine, recommend, and plan layout, including type of computers and peripheral equipment modifications. (0.427%)
Finance & accounting3.4520328explain general financial topics to clients, such as credit report ratings, bankruptcy laws, consumer protection laws, wage attachments, or collection actions. (0.234%)
Executive management2.9419734analyze operations to evaluate performance of a company or its staff in meeting objectives or to determine areas of potential cost reduction, program improvement, or policy change. (0.241%)
Operations & business support2.8721839analyze organizational, occupational, and industrial data to facilitate organizational functions and provide technical information to business, industry, and government. (0.345%)
Healthcare2.8430388prepare comprehensive interpretive reports of findings. (0.075%)
Sales2.3016924answer customers' questions, and provide information on procedures or policies. (0.158%)
Legal0.89368use mediation techniques to facilitate communication between disputants, to further parties' understanding of different perspectives, and to guide parties toward mutual agreement. (0.180%)
Human resources0.22263contact job applicants to inform them of the status of their applications. (0.037%)
No occupation (task recorded as none)0.4810none (0.482%)

Download: departments_claude_usage.csv.

The same data by occupation group, against US employment

This table skips our department judgment. It uses only Anthropic’s occupation groups and the Bureau of Labor Statistics employment file in the same folder. The ratio is the group’s share of Claude conversations divided by its share of US employment. Above 1 means the group appears in Claude conversations more than its headcount would suggest. The shares do not reach 100% because the none task has no group.

Occupation groupClaude conversations, %US employment, %Ratio
15 Computer and Mathematical Occupations37.053.4110.87
27 Arts, Design, Entertainment, Sports, and Media Occupations10.231.397.37
25 Educational Instruction and Library Occupations9.285.761.61
43 Office and Administrative Support Occupations7.8312.200.64
19 Life, Physical, and Social Science Occupations6.350.916.94
13 Business and Financial Operations Occupations5.906.640.89
17 Architecture and Engineering Occupations4.491.672.69
11 Management Occupations4.466.910.65
51 Production Occupations2.925.780.51
29 Healthcare Practitioners and Technical Occupations2.576.110.42
41 Sales and Related Occupations2.268.810.26
21 Community and Social Service Occupations2.061.591.30
23 Legal Occupations0.890.821.09
49 Installation, Maintenance, and Repair Occupations0.723.940.18
35 Food Preparation and Serving Related Occupations0.538.720.06
39 Personal Care and Service Occupations0.462.000.23
47 Construction and Extraction Occupations0.424.100.10
33 Protective Service Occupations0.382.310.16
53 Transportation and Material Moving Occupations0.289.060.03
31 Healthcare Support Occupations0.274.650.06
37 Building and Grounds Cleaning and Maintenance Occupations0.102.920.03
45 Farming, Fishing, and Forestry Occupations0.070.280.26

Download: major_groups_claude_usage.csv. Anthropic states that computer and mathematical tasks are 37.2% of queries (Anthropic: The Anthropic Economic Index (read 2026-10-18)). Our figure for that group is 37.05%. We did not reconcile the 0.15-point gap.

What the numbers say

  • One group dominates. Computer and mathematical occupations take 37.05% of conversations and hold 3.41% of US jobs, a ratio of 10.87. Mapped to departments, IT, software and data is 37.18%, the largest by 26 points.
  • Arts, design and media is second. Arts, design, entertainment, sports and media occupations take 10.23% against 1.39% of jobs (ratio 7.37). In our department table, Marketing, media and creative is 11.18%. Its largest single task is editing copy for readability, which is 1.004% of all conversations.
  • Sales, management and office support are under-represented. Sales and related occupations are 2.26% of conversations and 8.81% of jobs (ratio 0.26). Management is 4.46% against 6.91% (0.65). Office and administrative support is 7.83% against 12.20% (0.64).
  • Finance, legal and HR are small. Finance and accounting is 3.45%, Legal 0.89%, Human resources 0.22%. HR rests on three occupation codes, so read it as “barely visible in this data”, not as a measure of HR’s real use.

For a rollout, treat the table as a rough guide, not a benchmark. It shows what people in this public sample asked Claude to do. It does not predict your own departments, and it says nothing about whether the use paid off.

Run 2. A planted fault the checks must catch

The same script with the --fault flag changes its input after loading. It duplicates five rows of the task-share file and adds one occupation code, 99-9999.00, that no department prefix covers. Nothing about the source files changes; the faults are made in memory. The script must say so and refuse to write a CSV.

Output from our run: python3 departments_claude_usage.py --fault (first 8 lines)
Checks
  [PASS] shares sum to 100%: departments total 100.000000%
  [FAIL] mapping rows match the source file: 3519 rows loaded, 3514 in the source file
  [FAIL] no duplicate task in the mapping file: 5 duplicated task name(s)
  [PASS] every task's share is spread in full: largest gap between a task's share and what its occupations received: 4.16e-17
  [PASS] every department prefix matches a real code: all prefixes used
  [FAIL] every occupation code maps to a department: 974 of 975 codes mapped, 1 unmapped
  [PASS] tasks with no occupation are only the recorded 'none': 1 task(s) without an occupation, carrying 0.4816% of conversations

Three of the seven checks failed: the row count (3,519 loaded against 3,514 in the source), the duplicate task names, and the unmapped occupation code. The script exited with code 1 and wrote no CSV (its last line read 3 CHECK(S) FAILED: no CSV written). The sum-to-100% check still passed, because a duplicated task halves each copy’s weight when the share is split, so the total stays at 100%. That is why the script does not rely on one check.

Limits

  • This is not a client result and not an enterprise result. It describes Anthropic’s published sample of Claude.ai Free and Pro conversations. API, Team and Enterprise usage is excluded (Anthropic (read 2026-10-18)). Companies that roll out Claude to chosen departments may look nothing like it.
  • It is an old snapshot. The release is dated 2025-02-10. The dataset card lists later releases, which we did not use, so the picture may have moved.
  • Occupation is not department. A person in a Marketing department may hold an occupation we map elsewhere, and the reverse. The mapping table is our judgment. Change it and the department shares change.
  • The equal split is a choice. Many tasks are listed by dozens of occupations. For example, the largest “Other occupations” task is a generic program-modification task, which the equal split spreads across occupations outside IT. Another split rule would move shares between departments.
  • Conversations are not outcomes. The data counts what people asked Claude to do. It does not say whether the answer was used, whether time was saved or whether the work was better.
  • Coarse by construction. Departments are inferred from O*NET occupations, not recorded. HR is three occupation codes. The shares are rounded in the CSV to two decimals.
  • We took Anthropic’s mapping as given. We did not check how well each conversation was matched to its task.

Tested on

Tested on

Platform
DuckDB 1.5.6, run from Python 3
Edition
Open-source DuckDB library (pip install duckdb)
Date
2026-10-18
Dataset
Anthropic Economic Index, folder release_2025_02_10, commit 4e5f69fab13a9c3f7d0dcc31a6f893a9818738f6. License per the dataset card: CC-BY for the data, MIT for code. huggingface.co/datasets/Anthropic/EconomicIndex
Code
departments_claude_usage.py
Result
departments_claude_usage.csv, major_groups_claude_usage.csv

The script pins the commit, sorts every output and uses no random numbers, so another run on the same files gives the same numbers.

When this is not enough

  • You need your own departments. Public occupation data cannot tell you what your Finance team does with Claude. Claude’s own usage analytics for Team and Enterprise plans cover who is active, with a Members view, a Groups view, spend reports you can export and an analytics API. Its help article does not describe a breakdown by department, and it is silent on what the work was about (Claude Help Center: usage analytics for Team and Enterprise plans (read 2026-10-18)).
  • You need to know whether it pays off. Conversation counts show adoption, not value. Deciding that needs a before-and-after on a measure your department already tracks, which no public file holds.
  • You need a current picture. This is one release. Rerun the script on a newer release folder if its file names match, and check the result against the seven built-in checks.

See how your own people use Claude.

Public data shows what people use Claude for in general. It can’t tell you what your own people do with it.

Control Tower for Claude shows adoption, use cases, cost and governance across your organization. To split by department, it uses an HR file that lists each employee and their department.

See what Control Tower shows