From 111,109 OSHA accident and injury narratives, TaskMatch retrieved 6,187 distinct O*NET task IDs. Removing 127 emergency-response task IDs left 6,060 candidates for evidence review. Review with gpt-6-astra retained 610 incident-linked tasks: each had at least one narrative supporting the task’s essential action, object and defining qualifications, and showing its involvement in the incident—performed by the injured worker or by someone whose activity directly exposed or harmed them. We map these tasks to occupations using job postings and compare the resulting indicators with occupational injury and fatality rates.
Join the retained task IDs to occupation-task profiles ↓
C → D Occupation-task profiles → published injury rates
Occupation
Task prevalence
Nonfatal rate SOII · per 10,000 FTE
Fatal rate CFOI · per 100,000 FTE
Task counts are pre-review retrieval occurrences; report percentages use distinct investigation IDs (the historical extraction file’s pct_investigations field instead divided occurrences by reports and is not used here). The source-corpus count is distinct investigation IDs, not injured workers or AI-reviewed reports; summaries include fatal and nonfatal incidents. Task assignment not in O*NET means O*NET 27.2 does not assign this exact task ID to the occupation; similar work may appear under another task ID. Research links meet the five-posting threshold; eligible unreviewed links are retained. This demonstration releases up to five occupations per incident-linked task in a separate data file; the main occupation explorer uses its own disclosure limits. Display limits do not change benchmark scores. Up to five occupations shown, ordered by design-weighted task prevalence, not injury rate. Prevalence is the design-weighted percentage of job-months containing the task (October 2024–September 2025); its denominator includes taskless job-months. The smaller incidence-share figure divides by all retained task mentions and is the contribution used in the bundle benchmark. Counts and underlying posting records are not distributed.
Benchmark the same 610-task bundle using two occupation maps
Occupation-task profiles and O*NET assignments receive the same incident-linked task list. Compare how each occupation’s bundle share aligns with published injury rates.
For CFOI, the posting incidence association falls from 0.515 across 47 groups to 0.015 after removing two-digit occupational-family mean ranks. OSHA is also one of CFOI’s sources. Because OSHA is one of CFOI’s sources, the comparison is not fully independent.
Incidence versus RCA sensitivity
With the same task bundle and occupation samples, incidence-share scores have higher Spearman correlations than normalized RCA-share scores for overall SOII (0.545 versus 0.398), CFOI (0.515 versus 0.367), and 32 of 33 SOII categories. Explosions/fires is the exception. The task bundle and comparison samples are fixed; this is not held-out model selection.
RCA compares each task’s incidence share within an occupation with its share across all occupations. The tested bundle score is the sum of RCA for bundle tasks divided by the sum of RCA for all retained tasks, pooling specialties before calculation. It is not the occupational-relatedness cosine score.
Spearman correlations across occupations, separately for each published SOII category. Posting scores use design-weighted task incidences; O*NET scores use distinct assigned tasks. Both use the same 610-task bundle.
All category results · table
Private industry, 2023–24; DART cases (days away, restricted duty or job transfer). Each row uses the same occupations for both maps, but availability differs between rows. Missing rates are excluded, not zero. Event totals and their subcategories overlap and must not be summed. Differences are descriptive, not tests of statistical significance. Categories require at least 10 comparable occupations and a varying published rate.
AI-reviewed membership, not human validation. Evidence retrieval was purposive and unequal across tasks. Unconfirmed does not mean safe. Original retrieval counts do not establish a ranking of injury risk.
Compare tasks, activities and work-context ratings
These comparisons are reported in SI Appendix, Table S13. Every measure uses the same occupations within an outcome. Additional task-only comparisons below use broader samples and are not the same comparison.
Common-sample correlations · table and download
Indicator or rating
Fatalities N=45
Total DART N=522
Contact N=417
Falls N=430
Lower falls N=227
Posting task-incidence share
0.504
0.546
0.619
0.471
0.531
O*NET assigned-task share
0.253
0.442
0.431
0.397
0.428
Posting distinct-DWA share
0.647
0.557
0.625
0.458
0.508
O*NET distinct-DWA share
0.367
0.595
0.630
0.482
0.467
Exposed to Hazardous Conditions
0.295
0.365
0.394
0.306
0.478
Exposed to Hazardous Equipment
0.471
0.452
0.526
0.363
0.486
Exposed to High Places
0.406
0.368
0.393
0.346
0.597
Spend Time Climbing Ladders, Scaffolds, or Poles
0.352
0.380
0.407
0.368
0.588
Spend Time Keeping or Regaining Balance
0.408
0.590
0.529
0.520
0.436
Exposed to Minor Burns, Cuts, Bites, or Stings
0.361
0.545
0.586
0.448
0.452
In an Open Vehicle or Equipment
0.575
0.402
0.450
0.352
0.555
In an Enclosed Vehicle or Equipment
0.476
0.127
0.044
0.142
0.375
Exposed to Contaminants
0.449
0.496
0.529
0.413
0.500
Deal With Physically Aggressive People
-0.166
0.159
-0.043
0.199
-0.142
Entries are Spearman rank correlations. Bold marks the largest value in a column, not a statistically significant difference. DART means days away from work, restricted duty or job transfer. Contact and falls are subsets of DART; lower falls means falls to a lower level.
The first four indicators use the same 610-task bundle. Posting task shares use design-weighted task incidences; O*NET task shares count distinct assigned task IDs. Both detailed work activity (DWA) indicators count distinct activities. The remaining rows are individual O*NET work-context ratings, not fitted scores or measures derived from the bundle.
The same task bundle, joined through occupation-task profiles or O*NET assignments. All 610 task IDs and descriptions also match O*NET 27.2, used by the occupation-task profiles.
Point labels show the occupation, rate, and both profile shares.
Explore tasks and injuries together in an occupation
Join incident-linked tasks found in job postings to published occupational injury patterns. Select a task to inspect its OSHA evidence. The connection is through the occupation; these data do not attribute a particular injury to a task.
Injury bars: rates per 10,000 full-time-equivalent workers, annualized over 2023–24; private industry. Includes cases with days away, restricted duty or job transfer (DART). Rankings include only published named categories; “all other” and unpublished categories are reported separately. Event categories use one level of the hierarchy.
Consequences among reported cases
Counts span both years. Median duration and the share with 31+ days describe consequences conditional on a reported case, not a worker’s probability of injury. Days away reflect job demands and return-to-work arrangements as well as injury severity. Suppressed cells are unavailable, not zero.
Posting incidence shares use occupation-task profiles after the support-five filter and recorded review exclusions; eligible never-reviewed links remain. Distinct-task shares count each retained task once. O*NET scores always use distinct assigned-task shares. Neither score uses RCA or occupational cosine similarity.
SOII measures nonfatal injuries and illnesses. Its R66 table also reports median days and counts in duration bands, including 31 or more days; these are severity-related measures, not fatality rates. Missing rates are not zero. SOII uses exact six-digit codes; CFOI uses disjoint published groups. Rates and profiles describe different populations. These are descriptive associations, not task-specific injury probabilities. Variance accounted for is in-sample R² from ordinary least squares with an intercept and one bundle-share predictor, giving occupations equal weight. Raw-rate and natural-log-rate R² refer to different outcomes; neither is causal or held-out predictive accuracy. Spearman correlation is not R².
Recalculate injury statistics from released aggregate scores · Python. The full scripts document profile construction; rebuilding posting scores requires the restricted local aggregate inputs. Those inputs are not distributed here. The displayed derived scores can be downloaded above.
Does this also work with USAJOBS? See the comparison
Yes. We mapped the same 610 tasks using USAJOBS, NLx, and O*NET, restricting all three to the same available occupations before comparing injury rates.
Outcome
N
NLx · distinct tasks
NLx · incidences
USAJOBS · distinct tasks
USAJOBS · incidences
O*NET · distinct tasks
Fatal injuries
41
0.665
0.517
0.527
0.450
0.230
All nonfatal injuries
386
0.558
0.561
0.622
0.495
0.488
Contact injuries
304
0.643
0.652
0.668
0.511
0.491
Falls, slips and trips
326
0.474
0.507
0.515
0.476
0.426
Spearman rank correlations. Distinct-task shares count each task ID once; incidence shares weight tasks by their frequency. The comparison covers 614 common SOC-O*NET specialties (538 six-digit occupations); outcome samples are smaller. These matched samples differ from the main NLx comparisons.
USAJOBS covers January 2017–March 2026, whereas NLx covers October 2024–September 2025. Nonfatal rates describe private-industry workers, not federal workers. The 41 fatality groups here are a different sample from the complete-coverage 41-group sensitivity above; 11 have partial detailed-occupation coverage, shared by all three maps.
The linked Python code recalculates injury correlations from released occupation-level scores. The USAJOBS starter notebooks construct occupation-task profiles and relatedness scores.
The main injury results use NLx-derived occupation-task profiles. The underlying postings and full profiles are not distributed. Injury-analysis code recalculates statistics from released aggregate scores; it does not reconstruct the restricted NLx profiles. The OSHA notebook demonstrates retrieval of task IDs from incident narratives.
What these terms mean
Incident-linked task
An existing O*NET task ID with narrative evidence of performed activity involved in an incident. Membership does not establish how dangerous the task is, or that it caused the injury.
Incident-linked task share
The share of an occupation’s task incidences belonging to the selected bundle. Posting incidences are design-weighted for NLx and unit-weighted for USAJOBS. The distinct-task version counts each task ID once; O*NET uses its assigned task inventory. These measures are not percentages of workers exposed.
How does filtering affect the results?
The selector updates the task-only injury benchmark charts and filter-comparison table. The SI common-sample comparison remains fixed to the paper profiles. The 610-task bundle and observed injury rates stay fixed. Task-level evidence and frequency examples retain the paper’s reviewed profiles.
Benchmark
Occupations / groups
Posting profiles · Spearman correlation
O*NET · Spearman correlation
Filter comparison. “No exclusions” restores occupation-task profile links; it does not remove the OSHA evidence review. The paper’s filters retain eligible unreviewed links and canonical assignments. An observation is a sampled job-month.
SOII — Survey of Occupational Injuries and Illnesses. U.S. Bureau of Labor Statistics, 2023–24 private-industry estimates. Annualized nonfatal DART rates are per 10,000 FTE; DART means days away from work, restricted duty or job transfer. The overall comparison covers 546 six-digit occupations; category samples vary with published data. Nature · R98 · Event · R100 · Duration · R66 · SOII overview and methods · Our analysis.
Measurement. Posting scores divide design-weighted bundle-task incidences by all retained task incidences. O*NET scores divide distinct bundle tasks by all officially assigned tasks. The distinct-task sensitivity uses the same counting rule for both maps. These extend the occupation-task profiles underlying relatedness; they do not test the occupational-relatedness cosine matrix. The posting period (October 2024–September 2025), survey populations and outcome periods differ. Missing or suppressed rates remain unavailable.
Define the domain, review which task statements belong, and measure their occurrence in postings. The STEM and green examples use two-model agreement procedures and compare task-based signals with official occupation labels.
Your output: a versioned bundle and a measure with an explicit denominator. A STEM task can occur outside an officially designated STEM occupation.
The National Labor Exchange (NLx) Data Trust bears no responsibility for the analyses or interpretations of the data presented here. The opinions expressed herein, including any implications for policy, are those of the authors and not of the NLx Data Trust members or others.