AI-assembled from public SEC filings
North American Class I railroads peer review
Descriptive comparison assembled from public SEC filings and verified companyfacts.
Descriptive comparison — not investment advice. This feature-specific review is assembled from a frozen evidence pack of public SEC filing quotes and verified SEC companyfacts numbers. It is descriptive only and makes no judgment about which company is better. It is not a rating, recommendation, endorsement, forecast, or investment advice. Figures are as of their cited filing dates. See Disclaimer.
Methodology
Mechanical railroad cluster: North American Class I railroad operators in the existing grepcent universe with SEC SIC 4011 Railroads, Line-Haul Operating, constrained to the requested cached ticker set.
The cluster is selected mechanically from public SEC SIC 4011 railroad companies already present in grepcent's processed universe. Requested Canadian-domiciled SEC filers CNI and CP are disclosed in the definition but are not included unless present in the processed cache. Absolute-dollar rows are reported-currency filing facts when non-U.S. filers are present; ratio comparisons are unitless. The review publishes no proprietary index-membership labels.
Verified Quantitative Matrix
Numbers are templated from frozen SEC companyfacts-derived facts already verified by grepcent. Fiscal periods and filing dates are shown in each cell; comparability markers use day-level period ends and reported XBRL source concepts.
| Metric | UNP | CSX | NSC | CNI | CP |
|---|---|---|---|---|---|
| Revenue Mixed reporting concepts: us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CNI -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; CP -> us-gaap:Revenues; CSX -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; NSC -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; UNP -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 24,510,000,000 source · NUM_UNP_REVENUE_FY2025 | 14,092,000,000 source · NUM_CSX_REVENUE_FY2025 | 12,180,000,000 source · NUM_NSC_REVENUE_FY2025 | 17,304,000,000 source · NUM_CNI_REVENUE_FY2025 | 15,078,000,000 source · NUM_CP_REVENUE_FY2025 |
| Operating expense / revenue Mixed reporting concepts: us-gaap:OperatingIncomeLoss, us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CNI -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; CP -> us-gaap:OperatingIncomeLoss + us-gaap:Revenues; CSX -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; NSC -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; UNP -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 59.83% source · NUM_UNP_OPERATING_RATIO_FY2025 | 67.92% source · NUM_CSX_OPERATING_RATIO_FY2025 | 64.24% source · NUM_NSC_OPERATING_RATIO_FY2025 | 61.93% source · NUM_CNI_OPERATING_RATIO_FY2025 | 62.80% source · NUM_CP_OPERATING_RATIO_FY2025 |
| Operating margin Mixed reporting concepts: us-gaap:OperatingIncomeLoss, us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CNI -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; CP -> us-gaap:OperatingIncomeLoss + us-gaap:Revenues; CSX -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; NSC -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; UNP -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 40.17% source · NUM_UNP_OPERATING_MARGIN_FY2025 | 32.08% source · NUM_CSX_OPERATING_MARGIN_FY2025 | 35.76% source · NUM_NSC_OPERATING_MARGIN_FY2025 | 38.07% source · NUM_CNI_OPERATING_MARGIN_FY2025 | 37.20% source · NUM_CP_OPERATING_MARGIN_FY2025 |
| Net margin Mixed reporting concepts: us-gaap:NetIncomeLoss, us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CNI -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; CP -> us-gaap:NetIncomeLoss + us-gaap:Revenues; CSX -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; NSC -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; UNP -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 29.12% source · NUM_UNP_NET_MARGIN_FY2025 | 20.50% source · NUM_CSX_NET_MARGIN_FY2025 | 23.59% source · NUM_NSC_NET_MARGIN_FY2025 | 27.28% source · NUM_CNI_NET_MARGIN_FY2025 | 27.46% source · NUM_CP_NET_MARGIN_FY2025 |
| Return on equity Mixed reporting concepts: us-gaap:NetIncomeLoss, us-gaap:StockholdersEquity, us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest. Ticker concepts: CNI -> us-gaap:NetIncomeLoss + us-gaap:StockholdersEquity; CP -> us-gaap:NetIncomeLoss + us-gaap:StockholdersEquity; CSX -> us-gaap:NetIncomeLoss + us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest; NSC -> us-gaap:NetIncomeLoss + us-gaap:StockholdersEquity; UNP -> us-gaap:NetIncomeLoss + us-gaap:StockholdersEquity. | 38.65% source · NUM_UNP_ROE_FY2025 | 21.95% source · NUM_CSX_ROE_FY2025 | 18.48% source · NUM_NSC_ROE_FY2025 | 21.88% source · NUM_CNI_ROE_FY2025 | 9.03% source · NUM_CP_ROE_FY2025 |
| Capital expenditures | 3,791,000,000 source · NUM_UNP_CAPEX_FY2025 | 2,902,000,000 source · NUM_CSX_CAPEX_FY2025 | 2,204,000,000 source · NUM_NSC_CAPEX_FY2025 | 3,658,000,000 source · NUM_CNI_CAPEX_FY2025 | 3,102,000,000 source · NUM_CP_CAPEX_FY2025 |
| Capex / revenue Mixed reporting concepts: us-gaap:PaymentsToAcquirePropertyPlantAndEquipment, us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CNI -> us-gaap:PaymentsToAcquirePropertyPlantAndEquipment + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; CP -> us-gaap:PaymentsToAcquirePropertyPlantAndEquipment + us-gaap:Revenues; CSX -> us-gaap:PaymentsToAcquirePropertyPlantAndEquipment + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; NSC -> us-gaap:PaymentsToAcquirePropertyPlantAndEquipment + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; UNP -> us-gaap:PaymentsToAcquirePropertyPlantAndEquipment + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 15.47% source · NUM_UNP_CAPEX_INTENSITY_FY2025 | 20.59% source · NUM_CSX_CAPEX_INTENSITY_FY2025 | 18.10% source · NUM_NSC_CAPEX_INTENSITY_FY2025 | 21.14% source · NUM_CNI_CAPEX_INTENSITY_FY2025 | 20.57% source · NUM_CP_CAPEX_INTENSITY_FY2025 |
| Free cash flow | 5,499,000,000 source · NUM_UNP_FREE_CASH_FLOW_FY2025 | 1,711,000,000 source · NUM_CSX_FREE_CASH_FLOW_FY2025 | 2,157,000,000 source · NUM_NSC_FREE_CASH_FLOW_FY2025 | 3,391,000,000 source · NUM_CNI_FREE_CASH_FLOW_FY2025 | 2,207,000,000 source · NUM_CP_FREE_CASH_FLOW_FY2025 |
| Liabilities / equity leverage Mixed reporting concepts: us-gaap:Liabilities, us-gaap:StockholdersEquity, us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest. Ticker concepts: CNI -> us-gaap:Liabilities + us-gaap:StockholdersEquity; CP -> us-gaap:Liabilities + us-gaap:StockholdersEquity; CSX -> us-gaap:Liabilities + us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest; NSC -> us-gaap:Liabilities + us-gaap:StockholdersEquity; UNP -> us-gaap:Liabilities + us-gaap:StockholdersEquity. | 2.77 source · NUM_UNP_LIABILITIES_TO_EQUITY_FY2025 | 2.32 source · NUM_CSX_LIABILITIES_TO_EQUITY_FY2025 | 1.91 source · NUM_NSC_LIABILITIES_TO_EQUITY_FY2025 | 1.71 source · NUM_CNI_LIABILITIES_TO_EQUITY_FY2025 | 0.85 source · NUM_CP_LIABILITIES_TO_EQUITY_FY2025 |
| Dividends paid Mixed reporting concepts: us-gaap:PaymentsOfDividends, us-gaap:PaymentsOfDividendsCommonStock. Ticker concepts: CNI -> us-gaap:PaymentsOfDividendsCommonStock; CP -> us-gaap:PaymentsOfDividendsCommonStock; CSX -> us-gaap:PaymentsOfDividendsCommonStock; NSC -> us-gaap:PaymentsOfDividendsCommonStock; UNP -> us-gaap:PaymentsOfDividends. | 3,236,000,000 source · NUM_UNP_DIVIDENDS_PAID_FY2025 | 972,000,000 source · NUM_CSX_DIVIDENDS_PAID_FY2025 | 1,215,000,000 source · NUM_NSC_DIVIDENDS_PAID_FY2025 | 2,208,000,000 source · NUM_CNI_DIVIDENDS_PAID_FY2025 | 796,000,000 source · NUM_CP_DIVIDENDS_PAID_FY2025 |
| Share buybacks | 2,679,000,000 source · NUM_UNP_SHARE_BUYBACKS_FY2025 | 1,396,000,000 source · NUM_CSX_SHARE_BUYBACKS_FY2025 | 534,000,000 source · NUM_NSC_SHARE_BUYBACKS_FY2025 | 2,059,000,000 source · NUM_CNI_SHARE_BUYBACKS_FY2025 | 3,942,000,000 source · NUM_CP_SHARE_BUYBACKS_FY2025 |
| Cash and equivalents | 1,266,000,000 source · NUM_UNP_CASH_FY2025 | Not available. | 1,530,000,000 source · NUM_NSC_CASH_FY2025 | 350,000,000 source · NUM_CNI_CASH_FY2025 | 184,000,000 source · NUM_CP_CASH_FY2025 |
| Volume / RTM / carload KPIs | Quarantined: Only 0 of 5 companies have a verified fact; threshold is 2. | ||||
Code-computed comparisons
- grepcent-computed capex intensity range: range endpoints are UNP (15.47%) and CNI (21.14%).
- grepcent-computed operating expense / revenue range: range endpoints are UNP (59.83%) and CSX (67.92%).
Market-risk companion: risk and factor comparison from lmfin. It is descriptive and separate from the SEC fundamentals review.
Narrative Matrix
| Dimension | UNP | CSX | NSC | CNI | CP |
|---|---|---|---|---|---|
| Business model | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | In its latest annual MD&A, NSC describes this business model item. [FACT:Q_NSC_BUSINESS_MODEL_1] Our network serves a majority of the country's population and manufacturing base, with connections to every major container port on the Atlantic coast as well as major ports in the Gulf Coast and Great Lakes. company page · source filing · fact Q_NSC_BUSINESS_MODEL_1 · filed 2026-02-09 | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Geographic and customer exposure | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Capital allocation | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Stated strategy in filings | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Idiosyncratic risks in filings | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Recent narrative change | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
Gate summary
Quarantined quantitative rows
- rail_volume_kpis: Only 0 of 5 companies have a verified fact; threshold is 2.
Quarantined dimensions
- geographic_customer_exposure: No verified cells survived the gate.
- capital_allocation: No verified cells survived the gate.
- stated_strategy: No verified cells survived the gate.
- idiosyncratic_risks: No verified cells survived the gate.
- recent_narrative_change: No verified cells survived the gate.
Quarantined cells
- UNP / business_model: No direct dimension-relevant quote survived the evidence gate.
- CSX / business_model: No direct dimension-relevant quote survived the evidence gate.
- CNI / business_model: No direct dimension-relevant quote survived the evidence gate.
- CP / business_model: No direct dimension-relevant quote survived the evidence gate.
- UNP / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- CSX / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- NSC / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- CNI / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- CP / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- UNP / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- CSX / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- NSC / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- CNI / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- CP / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- UNP / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- CSX / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- NSC / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- CNI / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- CP / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- UNP / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- CSX / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- NSC / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- CNI / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- CP / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.