Data documentation
Methodology
RailStats.org preserves official STB files, creates reproducible normalized outputs, and distinguishes reported values from our calculations.
How values are labeled
- STB reported
- A value published directly in an official Surface Transportation Board source.
- RailStats calculated
- A reproducible total, percentage, ratio, or other result calculated only from identified STB-reported components.
- Indexed comparison
- A RailStats calculation that sets each selected series to 100 in its starting reporting period so unlike units can share a relative-change scale. It does not compare absolute size.
Source and coverage
The People and Pay dataset uses 36 official Surface Transportation Board Quarterly Wage A&B CSV files retrieved August 17, 2026. The Revenue and Expenses dataset uses the six carrier time-series files, the all-carrier file, and official filing instructions retrieved 2026-08-23. Both cover six quarters from 2025 Q1 through 2026 Q2.
Measures
- Average employees
- Sum of STB Average number of employees rows across six occupational groups.
- Total paid hours
- Sum of STB total_hours_paid rows across six occupational groups.
- Overtime hours
- Sum of STB overtime_hours_paid rows across six occupational groups.
- Total compensation
- Sum of STB total_compensation rows across six occupational groups.
Financial measures
- Operating revenue
- RailStats.org calculation: sum of the five STB-reported Operating Revenues line items.
- Operating expenses
- RailStats.org calculation: sum of the seven STB-reported Operating Expenses line items.
- Expense-to-revenue ratio
- STB-reported Expenses to Revenues Ratio. A lower ratio means fewer operating-expense dollars per operating-revenue dollar.
The dollar totals are nominal and must not be described as STB-reported totals. The ratio is reported directly by the STB source.
Transformation and validation
- Download the named official CSV without altering it and retain it under
data/source/stb-wage-ab. - Parse all 64 data rows and verify the file’s reporting year, quarter, carrier identity, and numeric values.
- Select the STB analytics fields
employees,total_hours_paid,overtime_hours_paid, andtotal_compensation. - Require exactly one value for each measure in each of six occupational groups.
- Calculate the railroad-quarter total by summing those six source rows. The generator stops on missing, duplicate, or nonnumeric values.
- Publish identical normalized JSON and CSV files under
data/derivedandpublic/data.
PASS: 36 source files; each contains 64 data rows and exactly six rows for each published metric; every displayed total was recomputed from those six source rows.
RE&I transformation and validation
- Preserve all current official carrier files, the all-carrier CSV, and the official instructions under
data/source/stb-rei, with URL, size, and SHA-256 in the manifest. - Require 1,440 all-carrier rows, exactly 40 reported measures per carrier-quarter, six quarters, and six reporting railroads.
- Calculate operating revenue from the five reported revenue components and operating expenses from the seven reported expense components.
- Reconcile the calculated totals with the reported expense-to-revenue ratio within 0.00001. Stop generation if any check fails.
- Publish identical normalized JSON and CSV outputs separately from the preserved source files.
PASS: 1,440 official rows; 40 measures for every carrier-quarter; six quarters for each of six carriers; every reported expense-to-revenue ratio reconciles to the calculated component totals within 0.00001.
CBS capital expenditures
Assets and liabilities are point-in-time measures, but the capital spending view uses only the official instructions’ quarter-only gross-expenditure lines. Road and equipment are reported; their sum is a RailStats.org calculation.
- Hash-check the seven current CSVs and official instructions.
- Require the 936-row all-carrier file to match every value in the six carrier time-series files.
- Require 26 measures and one amendment state per carrier-quarter.
- Publish only road, equipment, and the disclosed sum.
PASS: 936 all-carrier rows match all values in the six carrier time-series files; 26 measures and one consistent amendment state for every carrier-quarter; 36 quarter-only records generated.
Freight Commodity Statistics
The source is the official 2025 annual public output, not a quarterly series. Total carload traffic uses the workbook’s X row. The commodity explorer includes all 36 two-digit STCC major groups in the six public workbooks; STCC 01, 11, 20, and 37 are highlighted only as approachable examples.
For the total and every major-group row, generation verifies that reported carloads and tons equal the sum of the four traffic-flow columns. Gross freight revenue remains a directly reported nominal-dollar value. Major groups are not summed as a substitute for the official total row.
The explorer also shows the official immediate three-digit classifications that can sit within each selected major group. These descriptions explain scope; they are not a claim that every possible product moved in the selected year. As an exact source check, CSX STCC 38 reconciles to 14,137 carloads, 173,790.14 tons, and $9,733,811.23 in gross freight revenue. The reported revenue is concentrated in STCC 384, Surgical, Medical or Dental Instruments or Supplies ($9,725,876.18), plus STCC 386, Photographic Equipment or Supplies ($7,935.05).
PASS: six official 454-row annual public workbooks; the total row and all 36 major groups in each file reconcile reported carloads and tons to their four traffic-flow components; 222 rows generated.
Fuel cost, consumption, and surcharge reports
All five report lines are retained. The official form reports quarter-only amounts in thousands, so normalized outputs preserve thousand dollars and thousand gallons instead of silently changing precision. Consecutive-quarter fuel-cost changes reconcile within 0.5 thousand dollars; the largest 0.484-thousand difference reflects independently reported values at the form’s thousand-unit scale.
The trend explorer can show reported amounts or an index in which each railroad’s selected starting quarter equals 100. Indexed values compare direction and relative change, not railroad size. Average reported fuel cost per gallon is a RailStats.org calculation: reported total fuel cost divided by reported total gallons consumed. It adjusts the cost measure for size but does not measure fuel efficiency.
CPKC workforce and fuel use SOO/KCSR in 2025 and CPKC in 2026. Original values remain available; lines and changes do not cross that reporting transition. Revenue and capital retain their own reporting rules.
Carrier surcharge programs differ. Surcharge revenue alone is not a universal measure of pricing fairness or operating efficiency.
PASS: 36 official workbooks each contain lines 1–5; every available consecutive-quarter reported fuel-cost change reconciles to reported total fuel cost within 0.5 thousand dollars (the largest difference is 0.484 thousand, consistent with independently reported values in thousands); six records for each of six comparison series.
Monthly Employment and amendments
Form C values are monthly mid-month averages by occupational group. RailStats.org calculates a carrier-month total from the six reported groups and keeps that basis separate from Quarterly Wage A&B averages.
The official export contains exactly one current row per carrier-month-group. All six rows for an amended carrier-month share the amended flag. Four amended carrier-months exist in the full official export: CSXT 2025-07, AMTK 2026-02, UP 2026-02, and UP 2026-06. The bounded freight output retains the three applicable freight carrier-months and omits Amtrak from the Class I freight comparison.
The generator requires one current row per carrier-month-group, six groups per carrier-month, and a consistent amendment state across those six rows. It excludes Amtrak from the bounded Class I freight view without removing the amendment evidence from the validation record.
PASS: 5,232 official rows; no duplicate carrier-month-group keys; six group rows and one consistent amendment state per carrier-month; 120 freight carrier-months and 720 group rows generated for 2025-01 through 2026-08.
Limitations
- Monthly mid-month employment and quarterly average employment are different period bases.
- Compensation is the STB-reported measure and should not be treated as total corporate payroll expense.
- Grand Trunk Corporation represents CN’s U.S. STB reporting scope, not CN’s entire North American operation.
- Annual FCS totals and quarterly financial, fuel, and investment values must not be mixed.
- Carrier reporting scopes, traffic mixes, surcharge programs, and corporate structures differ, so cross-railroad totals are not rankings.
- RailStats.org does not infer causes from the published figures.
- Official source files may later be amended. Retrieval dates and amended flags are retained so changes can be reviewed explicitly.
CPKC and KCS coverage
CPKC workforce and fuel use SOO/KCSR in 2025 and CPKC in 2026. Original values remain available; lines and changes do not cross that reporting transition. Revenue and capital retain their own reporting rules.
Legacy CP and KCS weekly service histories remain separate from combined CPKC. They do not form separate current workforce series.
Citation guidance
Suggested citation: RailStats.org, “STB Quarterly Wage A&B normalized data, 2025 Q1–2026 Q2,” updated August 17, 2026, based on Surface Transportation Board source files. Include the specific railroad, quarter, measure, and official CSV URL when citing a value.
Weekly Service
CSX retains four reported service measures from March 2017 through September 2026. BNSF, CN, NS and UP now have reviewed histories from March 2017. Legacy CP and KCS remain separate; combined CPKC starts in May 2025. Source gaps and known method changes remain visible. Qualified five-road comparisons remain limited to train speed. CN is available individually; its terminal-time treatment needs clarification before comparison.
Indexed overlays and weekly changes are RailStats.org calculations. Withheld values remain gaps; no cross-railroad normalization or ranking is performed. Trend lines and calculations do not bridge known method changes; other cross-road measures require separate review.
CSX historical methodology and source gaps · Recent train-speed coverage and comparison limitations · Individual measures and source notes · Explore Weekly Service
Clearing Yard Operations and Chicago Gateway
Clearing Yard uses six BRC Monday–Sunday reports, July 27–September 6, 2026. Chicago Gateway inventory and dwell cover 496 Sunday–Saturday periods from March 19–25, 2017 through September 13–19, 2026, with yard- and measure-specific gaps. Trains held retains seven reviewed weeks, August 2–September 19, 2026. Historical sources were retrieved September 21; the added Gateway reports were retrieved September 24 and rechecked September 29, 2026 UTC. Gibson dwell for September 13–19 is withheld because the supplementary source reports IHB Autos and that identity remains unresolved. Gateway source dates conflict with the Saturday–Friday reporting rule; that unresolved difference is disclosed. The two collections are not aligned or reconciled.
Reported values retain their original units. Week-to-week differences subtract the immediately preceding selected reporting week. Gateway calculations require consecutive available observations within the same reporting segment; a withheld point also withholds the following week’s change. Lines never bridge a withheld point or the provisional January 4–10, 2026 boundary. On-time departure changes use percentage points. Clearing’s relative-change chart divides each reported value by its first selected week and multiplies by 100. A non-positive baseline or non-finite value withholds that index. Selecting another inspected week does not change the baseline. This calculation shows relative movement, not equivalent service quality or evidence of cause.
The BRC review covers 402 records. Gateway historical checks cover 988 preserved report entries, workbook XML, separate PDF extraction and visual review of image reports. The historical baseline contains 10,890 inventory/dwell observations with 393 holds. The added September 13–19 week supplies 21 values and one Gibson dwell identity hold, bringing the published totals to 10,912 observations, 10,518 available values and 394 holds. This establishes source-record support, not uniform measurement methods. Some original inventory totals fail to reconcile and are not displayed as validated totals. Interchange-partner receipts do not sum to Clearing’s yard total and remain unadjusted. Inventory is cars present, not throughput or capacity; trains held identifies receiving carriers across the gateway, not individual yards or unique weekly delayed trains. Dwell populations and weighting are not fully established as comparable, so overlays do not support service-quality rankings or a combined gateway dwell average.
BRC Clearing’s overlapping July 31–August 6 report is excluded from its regular weekly series. The historical Gateway series is not joined to BRC. Supplementary “as of” timestamps change from morning to evening beginning January 4–10, 2026; this may be report preparation rather than a methodology change. We keep provisional separate segments and show a contextual note whenever a selected range includes earlier history. Invalid inventory dates are not silently repaired. A supplementary seven-day period with only its end printed has a calculated start six days earlier. Unavailable records and unexplained dwell zeros remain documented gaps, not substituted zeros. Barr inventory’s first eligible week is March 26–April 1, 2017. Kirk inventory for August 23–29, 2026 is withheld: the main workbook and portal give 1,947 cars, while the supplementary sheet and PDF give 1,957. Both reported figures are disclosed and neither is used in dependent calculations. Source reports and published observations
