Canadian National Railway Co (CNI) Gross Margin (2009 - 2026)
Canadian National Railway (CNI) posted Gross Margin of 89.59% for the quarter ended Jun 30, 2026, up 0.38 percentage points from 89.21% a year earlier but down 0.50 percentage points from the prior quarter.
Canadian National Railway Co (CNI) Gross Margin (2009 - 2026) Analysis & Trends
For the trailing twelve months through Jun 30, 2026, Gross Margin at Canadian National Railway was 89.79%, up 0.82 percentage points year-over-year.
- Quarterly Gross Margin has run from a low of 87.81% in the quarter ended Sep 30, 2022 to a high of 90.30% in the quarter ended Dec 31, 2025 over five years.
- On a year-over-year basis, Gross Margin has increased in each of the last 12 quarters, with an average year-over-year change of +0.61 percentage points over the last eight quarters.
- The strongest year-over-year quarter for Gross Margin in the past five years was the quarter ended Dec 31, 2021, with a gain of 3.85 percentage points; the weakest was the quarter ended Mar 31, 2023, with a drop of 0.36 percentage points.
- According to Business Quant data, Gross Margin for the three prior quarters was 90.09% (quarter ended Mar 31, 2026), 90.30% (quarter ended Dec 31, 2025) and 89.17% (quarter ended Sep 30, 2025).
Peer Comparison
Historic Data
| Date | Value |
|---|---|
| Jun 30, 2026 | 89.59% |
| Mar 31, 2026 | 90.09% |
| Dec 31, 2025 | 90.30% |
| Sep 30, 2025 | 89.17% |
| Jun 30, 2025 | 89.21% |
| Mar 31, 2025 | 88.78% |
| Dec 31, 2024 | 89.24% |
| Sep 30, 2024 | 88.64% |
| Jun 30, 2024 | 88.43% |
| Mar 31, 2024 | 88.37% |
| Dec 31, 2023 | 89.13% |
| Sep 30, 2023 | 88.31% |
| Jun 30, 2023 | 88.17% |
| Mar 31, 2023 | 88.15% |
| Dec 31, 2022 | 88.62% |
| Sep 30, 2022 | 87.81% |
| Jun 30, 2022 | 88.19% |
| Mar 31, 2022 | 88.51% |
| Dec 31, 2021 | 88.41% |
| Sep 30, 2021 | 88.16% |
Canadian National Railway Co Gross Margin API
Pull this series into your own models, spreadsheets and apps with the Business Quant
Historical Metrics API. The request below matches the chart above — change the
frequency, period or values and it follows. Swap YOUR_API_KEY for your own key.
https://data.businessquant.com/historic?slug=gross-margin&ticker=CNI&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "gross-margin", "ticker": "CNI", "period": "max", "api_key": "YOUR_API_KEY"}
data = requests.get(url, params=params).json()
const res = await fetch("https://data.businessquant.com/historic?slug=gross-margin&ticker=CNI&period=max&api_key=YOUR_API_KEY");
const data = await res.json();