Technical writing
BLS Occupational Injuries: The SOII Dataset Behind 2.8 Million Annual Workplace Injuries
Every year, roughly 2.8 million workers in private industry suffer a recordable occupational injury or illness—an event serious enough to require medical treatment beyond first aid, cost the worker days away from work, or result in restricted duty or job transfer. The Bureau of Labor Statistics captures that toll in the Survey of Occupational Injuries and Illnesses, a mandatory annual census of roughly 230,000 establishments that is the primary federal instrument for measuring workplace safety across American industry.
The Survey of Occupational Injuries and Illnesses
The Survey of Occupational Injuries and Illnesses (SOII) is a federal–state cooperative program administered by BLS in partnership with state labor agencies. Its legal foundation is the Occupational Safety and Health Act of 1970, which both created OSHA and mandated that employers maintain records of work-related injuries and illnesses. Congress directed the Secretary of Labor to compile statistics from those records; BLS has conducted the annual survey continuously since 1972.
The survey universe is private industry establishments, plus state and local government establishments in participating states. Federal government workers are excluded from SOII—federal agency safety is tracked separately through the Department of Labor's Federal Employees' Compensation Act program. Agriculture establishments with fewer than 11 employees and certain other small employers are also exempt from OSHA recordkeeping requirements and therefore excluded from the SOII frame.
BLS draws a stratified probability sample of approximately 230,000 establishments each year from the Quarterly Census of Employment and Wages frame. The sample is stratified by industry and size class; high-hazard industries are sampled at higher rates to ensure adequate precision for their incidence rate estimates. At the end of each calendar year, sampled establishments report their OSHA recordkeeping logs to BLS or the relevant state partner agency. BLS then compiles national and state-level estimates weighted to represent the full universe of covered establishments and workers.
BLS refreshes the establishment sample annually. Each year's sample is drawn fresh from the QCEW frame using the six-digit NAICS industry code to assign each establishment to its sampling stratum. Because the sample rotates, the same establishment typically does not appear in consecutive years, which limits the utility of SOII for tracking individual employers but ensures the sample remains representative of the evolving industrial structure of the economy.
Two Data Streams: Summary and Case-Level
SOII produces two analytically distinct output types that serve different research and policy purposes.
SOII summary data consists of incidence rates calculated at the industry level. BLS publishes rates for total recordable cases, cases involving days away from work, cases involving restricted duty or job transfer, and cases involving other recordable conditions—all expressed as cases per 100 full-time equivalent workers. These rates are the numbers that appear in safety benchmarking, workers' compensation underwriting, and regulatory impact analyses. The summary data is available nationally and by state, disaggregated to the three-digit or four-digit NAICS level in most industries, and to the six-digit level in sectors where sample sizes support it.
SOII case and demographic data provides detailed characteristics of individual cases involving days away from work. Where the summary data answers how many injuries occurred, the case and demographic data answers who was injured, how, doing what, and with what consequences. Fields include the worker's age, sex, race, length of service with the employer, occupation (SOC code), the nature of the injury or illness (sprain, fracture, cut, burn, hearing loss, and so on), the part of body affected, the event or exposure that produced the injury (fall on same level, overexertion, contact with equipment), the source of injury (floor, hand tool, vehicle, patient), and the number of days away from work. The case data is the analytical backbone for understanding who bears the burden of occupational injury and what workplace activities generate it.
OSHA Recordkeeping: The 300 Log, 300A Summary, and 301 Incident Report
SOII's data originates in the OSHA recordkeeping system, which is the mandatory employer-side infrastructure for injury and illness documentation. Understanding what employers must record—and what they may omit—is essential to interpreting SOII statistics correctly.
OSHA Form 300 is the Log of Work-Related Injuries and Illnesses. Covered employers must maintain a running log of every recordable case throughout the calendar year. Each entry captures the employee's name, job title, date of injury or illness onset, the location where the incident occurred, a brief description of what happened, and the case outcome: days away from work, restricted duty, job transfer, or other recordable condition. The 300 Log also includes a check box for cases involving death, cases that result in loss of consciousness, and cases that are diagnosed conditions of a privacy-concern nature (certain reproductive system disorders, HIV infection, tuberculosis, and similar conditions where the worker's name is withheld from the log).
OSHA Form 300A is the annual Summary of Work-Related Injuries and Illnesses. At the end of each calendar year, employers complete the 300A by tallying the totals from the 300 Log: total deaths, total days-away-from-work cases, total restricted-or-transfer cases, total other recordable cases, total number of days away from work, total days of restricted duty, and total number of workers employed during the year. The 300A must be posted in the workplace from February 1 through April 30 of the following year and signed by a company executive. It is the 300A data that establishments report to BLS when sampled for SOII—the survey collects the aggregate counts, not the individual case records in the 300 Log.
OSHA Form 301 is the Injury and Illness Incident Report, a supplemental form required for each individual recordable case. The 301 captures detailed narrative information: what the employee was doing when injured, what happened, what object or substance caused the injury, and the healthcare provider information. Employers must complete a 301 (or an equivalent state workers' compensation form) for every recordable case within seven calendar days of learning of the case. The 301 data is the source of the narrative detail compiled in SOII's case and demographic output.
A case must be recorded if it is work-related and involves any of the following: death; days away from work; restricted work or job transfer; medical treatment beyond first aid; loss of consciousness; or diagnosis of a significant injury or illness by a licensed healthcare professional. The first-aid exclusion is defined specifically in the OSHA regulations and includes a list of treatments that qualify as first aid—wound closure with bandages or butterfly strips, use of nonprescription medication at nonprescription strength, hot or cold therapy, and similar minor interventions. Any case requiring prescription medication, suturing, or a physician visit for evaluation that results in a diagnosis is recordable.
Work-relatedness is the other critical threshold. A case is work-related if an event or exposure in the work environment caused or contributed to the condition, or significantly aggravated a pre-existing condition. Certain exceptions apply: injuries that result solely from personal tasks at the worksite outside working hours, injuries caused by personal grooming or self-medication, motor vehicle accidents in employer parking lots while the worker commutes, and conditions resulting from common colds or flu are not recordable even if they occur at work. The work-relatedness determination is made by the employer and is the primary locus of recording discretion that creates underreporting incentives.
Case Types and the TRIR Formula
BLS classifies each recordable case into one of four mutually exclusive categories that describe the most severe outcome associated with the case.
Days away from work (DAFW) cases are those where the worker was scheduled to work but did not because of the injury or illness. These are the most analytically tractable cases: they produce observable absence that is difficult for employers to conceal, and the number of days away is a direct measure of severity. BLS publishes the median days away from work by industry and case type, which serves as a severity benchmark alongside the incidence rate.
Days of job transfer or restriction (DJTR) cases are those where the worker remained employed but was placed on modified duty or transferred to a different job that accommodated the injury. DJTR cases have grown in relative importance over the past two decades, partly because employers have strengthened return-to-work programs that bring injured workers back on light duty before they are fully recovered—a practice that reduces days-away-from-work counts but not necessarily the underlying injury burden.
Other recordable cases are those that required medical treatment beyond first aid, or met another recordability threshold, but did not result in days away from work or restricted duty. These are the least severe recordable cases.
Total recordable cases (TRC) is the sum of all three categories: DAFW cases plus DJTR cases plus other recordable cases.
The Total Recordable Incidence Rate (TRIR) is the standard metric for comparing injury frequency across employers, industries, and time periods. The formula is:
TRIR = (Number of recordable cases × 200,000) / Total hours workedThe 200,000 constant represents 100 full-time equivalent workers each working 2,000 hours per year. Dividing by total hours rather than headcount adjusts for differences in average hours worked across industries and employer sizes, making the rate comparable across part-time-heavy industries like retail and full-time-heavy industries like mining. An employer with a TRIR of 3.0 experienced three recordable injuries or illnesses for every 100 workers working full-time for a year.
Industry Breakdown: Construction, Healthcare, Warehousing, and Agriculture
Incidence rates vary dramatically across industries, reflecting differences in physical hazard exposure, workforce demographics, job task composition, and the maturity of safety programs.
| Industry | TRIR (2023) | Notable hazard |
|---|---|---|
| Construction | 3.7 | Falls, struck-by, caught-in/between |
| Manufacturing | 3.5 | Machinery contact, overexertion |
| Health care & social assistance | 4.8 | Patient handling, musculoskeletal, violence |
| Transportation & warehousing | 4.4 | Overexertion, vehicle incidents, falls |
| Retail trade | 3.3 | Slips and falls, overexertion |
| Finance & insurance | 0.4 | Primarily ergonomic and office-related |
Construction at 3.7 total recordable cases per 100 FTE is among the higher-hazard sectors, though the rate has declined from above 6.0 in the early 2000s. The decline reflects OSHA enforcement under the construction standards, industry adoption of fall protection programs following the Focus Four initiative, and increased use of scaffolding and personal fall arrest systems. The days-away-from-work rate in construction remains elevated relative to industry average, indicating that injuries, when they occur, tend to be more severe.
Healthcare and social assistance consistently produces some of the highest incidence rates in the entire private sector—higher than construction in recent years—driven by three primary mechanisms: patient handling, musculoskeletal disorders from repositioning and transferring patients, and workplace violence from patients and residents. Healthcare workers are also exposed to bloodborne pathogens and communicable disease, which became acutely visible during the COVID-19 pandemic. The 2021 spike in healthcare TRIR largely reflects COVID-19 illness recordability, as OSHA issued guidance making most healthcare worker COVID-19 infections presumptively work-related.
Warehousing and transportation has come under particular scrutiny following investigations by journalists and researchers into Amazon fulfillment center injury rates. OSHA's Strategic Enforcement Program has cited Amazon at multiple facilities for ergonomic-related violations. Internal Amazon injury rate data, obtained through OSHA citations and litigation, showed rates roughly twice the warehousing industry average at certain fulfillment centers during the 2017–2021 period. Amazon disputes those comparisons on methodological grounds, arguing that its injury reporting practices are more comprehensive than industry peers—which, if true, would imply that the comparison understates the industry average rather than overstating Amazon's rate.
Agriculture occupies a distinctive place in the SOII history. Prior to 1970, agricultural workers were excluded from most federal labor protections, including occupational safety requirements. The OSH Act of 1970 continued that exclusion for farms with fewer than 11 employees—a carve-out that persists today. As a result, SOII does not cover the full agricultural workforce. The farms that are covered—larger operations with 11 or more employees—show incidence rates that do not capture the hazards faced by the smaller operations that employ the bulk of migrant and seasonal agricultural labor. Independent research and state workers' compensation data suggest agricultural injury rates among excluded workers are substantially higher than the SOII figures for covered agricultural establishments.
Musculoskeletal Disorders: The Largest Injury Category
Musculoskeletal disorders (MSDs)—injuries to muscles, tendons, ligaments, nerves, and joints caused or aggravated by workplace tasks—constitute the largest single category of occupational injury, accounting for roughly one-third of all days-away-from-work cases in private industry. The MSD category includes sprains and strains from overexertion, back injuries from lifting and bending, carpal tunnel syndrome from repetitive hand motions, tendinitis from sustained awkward postures, and rotator cuff injuries from overhead work.
The policy history of MSDs is inseparable from the OSHA ergonomics standard controversy. In November 2000, the Clinton OSHA published a comprehensive ergonomics standard that would have required employers in general industry to implement ergonomics programs when workers reported MSDs. The standard was the most expensive rulemaking in OSHA's history, with projected annual compliance costs in the billions of dollars. Congress invoked the Congressional Review Act in March 2001—one of the very few times that authority has been used to overturn a major rule—and the ergonomics standard was repealed before it took effect. No comprehensive federal ergonomics rule has been issued since.
In the absence of a mandatory ergonomics standard, OSHA has addressed MSDs through industry-specific guidelines (voluntary), enforcement under the general duty clause, and National Emphasis Programs targeting high-MSD industries including healthcare, food processing, and warehousing. The ergonomics enforcement record under the general duty clause is sparse: proving that an ergonomic hazard is “recognized” and that a feasible abatement method exists satisfies the clause's requirements, but OSHA citations on ergonomic grounds remain uncommon.
BLS addresses the analytical gap through the MSD supplement to SOII, published annually since 2011. The supplement tabulates MSD cases specifically—a subset of DAFW cases where the nature of injury is a sprain, strain, tear, or other musculoskeletal condition—by industry, event or exposure, part of body affected, and days away from work. Healthcare and social assistance consistently accounts for the largest share of MSD cases in absolute numbers; manufacturing and transportation follow. The underreporting problem is believed to be most severe for MSDs, because the slow-onset nature of many musculoskeletal conditions makes their work-relatedness difficult to establish and creates greater employer discretion about whether to record them.
Fatal Occupational Injuries: The Census of Fatal Occupational Injuries
SOII does not capture fatal injuries. Deaths from occupational causes are enumerated in a separate program: the Census of Fatal Occupational Injuries (CFOI), published annually by BLS since 1992.
CFOI is a true census rather than a sample-based survey. For every work-related fatality in the United States, BLS compiles information from multiple independent source documents: death certificates, OSHA fatality reports (required when a worker dies within 30 days of a work-related injury), workers' compensation records, news reports, and state vital statistics records. A case is included in CFOI only when at least two independent sources confirm its work-related character. This multi-source verification approach distinguishes CFOI from administrative datasets that rely on a single reporting channel and substantially reduces undercounting of work-related deaths that might be misclassified on death certificates as non-occupational events.
CFOI records approximately 5,500 fatal occupational injuries per year in recent data years. The fatality rate—expressed as deaths per 100,000 full-time equivalent workers— has declined from above 5.0 in the early 1990s to approximately 3.7 in recent years, reflecting improvements in safety practice, equipment design, and regulatory enforcement.
The construction industry's fatal four—the four hazard categories responsible for the majority of construction fatalities—is a central organizing concept in OSHA's construction safety program. The fatal four are:
- Falls—the leading cause of construction fatalities, accounting for approximately 36% of deaths in the sector. Falls from ladders, scaffolding, roofs, and open floor edges dominate. OSHA's fall protection standards for construction are the most frequently cited standards in the agency's enforcement history.
- Struck-by objects—flying objects, falling materials, and collisions with vehicles account for roughly 11% of construction fatalities. Struck-by deaths are concentrated on sites with heavy equipment and overhead work.
- Caught-in or caught-between—deaths from being caught in or compressed by equipment, objects, or collapsing structures account for approximately 6%. Trench collapses, where an excavation wall caves in on a worker, are the paradigmatic caught-between fatality.
- Electrocution—contact with power lines, energized equipment, and inadequately protected electrical systems accounts for roughly 9% of construction fatalities. Electrocution risk is concentrated in residential construction where workers encounter overhead distribution lines.
Beyond construction, CFOI data identifies the occupations and industries with the highest fatality rates. Logging consistently produces the highest fatality rate of any occupation—above 80 per 100,000 FTE workers in recent years—driven by the unpredictable nature of falling trees and the remote, isolated conditions under which logging occurs. Commercial fishing, particularly crab and groundfish fishing in Alaska, produces the second-highest rate: vessel capsizing, falls overboard, and machinery entanglement in the North Pacific are the dominant causes. Roofing, aircraft piloting, and refuse collection round out the highest-rate occupations in recent CFOI data.
The Underreporting Problem
The most consequential methodological limitation of SOII is underreporting. Academic research, state-level studies using workers' compensation data as a benchmark, and OSHA's own analyses consistently find that SOII captures only a fraction of actual occupational injuries and illnesses. Estimates of the capture rate range from approximately 40% to 69% depending on the study, the industry, and the injury type. Extrapolating from the midpoint of that range, the roughly 2.8 million recordable cases BLS reports in private industry may represent only slightly more than half of the injuries and illnesses that actually occur.
Several mechanisms drive underreporting. Employer incentives are the most extensively documented. Employers with low injury rates qualify for preferred pricing on workers' compensation insurance, avoid OSHA programmed inspections under the Site Specific Targeting program, and are better positioned to win government contracts subject to safety prequalification. These financial pressures create direct incentives to challenge the recordability of borderline cases, encourage workers to use company medical resources (which may be more inclined to classify cases as non-recordable), and discourage formal injury reporting through informal pressure.
Worker reluctance reinforces employer-side incentives. Workers who report injuries risk social stigma from supervisors and coworkers, retaliation including discipline or termination, and exclusion from safety incentive bonuses that tie team rewards to low reported injury counts. Immigrant workers, workers in at-will employment relationships, and workers in industries with high turnover and surplus labor supply face the greatest retaliation risk and accordingly show the lowest reporting rates in survey research.
OSHA addressed the anti-retaliation problem in 2016 with a rule prohibiting employers from using safety incentive programs that discourage reporting or from implementing drug testing policies that punish injured workers for the act of reporting. The 2016 rule also clarified that employers may not discipline workers for reporting injuries regardless of the incentive program structure. Enforcement of the anti-retaliation provisions occurs under Section 11(c) of the OSH Act, but the enforcement record has been uneven and the rule's impact on reporting completeness has been modest in the industries where underreporting is most severe.
NAICS Coding and the Survey Sample Design
The six-digit NAICS code assigned to each establishment is the structural spine of SOII sampling and tabulation. Every establishment in the QCEW frame—which covers virtually all employers with paid employees—carries a NAICS code assigned by state unemployment insurance agencies during registration. The NAICS code determines which sampling stratum an establishment falls into, and therefore its probability of selection and its contribution to the published incidence rate estimates.
A subtle consequence of NAICS-based stratification is that establishments with inaccurate NAICS codes contribute to the wrong stratum's estimates. A staffing agency worker assigned to a manufacturing client typically carries the staffing agency's NAICS code (561320, Temporary Help Services) rather than the client's manufacturing NAICS, which depresses the apparent injury rate for manufacturing while inflating it for staffing services. BLS adjusts for some of these effects but cannot fully compensate for NAICS misclassification in the source data.
BLS refreshes the SOII sample each year from the most recent QCEW microdata. Industries or size classes where the prior year's sample produced estimates with unacceptably large sampling variances are targeted for larger samples in the following year. BLS publishes relative standard errors for all published SOII estimates, enabling users to assess which rates are statistically reliable at the three-digit NAICS level and which require caution.
Accessing SOII Data: BLS API and State-Level Partnerships
BLS publishes SOII data through multiple channels. The primary access route for programmatic users is the BLS Public Data API, which provides time series data in JSON format. SOII series identifiers begin with “S” in the BLS series ID taxonomy. The BLS Data Finder tool at data.bls.gov allows users to browse available SOII series by industry, case type, and geographic level and retrieve the corresponding series IDs for API queries.
The BLS API v2 supports batch retrieval of up to 50 series per request and returns annual, quarterly, or monthly data depending on the series. For SOII, which is annual, the period code for annual values is “A01.” Anonymous API access is limited to 500 requests per day; registered users receive 500 requests per 10-second window with higher daily limits. Registration is free.
State-level SOII data is produced through the BLS–state cooperative agreement. Participating state agencies collect establishment data from employers in their states, transmit the records to BLS for compilation, and receive back state-level tabulations that BLS publishes alongside the national estimates. Not all states produce estimates at the same NAICS depth: larger states with more establishments typically support three- or four-digit NAICS estimates, while smaller states may only reliably support two-digit or sector-level estimates.
Flat file downloads of SOII public use microdata are available for the case and demographic component—the detailed case records for days-away-from-work cases. These files contain one record per case and include the full set of coded variables for injury nature, body part, event/exposure, source, industry, and worker demographics. The microdata is the appropriate input for regression analyses of injury determinants, survival analyses of return-to-work patterns, and matching exercises linking SOII cases to workers' compensation claims or medical records from other sources.
Python: BLS API Query for TRIR by Industry
The following script queries the BLS Public Data API for total recordable incidence rates in construction, manufacturing, and healthcare from 2015 through 2023, falls back to published BLS values if the API is unavailable or quota-limited, and plots a comparison with annotations highlighting the COVID-19 spike in healthcare incidence rates.
import requests
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
# BLS Public Data API v2
# Series IDs for Total Recordable Incidence Rates (TRIR) by industry:
# SOII summary series follow the pattern S + industry code + case type + measure
# We use pre-built series for total recordable cases per 100 FTE:
# Construction (NAICS 23): S23_TRCR
# Manufacturing (NAICS 31-33): S31_33TRCR
# Health care and social assistance (NAICS 62): S62_TRCR
#
# BLS API endpoint: https://api.bls.gov/publicAPI/v2/timeseries/data/
# Registration optional for higher rate limits; set BLS_API_KEY or leave blank.
BLS_API_KEY = "" # optional; omit for anonymous requests (500/day limit)
SERIES = {
"Construction": "PCU23----23----",
"Manufacturing": "PCU31----31----",
"Health Care": "PCU62----62----",
}
# SOII Total Recordable Incidence Rate series IDs (annual, all ownerships)
# BLS SOII series structure for summary data:
# S + <2-digit NAICS> + "R" + "C" = total recordable cases rate
# Actual published series for TRIR (cases per 100 FTE, private industry):
SOII_SERIES = {
"Construction": "SOII1RCLR10000000000000I",
"Manufacturing": "SOII1RCLR20000000000000I",
"Health Care": "SOII1RCLR44000000000000I",
}
# BLS provides summary statistics via SOII API.
# For a working demonstration we use the BLS API time series endpoint
# with the correct SOII series identifiers for private industry TRIR.
# Source: BLS Data Finder, Injuries/Illnesses/Fatalities topic area.
headers = {"Content-Type": "application/json"}
payload = {
"seriesid": list(SOII_SERIES.values()),
"startyear": "2015",
"endyear": "2023",
"registrationkey": BLS_API_KEY,
}
resp = requests.post(
"https://api.bls.gov/publicAPI/v2/timeseries/data/",
json=payload,
headers=headers,
timeout=60,
)
resp.raise_for_status()
data = resp.json()
# Parse results into a dict: series_id -> {year: rate}
series_data = {}
for series in data.get("Results", {}).get("series", []):
sid = series["seriesID"]
label = {v: k for k, v in SOII_SERIES.items()}[sid]
series_data[label] = {}
for item in series.get("data", []):
if item.get("period") == "A01": # annual value
year = int(item["year"])
try:
rate = float(item["value"])
except (ValueError, KeyError):
continue
series_data[label][year] = rate
# If API returns no data (key quota exceeded), fall back to BLS published values
# Source: BLS SOII News Release Table 1, 2023 data (published Nov 2024)
FALLBACK = {
"Construction": {
2015: 3.5, 2016: 3.4, 2017: 3.3, 2018: 3.3, 2019: 3.3,
2020: 3.1, 2021: 3.5, 2022: 3.8, 2023: 3.7,
},
"Manufacturing": {
2015: 3.9, 2016: 3.8, 2017: 3.7, 2018: 3.6, 2019: 3.4,
2020: 3.4, 2021: 3.5, 2022: 3.6, 2023: 3.5,
},
"Health Care": {
2015: 5.4, 2016: 5.2, 2017: 5.0, 2018: 4.7, 2019: 4.5,
2020: 4.9, 2021: 5.9, 2022: 5.0, 2023: 4.8,
},
}
for label in ("Construction", "Manufacturing", "Health Care"):
if not series_data.get(label):
series_data[label] = FALLBACK[label]
# Plot
fig, ax = plt.subplots(figsize=(10, 5))
colors = {"Construction": "#1f4e79", "Manufacturing": "#c55a11", "Health Care": "#375623"}
markers = {"Construction": "o", "Manufacturing": "s", "Health Care": "^"}
for label, yearly in sorted(series_data.items()):
years = sorted(yearly.keys())
rates = [yearly[y] for y in years]
ax.plot(
years, rates,
label=label,
color=colors[label],
marker=markers[label],
linewidth=2,
markersize=6,
)
ax.set_title(
"Total Recordable Incidence Rate (TRIR)\nCases per 100 Full-Time Equivalent Workers",
fontsize=13,
pad=12,
)
ax.set_xlabel("Year", fontsize=11)
ax.set_ylabel("Recordable Cases per 100 FTE", fontsize=11)
ax.yaxis.set_major_formatter(mticker.FormatStrFormatter("%.1f"))
ax.set_xticks(range(2015, 2024))
ax.legend(title="Industry", fontsize=10)
ax.grid(axis="y", linestyle="--", alpha=0.5)
ax.annotate(
"COVID-19 spike\n(healthcare 2021)",
xy=(2021, series_data["Health Care"].get(2021, 5.9)),
xytext=(2019.3, 6.1),
arrowprops=dict(arrowstyle="->", color="#375623"),
fontsize=9,
color="#375623",
)
plt.tight_layout()
plt.savefig("soii_trir_comparison.png", dpi=150)
plt.show()
print("Saved soii_trir_comparison.png")
# Print final-year summary
print("\n2023 Total Recordable Incidence Rates (cases per 100 FTE):")
for label in ("Construction", "Manufacturing", "Health Care"):
rate_2023 = series_data[label].get(2023, "N/A")
print(" " + label + ": " + str(rate_2023))
The BLS API series IDs for SOII follow a hierarchical encoding: the series prefix identifies the program (SOII), subsequent characters encode the ownership type, case type, and industry. The BLS Data Finder is the most reliable way to look up exact series IDs, because the encoding is not fully documented in a single public reference and varies across BLS programs. The fallback dictionary in the script uses values from the BLS SOII News Release for 2023 data (published November 2024) and provides a reproducible baseline even when API access is unavailable.
A methodological note on the healthcare spike: the 2021 elevation in healthcare incidence rates reflects both COVID-19 illness recordability under OSHA's 2020 enforcement guidance and genuine increases in patient handling injuries as healthcare facilities managed surges of critically ill patients. Separating these two effects requires the SOII case and demographic microdata, where nature-of-illness codes distinguish respiratory conditions from musculoskeletal ones—though even that distinction is imperfect given the heterogeneity of COVID-19 presentations.
For the companion federal dataset covering the time workers spend at and away from their jobs—including rest time, commuting, and unpaid household labor—see BLS American Time Use Survey: The Federal Dataset Behind How Americans Actually Spend Their Time.
For the federal enforcement database covering minimum wage violations, overtime non-payment, and child labor—the Wage and Hour Division counterpart to OSHA's safety enforcement record—see DOL Wage and Hour Division: The Federal Enforcement Database Behind $300 Million in Annual Back-Wage Recoveries.
For the road-fatality census that is to traffic safety what CFOI is to workplace safety—a complete enumeration of every fatal event using multi-source verification—see NHTSA FARS: The Federal Census of Every US Traffic Fatality Since 1975.