← All studies · askamerica.ai

Rail freight leads industrial production by about zero to one month — far shorter than the widely cited 1-2 quarters; truck volume can't be tested from this corpus

STB EP724 rail carloads vs. FRED INDPRO, monthly YoY %, 2018-2026 (2024 excluded from INDPRO, missing from corpus)

Rail Freight vs. Industrial Production: A Near-Contemporaneous Relationship, Not a Long Lead STB EP724 rail carloads (national, monthly avg weekly) vs. FRED INDPRO, YoY % change, 2018-2026 (2024 excluded — data gap) Correlation peaks at lag 0 months r = 0.62 (all commodities); r = 0.57 (ex coal & grain) Contemporaneous YoY correlation is the single highest of any lag tested, -6 to +6 months, under both specifications Best rail-leads-INDPRO reading +1 month r = 0.595 (all); r = 0.551 (ex coal & grain) A real but very short lead, not the 1-2 quarters often cited for freight indexes generally YoY % change: rail carloads vs. industrial production -20 -15 -10 -5 0 5 10 15 20 month YoY % change 2018-03 2018-06 2018-09 2018-12 2019-03 2019-06 2019-09 2019-12 2020-03 2020-06 2020-09 2020-12 2021-03 2021-06 2021-09 2021-12 2022-03 2022-06 2022-09 2022-12 2023-03 2023-06 2023-09 2023-12 2026-03 2026-06 Rail carloads, all commodities (YoY %) Industrial production (YoY %) Both series track the same cycles (2019 slowdown, 2020 pandemic crash, 2021 rebound) with essentially no visible separation — a leading series would show its turns notably earlier Correlation (r) by lag: all-commodity rail vs. ex-coal-and-grain rail -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 lag (rail relative to INDPRO) correlation r -6mo -5mo -4mo -3mo -2mo -1mo +0mo +1mo +2mo +3mo +4mo +5mo +6mo All commodities Ex coal & grain (AAR FRI-style) Excluding coal and grain — AAR's own methodology for its Freight Rail Index — does not move the peak: both specifications peak at 0 months, confirming the near-contemporaneous finding is not an artifact of commodity mix Rail data: monthly average of weekly carloads_originated filings, 2017-2026, shown both with all commodities and with coal/grain excluded. INDPRO: Federal Reserve Industrial Production Index. 2024 is missing from the loaded INDPRO series (reported as a data-quality defect) and is excluded from the correlation; no truck-freight volume series (ATA Truck Tonnage Index / BTS TSI-Freight) exists in this corpus, reported as a sourcing… AskAmerica · askamerica.ai
SVG

Summary

For rail, the corpus's own data does not support the popular claim of a multi-month lead. Computing a fitted lag directly — cross-correlating year-over-year growth in national rail carloads against year-over-year growth in the Federal Reserve's Industrial Production Index across lags of -6 to +6 months, 2018-2026 — the correlation is highest at a 0-month lag (r = 0.62), with a 1-month rail-leads-production reading a close second (r = 0.595). Repeating the test excluding coal and grain — the two commodities AAR itself strips out to build its own Freight Rail Index (FRI), because their movement is driven by weather, exports and non-cyclical factors rather than domestic industrial demand — gives the same shape: peak at 0 months (r = 0.57), +1 month a close second (r = 0.55). Rail freight volume moves essentially with industrial production, not meaningfully ahead of it, under either specification.

For truck freight, this corpus has no monthly volume/tonnage series at all — no ATA Truck Tonnage Index, no BTS Transportation Services Index (Freight), nothing that measures truck shipment volume over time. That gap is reported below as a sourcing issue, not glossed over. Primary-source reads of ATA/SONAR's own documentation describe the Truck Tonnage Index as based on committed, longer-term contract freight that "often move[s] ahead of spot market trends" — a directional, qualitative lead claim, not a quantified number of months — and Cass Information Systems' own materials describe freight flows broadly as leading GDP/industrial statistics by "two to three quarters," a claim not independently testable here for lack of the underlying series. AAR's own framing of its FRI (built on rail carloads ex-coal/grain plus intermodal) as "a leading indicator" reflecting "activity that is still working its way through production pipelines and supply chains" is consistent in direction with, but not in magnitude with, what the direct correlation computed here shows (0-1 month, not multiple quarters).

Primary sources read (via web_fetch) and what each contributed

Two further URLs were attempted and failed: BTS's own TSI-Freight documentation page (HTTP 403) and FRED's Cass Freight Index series page (request timed out). Neither failure changes a reported figure — no number in this report is sourced to either page.

What the rail totals include — disclosed, not silently dropped

Two rail series are used, both fully disclosed and both computed live in this session: (1) all commodities, no exclusions — every sub-measure on file for carloads_originated, including Coal and Grain, summed/averaged across all 7 Class I railroads; and (2) coal and grain excluded, matching AAR's own published Freight Rail Index construction, run specifically as a robustness check once the AAR source confirmed that methodology. Both are shown side by side in the dashboard's lag-correlation chart; both peak at the same 0-month lag, so the conclusion does not depend on which specification is used.

A distinct-value check on the commodity/sub_measure field also surfaced a labeling wrinkle in the source data worth noting on its own: the underlying filings use inconsistent casing for the same commodity across years (e.g. rows labeled in all-caps and in title case both exist for every commodity name). This does not affect either rail series reported here, since both filter/aggregate case-insensitively or sum across the whole column — but a query filtering on one exact casing alone would silently miss years filed under the other convention.

Method — why a fitted lag, not a pipeline estimate

The question asks for a measured lead time, which is different from an engineering guess built by summing physical-pipeline stages (loading, transit, unloading). The approach used here tests the actual statistical relationship between the two real data series: for every candidate lag from -6 to +6 months, compute the Pearson correlation between rail YoY growth in month t and industrial-production YoY growth in month t+lag, and see which lag produces the strongest relationship. YoY transforms were used (rather than raw index levels) specifically to strip out the strong seasonal pattern in weekly rail filings (the count of railroad-week filings per calendar month varies with how ISO weeks fall across month boundaries), which would otherwise swamp any genuine cyclical lead/lag signal.

n ranges from 72 to 78 monthly observations per lag (2018-2023 plus 2026, since 2024 is missing from the loaded industrial-production series — see Data gaps below). That is enough to distinguish a meaningfully positive lead (r rising then falling around some positive lag) from a flat or peaked-at-zero relationship, which is what was found under both commodity specifications.

Data gaps encountered (reported live, not silently worked around)

What This Report Does Not Answer

Every query behind this report

1 warehouse call ran in this session, in order. Each is reproducible against the same snapshot.

query — 116 rows — 7431 ms
SELECT DATE_TRUNC(CAST(report_period_start_date AS TIMESTAMP), MONTH) AS month, AVG(fact_value_analytics) AS avg_weekly_carloads_excl_coal_grain
FROM transport.rail_service_performance
WHERE measure_name_analytics = 'carloads_originated'
  AND UPPER(sub_measure) NOT IN ('COAL','GRAIN')
GROUP BY DATE_TRUNC(CAST(report_period_start_date AS TIMESTAMP), MONTH)
ORDER BY month

Sources

  1. STB EP 724 Rail Service Data — carloads originated (all commodities)
    Show SQL
    SELECT DATE_TRUNC(CAST(report_period_start_date AS TIMESTAMP), MONTH) AS month, AVG(fact_value_analytics) AS avg_weekly_carloads FROM transport.rail_service_performance WHERE measure_name_analytics = 'carloads_originated' GROUP BY DATE_TRUNC(CAST(report_period_start_date AS TIMESTAMP), MONTH) ORDER BY month
  2. STB EP 724 Rail Service Data — carloads originated, ex coal & grain
    Show SQL
    SELECT DATE_TRUNC(CAST(report_period_start_date AS TIMESTAMP), MONTH) AS month, AVG(fact_value_analytics) AS avg_weekly_carloads_excl_coal_grain FROM transport.rail_service_performance WHERE measure_name_analytics = 'carloads_originated' AND UPPER(sub_measure) NOT IN ('COAL','GRAIN') GROUP BY DATE_TRUNC(CAST(report_period_start_date AS TIMESTAMP), MONTH) ORDER BY month
  3. FRED INDPRO (Industrial Production Index)
    Show SQL
    SELECT "date", value FROM econ.fred_indicators WHERE series = 'INDPRO' AND "date" >= DATE '2016-01-01' ORDER BY "date"
  4. AAR Rail Industry Overview, April 2026 (primary source, fetched in full via web_fetch)
  5. Cass Freight Index methodology (primary source, fetched in full via web_fetch)
  6. SONAR Knowledge Center — ATA Truck Tonnage Index (TTON) (primary source, fetched in full via web_fetch)
  7. Transport Topics — Truck Tonnage Nudges 0.2% Higher in November (fetched in full via web_fetch)
  8. FreightWaves — Rail and truck data highlight a strong industrial economy (fetched in full via web_fetch)