Datadory notebook
MSHA Mine Data by Operator: Rolling Mine Records Up to Companies
MSHA mine data by operator comes from the Mine Data Retrieval System (MDRS): roughly 92,000 mine records dating to January 1, 1970, joined to employment, production, accident, inspection and violation tables from 2000 onward. Group mines on CURRENT_OPERATOR_ID or CURRENT_OPERATOR_NAME and sum the Form 7000-2 production and employment figures per operator.
1,744 datasets. Pick your catch.
What does “by operator” mean in MSHA’s data model?
Every row of MSHA’s Mines table is a mine, not a company. The registry holds roughly 92,000 mine records covering every coal and metal/non-metal mine and contractor in the United States, Puerto Rico and the U.S. Virgin Islands, with coverage running from January 1, 1970 to the present inside the MSHA Mine Data Retrieval System (MDRS).
Operator attribution lives in four registry fields. CURRENT_OPERATOR_NAME and CURRENT_OPERATOR_ID identify the operating company responsible for the mine; CURRENT_CONTROLLER_NAME and CURRENT_CONTROLLER_ID identify the legal entity acting as controller above it. Sample rows show both layers at once: Cordova Loading (MINE_ID 0100114) in Walker County, Alabama lists Drummond Company, Inc. as operator and Drummond Company Inc as controller, while O’Neal Quarry & Mill (0100003) names operator Lhoist North America of Alabama, LLC beneath controller Lhoist Group.
These are snapshot fields — they change whenever the operator files a Legal ID (LID) or Mine Information Form (MIF) — so the same Gateway publishes a dedicated Controller/Operator History table that preserves the trail. To isolate coal, filter on COAL_METAL_IND = C, then narrow further with PRIMARY_SIC (example value: “Coal (Bituminous)”), CURRENT_MINE_TYPE (Facility, Surface or Underground) and CURRENT_MINE_STATUS.
Which tables hold production and employment you can attribute to operators?
The Employment/Production tables are the tonnage-and-headcount core, built from Form 7000-2 submissions with records from January 1, 2000 onward in both quarterly and yearly cuts. The registry’s ANNUAL_COAL_PRODUCTION field carries operator-reported annual production in short tons, and AVG_EMPLOYEE_CNT carries the average employee count per quarter. Contractors report through a separate Contractor Employment/Production set, so an operator’s own workforce never gets blended with its contractors’.
For a top-down sanity check, pair the rollup with the EIA Annual Coal Report (ACR): the current edition reports that 2024 US production fell 11.3 percent to 512.5 million short tons, producing mines dropped from 560 to 524, and productivity slipped 7.6 percent to 5.22 short tons per employee hour — spread across roughly 46 downloadable XLSX/PDF tables that include named large mines and producers.
When you need series rather than snapshots, EIA Coal Data (production, consumption, prices, reserves) serves mine-level detail back to the 1980s through survey-based series, with bulk files that refresh twice daily at 5 a.m. and 3 p.m. Eastern.
How do you roll mine records up to an operator, step by step?
A repeatable pipeline needs nothing beyond the Gateway’s own files:
- Filter to coal. Keep rows where COAL_METAL_IND = C; optionally drop non-producing status values so abandoned mines don’t dilute current-year totals.
- Build the operator key. Carry CURRENT_OPERATOR_ID as your group key and CURRENT_OPERATOR_NAME as its label; keep CURRENT_CONTROLLER_ID alongside so parent-level views stay separable.
- Aggregate production and employment. Sum ANNUAL_COAL_PRODUCTION and average AVG_EMPLOYEE_CNT from the Form 7000-2 yearly and quarterly sets, joined on MINE_ID, then group by operator.
- Attach the event history. Join Violations (Form 7000-3), Assessed Violations, Civil Penalties and Contested Violations, plus Accidents/Injuries/Illnesses (Form 7000-1) and Inspections, onto the same MINE_ID. Within events, EVENT_NO links each inspection to its violations and accidents. All of these tables start January 1, 2000; raw Form 7000-1/7000-2 submissions back to 1983 remain available through MSHA’s Part 50 self-extracting archives.
- Validate against the regulator’s own math. MSHA’s published compliance calculators — Significant-and-Substantial rates, Pattern of Violations monitoring and Part 75 key underground coal standards — run on this identical data, so your operator-level rates should reconcile with theirs.
Which MSHA table answers which operator question?
The Gateway splits MDRS into themed sets rather than one mega-file. Each ships as a ZIP of pipe-delimited text with a header row, quoted fields and a definition file, and everything joins on MINE_ID. As of August 2026:
What breaks when you track an operator across time?
Three things, and all three are visible in the field definitions. First, the CURRENT_ prefixed fields describe the present only: when a new LID or MIF lands, yesterday’s operator vanishes from the snapshot, which is exactly why Controller/Operator History exists as its own set — join it before you trend anything.
Second, legal-entity naming drifts. COMPANY_TYPE distinguishes a Corporation from a Limited Liability Company, and sample rows show the same family appearing as both “Drummond Company, Inc.” and “Drummond Company Inc”. Group on the ID fields, not the names.
Who puts operator-level MSHA data to work?
Journalists, academics and students treat the same files as citation-grade primary sources: federal records in the commercial delivery terms, reaching back to 1970 at the mine level, with per-column definition files that make methodology sections straightforward. Data scientists use the event tables differently — modelling productivity and safety from per-event accident, violation and employment records since 2000.
| Gateway set | Grain | History | Operator rollup use |
|---|---|---|---|
| Mines | One row per mine (MINE_ID) | January 1, 1970 to present | Registry backbone; current operator, controller, SIC, status and location |
| Controller/Operator History | Per ownership-change event | Historical | Reconstruct who ran a mine in each period before aggregating |
| Employment/Production (quarterly and yearly) | Mine-quarter and mine-year | January 1, 2000 to present (Form 7000-2) | Sum tons and average headcount per operator |
| Contractor Employment/Production | Contractor-mine-period | 2000 onward | Keep contractor labor out of operator productivity math |
| Accidents/Injuries/Illnesses | Per event (Form 7000-1) | January 1, 2000 to present | Count incidents per operator; raw filings back to 1983 via Part 50 |
| Inspections | Per inspection (EVENT_NO) | January 1, 2000 to present | Inspection volume per operator; bridge to violations |
| Violations | Per citation/order (Form 7000-3) | January 1, 2000 to present | Citation counts and classifications per violator entity |
| Assessed Violations and Civil Penalties | Per assessed event | 2000 onward | Dollar exposure per operator, contested cases separated |
| Coal Dust, Quartz and Noise Samples | Per sample | 2000 onward | Health-exposure profile across an operator’s mines |
Pick up where this leaves off
Every one of these ships with sample rows before you commit to anything.
MSHA Mine Data Retrieval System (MDRS)
EIA Annual Coal Report (ACR)
EIA Coal Data (production, consumption, prices, reserves)
series · period · value …+3 more
Global Coal Exit List (GCEL) Data
Want rows instead of a pitch? Name the datasets.
API, files, or your warehouse. Daily, weekly, or hourly.
Get a sampleQuestions worth asking
What is the difference between an operator and a controller in MSHA data?
The operator is the company running the mine day to day, held in CURRENT_OPERATOR_NAME and CURRENT_OPERATOR_ID; the controller is the legal entity above it, in CURRENT_CONTROLLER_NAME and ID. Lhoist North America of Alabama, LLC operating beneath controller Lhoist Group illustrates the split.
How far back do operator-linked MSHA records go?
It varies by table. The Mines registry reaches January 1, 1970; the accident, inspection, violation and Form 7000-2 employment/production tables start January 1, 2000; and raw Part 50 submissions recover accident and employment filings back to 1983.