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
Latest quarter · ending 2026-06-30 · green = improving · click a row to chart it
Revenue $1.6B +16.4% Gross margin — — Operating margin 29.9% +6.2pp Net margin 22.6% +4.7pp Net income $350.6M +47.2% CHARTEDFilings
16-09 → 26-06 · following the period bar 31 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 31 filings
10-K FY 2024 2025-02-25 Pro → 10-Q Q3 2024 2024-11-06 Pro → 10-Q Q2 2024 2024-08-05 Pro → 10-Q Q1 2024 2024-05-07 Pro → 10-K FY 2023 2024-02-26 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-K FY 2022 2023-02-22 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-K FY 2021 2022-02-23 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-K FY 2020 2021-02-24 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-K FY 2019 2020-02-26 Pro → 10-Q Q3 2019 2019-11-04 Pro → 10-K FY 2018 2019-02-27 Pro → 10-K FY 2017 2018-02-27 Pro → 10-K FY 2016 2017-02-27 Pro →Filing-level fact detail is a Pro feature. The grades and figures above are free. See Pro plans
Trends
| Period | Period end | Revenue |
|---|---|---|
| 16-09 | 2016-09-30 | not reported |
| 16-12 | 2016-12-31 | not reported |
| 17-03 | 2017-03-31 | $754.1M |
| 17-06 | 2017-06-30 | $839.9M |
| 17-09 | 2017-09-30 | $873.0M |
| 17-12 | 2017-12-31 | $891.1M |
| 18-03 | 2018-03-31 | $925.0M |
| 18-06 | 2018-06-30 | $1.0B |
| 18-09 | 2018-09-30 | $1.1B |
| 18-12 | 2018-12-31 | $1.0B |
| 19-03 | 2019-03-31 | $990.8M |
| 19-06 | 2019-06-30 | $1.1B |
| 19-09 | 2019-09-30 | $1.0B |
| 19-12 | 2019-12-31 | $1.0B |
| 20-03 | 2020-03-31 | $987.4M |
| 20-06 | 2020-06-30 | $896.2M |
| 20-09 | 2020-09-30 | $1.1B |
| 20-12 | 2020-12-31 | $1.1B |
| 21-03 | 2021-03-31 | $1.1B |
| 21-06 | 2021-06-30 | $1.3B |
| 21-09 | 2021-09-30 | $1.4B |
| 21-12 | 2021-12-31 | $1.4B |
| 22-03 | 2022-03-31 | $1.5B |
| 22-06 | 2022-06-30 | $1.7B |
| 22-09 | 2022-09-30 | $1.6B |
| 22-12 | 2022-12-31 | $1.5B |
| 23-03 | 2023-03-31 | $1.4B |
| 23-06 | 2023-06-30 | $1.4B |
| 23-09 | 2023-09-30 | $1.5B |
| 23-12 | 2023-12-31 | $1.5B |
| 24-03 | 2024-03-31 | $1.5B |
| 24-06 | 2024-06-30 | $1.5B |
| 24-09 | 2024-09-30 | $1.5B |
| 24-12 | 2024-12-31 | $1.4B |
| 25-03 | 2025-03-31 | $1.4B |
| 25-06 | 2025-06-30 | $1.4B |
| 25-09 | 2025-09-30 | $1.4B |
| 25-12 | 2025-12-31 | $1.3B |
| 26-03 | 2026-03-31 | $1.3B |
| 26-06 | 2026-06-30 | $1.6B |
| Period | Period end | Net income |
|---|---|---|
| 16-09 | 2016-09-30 | $85.6M |
| 16-12 | 2016-12-31 | $68.5M |
| 17-03 | 2017-03-31 | $65.8M |
| 17-06 | 2017-06-30 | $98.4M |
| 17-09 | 2017-09-30 | $102.3M |
| 17-12 | 2017-12-31 | $197.2M |
| 18-03 | 2018-03-31 | $109.3M |
| 18-06 | 2018-06-30 | $163.4M |
| 18-09 | 2018-09-30 | $173.4M |
| 18-12 | 2018-12-31 | $159.5M |
| 19-03 | 2019-03-31 | $133.3M |
| 19-06 | 2019-06-30 | $174.1M |
| 19-09 | 2019-09-30 | $164.1M |
| 19-12 | 2019-12-31 | $144.0M |
| 20-03 | 2020-03-31 | $133.2M |
| 20-06 | 2020-06-30 | $147.8M |
| 20-09 | 2020-09-30 | $201.9M |
| 20-12 | 2020-12-31 | $189.8M |
| 21-03 | 2021-03-31 | $199.4M |
| 21-06 | 2021-06-30 | $269.6M |
| 21-09 | 2021-09-30 | $286.6M |
| 21-12 | 2021-12-31 | $278.8M |
| 22-03 | 2022-03-31 | $299.8M |
| 22-06 | 2022-06-30 | $376.1M |
| 22-09 | 2022-09-30 | $377.4M |
| 22-12 | 2022-12-31 | $323.9M |
| 23-03 | 2023-03-31 | $285.0M |
| 23-06 | 2023-06-30 | $292.4M |
| 23-09 | 2023-09-30 | $339.3M |
| 23-12 | 2023-12-31 | $322.8M |
| 24-03 | 2024-03-31 | $292.3M |
| 24-06 | 2024-06-30 | $322.0M |
| 24-09 | 2024-09-30 | $308.6M |
| 24-12 | 2024-12-31 | $263.1M |
| 25-03 | 2025-03-31 | $254.7M |
| 25-06 | 2025-06-30 | $268.6M |
| 25-09 | 2025-09-30 | $270.9M |
| 25-12 | 2025-12-31 | $229.5M |
| 26-03 | 2026-03-31 | $238.3M |
| 26-06 | 2026-06-30 | $350.6M |
| Period | Period end | Operating income |
|---|---|---|
| 16-09 | 2016-09-30 | $137.4M |
| 16-12 | 2016-12-31 | $113.4M |
| 17-03 | 2017-03-31 | $108.1M |
| 17-06 | 2017-06-30 | $160.4M |
| 17-09 | 2017-09-30 | $163.9M |
| 17-12 | 2017-12-31 | $143.5M |
| 18-03 | 2018-03-31 | $149.3M |
| 18-06 | 2018-06-30 | $220.5M |
| 18-09 | 2018-09-30 | $228.4M |
| 18-12 | 2018-12-31 | $218.8M |
| 19-03 | 2019-03-31 | $178.4M |
| 19-06 | 2019-06-30 | $234.5M |
| 19-09 | 2019-09-30 | $217.5M |
| 19-12 | 2019-12-31 | $188.3M |
| 20-03 | 2020-03-31 | $183.2M |
| 20-06 | 2020-06-30 | $199.2M |
| 20-09 | 2020-09-30 | $270.2M |
| 20-12 | 2020-12-31 | $254.3M |
| 21-03 | 2021-03-31 | $269.7M |
| 21-06 | 2021-06-30 | $366.0M |
| 21-09 | 2021-09-30 | $383.4M |
| 21-12 | 2021-12-31 | $372.5M |
| 22-03 | 2022-03-31 | $405.6M |
| 22-06 | 2022-06-30 | $508.7M |
| 22-09 | 2022-09-30 | $496.1M |
| 22-12 | 2022-12-31 | $430.2M |
| 23-03 | 2023-03-31 | $383.0M |
| 23-06 | 2023-06-30 | $391.6M |
| 23-09 | 2023-09-30 | $445.0M |
| 23-12 | 2023-12-31 | $421.0M |
| 24-03 | 2024-03-31 | $386.4M |
| 24-06 | 2024-06-30 | $421.7M |
| 24-09 | 2024-09-30 | $401.9M |
| 24-12 | 2024-12-31 | $334.0M |
| 25-03 | 2025-03-31 | $338.1M |
| 25-06 | 2025-06-30 | $357.9M |
| 25-09 | 2025-09-30 | $360.8M |
| 25-12 | 2025-12-31 | $304.3M |
| 26-03 | 2026-03-31 | $317.3M |
| 26-06 | 2026-06-30 | $465.3M |
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 |
|---|---|---|---|---|
| 16-09 | 2016-09-30 | not scored | not scored | not scored |
| 16-12 | 2016-12-31 | not scored | not scored | not scored |
| 17-03 | 2017-03-31 | not scored | not scored | not scored |
| 17-06 | 2017-06-30 | not scored | not scored | not scored |
| 17-09 | 2017-09-30 | not scored | not scored | not scored |
| 17-12 | 2017-12-31 | not scored | not scored | not scored |
| 18-03 | 2018-03-31 | not scored | not scored | not scored |
| 18-06 | 2018-06-30 | not scored | not scored | not scored |
| 18-09 | 2018-09-30 | not scored | not scored | not scored |
| 18-12 | 2018-12-31 | not scored | not scored | not scored |
| 19-03 | 2019-03-31 | not scored | not scored | not scored |
| 19-06 | 2019-06-30 | not scored | not scored | not scored |
| 19-09 | 2019-09-30 | not scored | not scored | not scored |
| 19-12 | 2019-12-31 | not scored | not scored | not scored |
| 20-03 | 2020-03-31 | not scored | not scored | not scored |
| 20-06 | 2020-06-30 | not scored | not scored | not scored |
| 20-09 | 2020-09-30 | not scored | not scored | not scored |
| 20-12 | 2020-12-31 | not scored | not scored | not scored |
| 21-03 | 2021-03-31 | not scored | not scored | not scored |
| 21-06 | 2021-06-30 | not scored | not scored | not scored |
| 21-09 | 2021-09-30 | not scored | not scored | not scored |
| 21-12 | 2021-12-31 | not scored | not scored | not scored |
| 22-03 | 2022-03-31 | not scored | not scored | not scored |
| 22-06 | 2022-06-30 | not scored | not scored | not scored |
| 22-09 | 2022-09-30 | not scored | not scored | not scored |
| 22-12 | 2022-12-31 | not scored | not scored | not scored |
| 23-03 | 2023-03-31 | not scored | not scored | not scored |
| 23-06 | 2023-06-30 | not scored | not scored | not scored |
| 23-09 | 2023-09-30 | 24 | 66 | 88 |
| 23-12 | 2023-12-31 | 33 | 71 | 90 |
| 24-03 | 2024-03-31 | 39 | 71 | 95 |
| 24-06 | 2024-06-30 | 54 | 75 | 86 |
| 24-09 | 2024-09-30 | 14 | 71 | 81 |
| 24-12 | 2024-12-31 | 12 | 66 | 82 |
| 25-03 | 2025-03-31 | 16 | 67 | 82 |
| 25-06 | 2025-06-30 | 11 | 68 | 85 |
| 25-09 | 2025-09-30 | 19 | 67 | 80 |
| 25-12 | 2025-12-31 | 17 | 68 | 86 |
| 26-03 | 2026-03-31 | 11 | 70 | 88 |
| 26-06 | 2026-06-30 | 62 | 73 | 92 |