Skip to content

NORFOLK SOUTHERN CORP: filings

Every NORFOLK SOUTHERN CORP annual and quarterly report in the SEC record with the published financial measures it tagged, 68 filings, each linked to its SEC index.

Filings with published measures

Each page shows what one filing reported, as tagged in that filing, with the periods it covered. Later filings can restate a value; the company overview shows the latest-filed value per period.

FormFiledFiscal periodMeasuresFactsSEC accession
10-Q2026-07-23fiscal Q2 2026421220001628280-26-049326
10-Q2026-04-24fiscal Q1 202642880001628280-26-027051
10-K2026-02-09fiscal FY 2025481250001628280-26-006268
10-Q2025-10-23fiscal Q3 2025421280001628280-25-046128
10-Q2025-07-29fiscal Q2 2025421220000702165-25-000028
10-Q2025-04-23fiscal Q1 202542880000702165-25-000013
10-K2025-02-10fiscal FY 2024481250000702165-25-000008
10-Q2024-10-22fiscal Q3 2024411240000702165-24-000035
10-Q2024-07-26fiscal Q2 2024411180000702165-24-000028
10-Q2024-04-24fiscal Q1 202442880000702165-24-000009
10-K2024-02-05fiscal FY 2023481250000702165-24-000005
10-Q2023-10-25fiscal Q3 2023421280000702165-23-000037
10-Q2023-07-27fiscal Q2 2023421220000702165-23-000032
10-Q2023-04-26fiscal Q1 202342880000702165-23-000017
10-K2023-02-03fiscal FY 2022481250000702165-23-000010
10-Q2022-10-26fiscal Q3 2022421280000702165-22-000039
10-Q2022-07-27fiscal Q2 2022421220000702165-22-000028
10-Q2022-04-27fiscal Q1 202242880000702165-22-000014
10-K2022-02-04fiscal FY 2021481250000702165-22-000007
10-Q2021-10-27fiscal Q3 2021421280000702165-21-000034
10-Q2021-07-28fiscal Q2 2021421220000702165-21-000025
10-Q2021-04-28fiscal Q1 202142880000702165-21-000011
10-K2021-02-04fiscal FY 2020481650000702165-21-000006
10-Q2020-10-28fiscal Q3 2020421280000702165-20-000042
10-Q2020-07-29fiscal Q2 2020421220000702165-20-000033
10-Q2020-04-29fiscal Q1 202042880000702165-20-000016
10-K2020-02-06fiscal FY 2019481620000702165-20-000011
10-Q2019-10-23fiscal Q3 2019461350000702165-19-000066
10-Q2019-07-24fiscal Q2 2019461290000702165-19-000054
10-Q2019-04-24fiscal Q1 201946930000702165-19-000033
10-K2019-02-08fiscal FY 2018451600000702165-19-000012
10-Q2018-10-24fiscal Q3 2018421160000702165-18-000057
10-Q2018-07-25fiscal Q2 2018411140000702165-18-000040
10-Q2018-04-25fiscal Q1 201842870000702165-18-000021
10-K2018-02-05fiscal FY 2017401460000702165-18-000011
10-Q2017-10-25fiscal Q3 2017411120000702165-17-000089
10-Q2017-07-26fiscal Q2 2017381060000702165-17-000067
10-Q2017-04-26fiscal Q1 201738800000702165-17-000043
10-K2017-02-06fiscal FY 2016401460000702165-17-000018
10-Q2016-10-26fiscal Q3 2016381100000702165-16-000307
10-Q2016-07-27fiscal Q2 2016381080000702165-16-000284
10-Q2016-04-22fiscal Q1 201638800000702165-16-000232
10-K2016-02-08fiscal FY 2015361350000702165-16-000162
10-Q2015-10-28fiscal Q3 201534940000702165-15-000113
10-Q2015-07-27fiscal Q2 201534940000702165-15-000075
10-Q2015-04-29fiscal Q1 201534720000702165-15-000045
10-K2015-02-11fiscal FY 2014391440000702165-15-000023
10-Q2014-10-22fiscal Q3 2014371000000702165-14-000084
10-Q2014-07-23fiscal Q2 2014371000000702165-14-000056
10-Q2014-04-23fiscal Q1 201437780000702165-14-000028
10-K2014-02-14fiscal FY 2013391440000702165-14-000019
10-Q2013-10-23fiscal Q3 201333870000702165-13-000136
10-Q2013-07-24fiscal Q2 201336930000702165-13-000125
10-Q2013-04-24fiscal Q1 201336740000702165-13-000089
10-K2013-02-15fiscal FY 2012381410000702165-13-000042
10-Q2012-10-25fiscal Q3 201236920000702165-12-000164
10-Q2012-07-27fiscal Q2 201236920000702165-12-000122
10-Q2012-04-27fiscal Q1 201236740000702165-12-000073
10-K2012-02-15fiscal FY 2011381410000702165-12-000043
10-Q2011-10-28fiscal Q3 201136920000702165-11-000164
10-Q2011-07-29fiscal Q2 201136920000702165-11-000133
10-Q2011-04-29fiscal Q1 201139800000702165-11-000087
10-K2011-02-17fiscal FY 2010411490000702165-11-000047
10-Q2010-10-29fiscal Q3 2010381020000702165-10-000163
10-Q2010-07-30fiscal Q2 2010381020000702165-10-000123
10-Q2010-04-30fiscal Q1 201033680000702165-10-000075
10-K2010-02-17fiscal FY 200933880000702165-10-000049
10-Q2009-10-30fiscal Q3 200933860000702165-09-000170

Inspect the source

Entity
NORFOLK SOUTHERN CORP / CIK 0000702165
Captured
2026-09-19T14:57:55.061Z
SEC response SHA-256
19e2b893fa81e7209a06aa2c2c327b0ca912a9a6bcb5c535439c80475eed4759

Current SEC company facts · Download the original response snapshot (gzip) · Download the selected JSON

Every published concept a filing tagged, with the periods it covered, as reported in that filing at capture time. Forms 10-K, 10-K/A, 10-Q, 10-Q/A, 20-F, 20-F/A, 40-F, 40-F/A. A filing page needs at least 8 published concepts. Later filings can restate these values; the company history pages show the latest-filed value per period.

Public company accounting reference, not market prices, returns, an investment recommendation, or ALPHAC performance. Validate a separately constructed return series with the validation API; accounting values are not returns.

Use this in research

A financial period ends before its results become public. Use the filing date as a minimum availability boundary, inspect amendments, and retain the original filing vintage when testing historical signals. This latest-filed selection can contain information unavailable at the time.

These pages do not supply prices, total-return histories, corporate-action adjustments or a tradable universe. Build those inputs separately before evaluating a strategy. A profitable backtest can still reflect selection bias or costs that were left out.

Research methodology · Execution and cost assumptions · Check backtest overfitting

Build with the open-source tools

Use these accounting records as inspectable inputs. When you have constructed a return series, the validation tools can help test its statistical evidence and preserve the result with its limitations.

Read the published dataset with Python
import json
from urllib.request import urlopen

with urlopen("https://canlicapital.com/company-data/0000702165.json") as response:
    record = json.load(response)
print(record["fetched_at"])
print(record["policy"])
for concept in record["concepts"]:
    print(concept["tag"], next(iter(concept["observations"])))