OLD DOMINION FREIGHT LINE, INC.
ODFL · Industrials · $48.3B mkt cap · FY2025 filings · Wide moat ·
On the watchlist
The five investor questions
2016–2025: revenue 2991517000.00 to 5496389000.00, increasing; diluted EPS 1.78 to 4.84, increasing.
Not enough years of gross-margin data to score pricing power.
Median ROIC 24.1%, above the 12% hurdle in 100% of years.
Net cash position — no leverage risk.
Owner earnings +14.8%/yr, share count n/a.
The pricingPower component abstained: Not enough years of gross-margin data to score pricing power. The other four 20% weights were renormalized over the scored 80%.
Price vs. owner-earnings value range
- Owner earnings (normalized)
- $1.2B
- Value range / share
- $63.19–$102.37
- Conservative high estimate / share
- $102.37
- Recent price
- $231.76
- Price vs. high estimate
- 126% above high estimate
Conservative range under moat-index@2.0.0: low end 11.1×, high end capped at 18×; 9% discount rate; high-end growth 4% (capped at 4%) using min(5y revenue CAGR, 5y diluted-EPS CAGR), clamped to 0%–4%; maintenance capex uses min(capex, D&A); abstain when D&A is unavailable. This is a disclosed model range, not intrinsic value as fact.
19 years of fundamentals
The business, in plain English
Across the filed record, revenue grew from $3.0B (FY2016) to $5.5B (FY2025) — about 7.0% a year compounded over 9 years.
It earned 24.2% on invested capital in FY2025, with a median of 19.3% across 18 filed years. The Returns on Capital filter above scores it 100/100.
The balance sheet carried $40.0M of total debt in FY2025 against $1.0B of owner earnings — roughly 0.0 years of owner earnings to retire it all. Balance-Sheet Safety scores it 100/100.
The share count rose 272.9% between FY2009 and FY2025 — existing owners have been diluted over the record. Capital Discipline scores it 80/100.
This breakdown is generated from the filed numbers and sub-scores above — no outside narrative, no estimates. Where a filing doesn’t disclose an input, the sentence that would need it is omitted instead of guessed.
Not disclosed in ODFL’s filings for these years — we don’t estimate it.
Gaps in a line mean that item isn’t in ODFL’s filings for that year — the series is never interpolated or estimated. The Table view lists every filed value, including operating and net margins, total debt, and share count.
Moat Score history
Tier changesSame-methodology crossings of the Wide / Narrow / Shallow bars
- Methodology upgraded moat-index@1.2.0tomoat-index@2.0.0 — readings across versions aren’t comparedJul 20, 2026
Scores are logged append-only and never overwritten — this record can’t be backfilled, which is exactly why it’s worth keeping.
Track record
How OLD DOMINION FREIGHT LINE, INC.’s moat rated in each of the years we can reconstruct from its filings — scored only on what was knowable at the time — and what its price and returns did afterward. The score never saw a price; the two are joined only in hindsight, for education, not as a signal.
How to read this: each dot is what the engine would have scored ODFL on that December 31; the line below is its total-return price path (dividends reinvested) in the years since.
Two tracks, one timeline: the score has its own 0–100 scale (top), the price its own 100-based scale (bottom) — never a shared axis. The price path is a total-return (dividends reinvested) index built from the same data the forward returns use; gaps in the score line are years with no reconstructed rating (see the table for why). The Table view carries every value.
What followed, in the years it rated Wide
In the 7 years ODFL rated Wide-moat (2019, 2020, 2021, 2022, 2023, 2024 and 2025), the median forward total return that followed — measured only after each year’s filings were public — was:
- 1 year 16% vs the S&P 500’s 20% (price basis) · median over 6 years
- 3 years 63% vs the S&P 500’s 25% (price basis) · median over 4 years
- 5 years 126% vs the S&P 500’s 83% (price basis) · median over 2 years
These are medians computed from the data, not a claim about any one year. The company figures are total returns (dividends reinvested); the S&P 500 is the price-only ^GSPC index, which excludes dividends and so understates the index — the gap flatters the company. A quality rating is not a return forecast, and past returns don’t predict future ones. Educational only, not investment advice.
Industrials context
#6 of 423 scored Industrials companies, ranked by Moat Score.
Nearest peers by Moat Score
- #4LRCX LAM RESEARCH CORPORATION91.1 out of 100, Wide moatWide moat
- #5EXPD EXPEDITORS INTERNATIONAL OF WASHINGTON, INC.91.0 out of 100, Wide moatWide moat
- #7GWW W.W. GRAINGER, INC.88.7 out of 100, Wide moatWide moat
- #8BKNG Booking Holdings Inc.88.2 out of 100, Wide moatWide moat
Compare ODFL with its nearest peers →All Industrials companies on the Index →
Common questions about ODFL
- Does OLD DOMINION FREIGHT LINE, INC. have an economic moat?
- Based on its FY2025 SEC filings, the Moat Index scores OLD DOMINION FREIGHT LINE, INC. (ODFL) 90.7 out of 100 — a Wide moat. The five questions behind that score begin at 20% each; if exactly one genuinely lacks data, the other four weights are renormalized and disclosed. revenue and EPS trend 83, pricing power not measurable from the filings, returns on capital 100, balance-sheet safety 100, capital discipline 80.
- Is ODFL trading below the conservative owner-earnings estimate?
- The owner-earnings value range is $63.19–$102.37 per share. It capitalizes normalized owner earnings at a 9% rate; the low end assumes 0% growth and the high end uses 4% growth, capped at 4% and 18×. Versus a recent price of $231.76, that is 126% above high estimate relative to the high estimate. This is a conservative educational estimate from primary SEC filings, not intrinsic value as a fact or investment advice.
- How has ODFL's Moat Score changed over time?
- The record logs 9 readings since Jul 17, 2026; the latest reads 90.7 out of 100 (wide moat). No tier changes on record yet. (A methodology upgrade on Jul 20, 2026 re-based the score; readings across engine versions aren't compared.) The history is append-only — readings are only ever added, never rewritten.