OLD DOMINION FREIGHT LINE, INC.
ODFL Industrials · TransportationEach grade is a single reported quarter's assessment, never an average — a card shows the grade at the newest quarter in view, so it follows the period and range controls above. Latest scored quarter: 2026-06-30.
▲+38 over range · as of 2026-06-30
Revenue +10.4% YoY, earnings +30.5% YoY · sector avg 71
▲+7 over range · as of 2026-06-30
22.6% net margin, 24% return on equity, 20% free-cash-flow margin, profitable in 8 of last 8 quarters · sector avg 49
▲+4 over range · as of 2026-06-30
Net cash position, 6122x interest coverage, 1.9x current ratio · sector avg 68
Trailing twelve months · ending 2026-06-30 · green = improving · click a row to chart it
Revenue $5.6B +2.7% Gross margin — — Operating margin 25.8% +1.3pp Net margin 19.4% +1.0pp Net income $1.1B +8.1%Filings
TTM 16-09 → TTM 26-06 · following the period bar 21 match| Year | Q1 | Q2 | Q3 | FY |
|---|---|---|---|---|
| 2026 | 10-Q Q1 2026 | 10-Q Q2 2026 | no filing | no filing |
| 2025 | 10-Q Q1 2025 | 10-Q Q2 2025 | 10-Q Q3 2025 | 10-K FY 2025 |
| 2024 | 10-Q Q1 2024 | 10-Q Q2 2024 | 10-Q Q3 2024 | 10-K FY 2024 |
| 2023 | 10-Q Q1 2023 | 10-Q Q2 2023 | 10-Q Q3 2023 | 10-K FY 2023 |
| 2022 | 10-Q Q1 2022 | 10-Q Q2 2022 | 10-Q Q3 2022 | 10-K FY 2022 |
| 2021 | 10-Q Q1 2021 | 10-Q Q2 2021 | 10-Q Q3 2021 | 10-K FY 2021 |
| 2020 | 10-Q Q1 2020 | 10-Q Q2 2020 | 10-Q Q3 2020 | 10-K FY 2020 |
| 2019 | no filing | no filing | 10-Q Q3 2019 | 10-K FY 2019 |
All 21 filings
10-Q Q2 2024 2024-08-05 Pro → 10-Q Q1 2024 2024-05-07 Pro → 10-Q Q3 2023 2023-11-06 Pro → 10-Q Q2 2023 2023-08-04 Pro → 10-Q Q1 2023 2023-05-08 Pro → 10-Q Q3 2022 2022-11-03 Pro → 10-Q Q2 2022 2022-08-03 Pro → 10-Q Q1 2022 2022-05-04 Pro → 10-Q Q3 2021 2021-11-03 Pro → 10-Q Q2 2021 2021-08-05 Pro → 10-Q Q1 2021 2021-05-04 Pro → 10-Q Q3 2020 2020-11-06 Pro → 10-Q Q2 2020 2020-08-06 Pro → 10-Q Q1 2020 2020-05-05 Pro → 10-Q Q3 2019 2019-11-04 Pro →Filing-level fact detail is a Pro feature. The grades and figures above are free. See Pro plans
Trends
| Period | Period end | Revenue |
|---|---|---|
| TTM 16-09 | 2016-09-30 | not reported |
| TTM 16-12 | 2016-12-31 | not reported |
| TTM 17-03 | 2017-03-31 | not reported |
| TTM 17-06 | 2017-06-30 | not reported |
| TTM 17-09 | 2017-09-30 | not reported |
| TTM 17-12 | 2017-12-31 | $3.4B |
| TTM 18-03 | 2018-03-31 | $3.5B |
| TTM 18-06 | 2018-06-30 | $3.7B |
| TTM 18-09 | 2018-09-30 | $3.9B |
| TTM 18-12 | 2018-12-31 | $4.0B |
| TTM 19-03 | 2019-03-31 | $4.1B |
| TTM 19-06 | 2019-06-30 | $4.1B |
| TTM 19-09 | 2019-09-30 | $4.1B |
| TTM 19-12 | 2019-12-31 | $4.1B |
| TTM 20-03 | 2020-03-31 | $4.1B |
| TTM 20-06 | 2020-06-30 | $3.9B |
| TTM 20-09 | 2020-09-30 | $4.0B |
| TTM 20-12 | 2020-12-31 | $4.0B |
| TTM 21-03 | 2021-03-31 | $4.2B |
| TTM 21-06 | 2021-06-30 | $4.6B |
| TTM 21-09 | 2021-09-30 | $4.9B |
| TTM 21-12 | 2021-12-31 | $5.3B |
| TTM 22-03 | 2022-03-31 | $5.6B |
| TTM 22-06 | 2022-06-30 | $6.0B |
| TTM 22-09 | 2022-09-30 | $6.2B |
| TTM 22-12 | 2022-12-31 | $6.3B |
| TTM 23-03 | 2023-03-31 | $6.2B |
| TTM 23-06 | 2023-06-30 | $6.0B |
| TTM 23-09 | 2023-09-30 | $5.9B |
| TTM 23-12 | 2023-12-31 | $5.9B |
| TTM 24-03 | 2024-03-31 | $5.9B |
| TTM 24-06 | 2024-06-30 | $6.0B |
| TTM 24-09 | 2024-09-30 | $5.9B |
| TTM 24-12 | 2024-12-31 | $5.8B |
| TTM 25-03 | 2025-03-31 | $5.7B |
| TTM 25-06 | 2025-06-30 | $5.6B |
| TTM 25-09 | 2025-09-30 | $5.6B |
| TTM 25-12 | 2025-12-31 | $5.5B |
| TTM 26-03 | 2026-03-31 | $5.5B |
| TTM 26-06 | 2026-06-30 | $5.6B |
| Period | Period end | Net income |
|---|---|---|
| TTM 16-09 | 2016-09-30 | $299.5M |
| TTM 16-12 | 2016-12-31 | $295.8M |
| TTM 17-03 | 2017-03-31 | $301.3M |
| TTM 17-06 | 2017-06-30 | $318.3M |
| TTM 17-09 | 2017-09-30 | $335.0M |
| TTM 17-12 | 2017-12-31 | $463.8M |
| TTM 18-03 | 2018-03-31 | $507.3M |
| TTM 18-06 | 2018-06-30 | $572.3M |
| TTM 18-09 | 2018-09-30 | $643.5M |
| TTM 18-12 | 2018-12-31 | $605.7M |
| TTM 19-03 | 2019-03-31 | $629.7M |
| TTM 19-06 | 2019-06-30 | $640.3M |
| TTM 19-09 | 2019-09-30 | $631.0M |
| TTM 19-12 | 2019-12-31 | $615.5M |
| TTM 20-03 | 2020-03-31 | $615.4M |
| TTM 20-06 | 2020-06-30 | $589.1M |
| TTM 20-09 | 2020-09-30 | $626.9M |
| TTM 20-12 | 2020-12-31 | $672.7M |
| TTM 21-03 | 2021-03-31 | $738.9M |
| TTM 21-06 | 2021-06-30 | $860.6M |
| TTM 21-09 | 2021-09-30 | $945.4M |
| TTM 21-12 | 2021-12-31 | $1.0B |
| TTM 22-03 | 2022-03-31 | $1.1B |
| TTM 22-06 | 2022-06-30 | $1.2B |
| TTM 22-09 | 2022-09-30 | $1.3B |
| TTM 22-12 | 2022-12-31 | $1.4B |
| TTM 23-03 | 2023-03-31 | $1.4B |
| TTM 23-06 | 2023-06-30 | $1.3B |
| TTM 23-09 | 2023-09-30 | $1.2B |
| TTM 23-12 | 2023-12-31 | $1.2B |
| TTM 24-03 | 2024-03-31 | $1.2B |
| TTM 24-06 | 2024-06-30 | $1.3B |
| TTM 24-09 | 2024-09-30 | $1.2B |
| TTM 24-12 | 2024-12-31 | $1.2B |
| TTM 25-03 | 2025-03-31 | $1.1B |
| TTM 25-06 | 2025-06-30 | $1.1B |
| TTM 25-09 | 2025-09-30 | $1.1B |
| TTM 25-12 | 2025-12-31 | $1.0B |
| TTM 26-03 | 2026-03-31 | $1.0B |
| TTM 26-06 | 2026-06-30 | $1.1B |
| Period | Period end | Operating income |
|---|---|---|
| TTM 16-09 | 2016-09-30 | $484.3M |
| TTM 16-12 | 2016-12-31 | $483.8M |
| TTM 17-03 | 2017-03-31 | $492.4M |
| TTM 17-06 | 2017-06-30 | $519.4M |
| TTM 17-09 | 2017-09-30 | $545.9M |
| TTM 17-12 | 2017-12-31 | $575.9M |
| TTM 18-03 | 2018-03-31 | $617.1M |
| TTM 18-06 | 2018-06-30 | $677.2M |
| TTM 18-09 | 2018-09-30 | $741.7M |
| TTM 18-12 | 2018-12-31 | $817.1M |
| TTM 19-03 | 2019-03-31 | $846.1M |
| TTM 19-06 | 2019-06-30 | $860.1M |
| TTM 19-09 | 2019-09-30 | $849.3M |
| TTM 19-12 | 2019-12-31 | $818.7M |
| TTM 20-03 | 2020-03-31 | $823.5M |
| TTM 20-06 | 2020-06-30 | $788.1M |
| TTM 20-09 | 2020-09-30 | $840.8M |
| TTM 20-12 | 2020-12-31 | $906.9M |
| TTM 21-03 | 2021-03-31 | $993.4M |
| TTM 21-06 | 2021-06-30 | $1.2B |
| TTM 21-09 | 2021-09-30 | $1.3B |
| TTM 21-12 | 2021-12-31 | $1.4B |
| TTM 22-03 | 2022-03-31 | $1.5B |
| TTM 22-06 | 2022-06-30 | $1.7B |
| TTM 22-09 | 2022-09-30 | $1.8B |
| TTM 22-12 | 2022-12-31 | $1.8B |
| TTM 23-03 | 2023-03-31 | $1.8B |
| TTM 23-06 | 2023-06-30 | $1.7B |
| TTM 23-09 | 2023-09-30 | $1.6B |
| TTM 23-12 | 2023-12-31 | $1.6B |
| TTM 24-03 | 2024-03-31 | $1.6B |
| TTM 24-06 | 2024-06-30 | $1.7B |
| TTM 24-09 | 2024-09-30 | $1.6B |
| TTM 24-12 | 2024-12-31 | $1.5B |
| TTM 25-03 | 2025-03-31 | $1.5B |
| TTM 25-06 | 2025-06-30 | $1.4B |
| TTM 25-09 | 2025-09-30 | $1.4B |
| TTM 25-12 | 2025-12-31 | $1.4B |
| TTM 26-03 | 2026-03-31 | $1.3B |
| TTM 26-06 | 2026-06-30 | $1.4B |
Grade history
Point-in-time: each period shows the grade of the quarter it ends at — grades are never summed or averaged across a window.
Hover to read every grade at a period · shared with the trends chart · axis fixed 0–100
| Period | Period end | Growth | Quality | Safety |
|---|---|---|---|---|
| TTM 16-09 | 2016-09-30 | not scored | not scored | not scored |
| TTM 16-12 | 2016-12-31 | not scored | not scored | not scored |
| TTM 17-03 | 2017-03-31 | not scored | not scored | not scored |
| TTM 17-06 | 2017-06-30 | not scored | not scored | not scored |
| TTM 17-09 | 2017-09-30 | not scored | not scored | not scored |
| TTM 17-12 | 2017-12-31 | not scored | not scored | not scored |
| TTM 18-03 | 2018-03-31 | not scored | not scored | not scored |
| TTM 18-06 | 2018-06-30 | not scored | not scored | not scored |
| TTM 18-09 | 2018-09-30 | not scored | not scored | not scored |
| TTM 18-12 | 2018-12-31 | not scored | not scored | not scored |
| TTM 19-03 | 2019-03-31 | not scored | not scored | not scored |
| TTM 19-06 | 2019-06-30 | not scored | not scored | not scored |
| TTM 19-09 | 2019-09-30 | not scored | not scored | not scored |
| TTM 19-12 | 2019-12-31 | not scored | not scored | not scored |
| TTM 20-03 | 2020-03-31 | not scored | not scored | not scored |
| TTM 20-06 | 2020-06-30 | not scored | not scored | not scored |
| TTM 20-09 | 2020-09-30 | not scored | not scored | not scored |
| TTM 20-12 | 2020-12-31 | not scored | not scored | not scored |
| TTM 21-03 | 2021-03-31 | not scored | not scored | not scored |
| TTM 21-06 | 2021-06-30 | not scored | not scored | not scored |
| TTM 21-09 | 2021-09-30 | not scored | not scored | not scored |
| TTM 21-12 | 2021-12-31 | not scored | not scored | not scored |
| TTM 22-03 | 2022-03-31 | not scored | not scored | not scored |
| TTM 22-06 | 2022-06-30 | not scored | not scored | not scored |
| TTM 22-09 | 2022-09-30 | not scored | not scored | not scored |
| TTM 22-12 | 2022-12-31 | not scored | not scored | not scored |
| TTM 23-03 | 2023-03-31 | not scored | not scored | not scored |
| TTM 23-06 | 2023-06-30 | not scored | not scored | not scored |
| TTM 23-09 | 2023-09-30 | 24 | 66 | 88 |
| TTM 23-12 | 2023-12-31 | 33 | 71 | 90 |
| TTM 24-03 | 2024-03-31 | 39 | 71 | 95 |
| TTM 24-06 | 2024-06-30 | 54 | 75 | 86 |
| TTM 24-09 | 2024-09-30 | 14 | 71 | 81 |
| TTM 24-12 | 2024-12-31 | 12 | 66 | 82 |
| TTM 25-03 | 2025-03-31 | 16 | 67 | 82 |
| TTM 25-06 | 2025-06-30 | 11 | 68 | 85 |
| TTM 25-09 | 2025-09-30 | 19 | 67 | 80 |
| TTM 25-12 | 2025-12-31 | 17 | 68 | 86 |
| TTM 26-03 | 2026-03-31 | 11 | 70 | 88 |
| TTM 26-06 | 2026-06-30 | 62 | 73 | 92 |