ODFL · Industrials(trucking (no local)) · 10 years of annual accounts filed with the SEC · latest fiscal year ended 2025-12-31
OLD Dominion Freight Line, Inc. reported revenue of $5.5 billion in fiscal 2025, after growing 3.5% a year over the previous 9 years. Its operating margin widened from 20.2% in 2018 to 24.8%, and it earned 23.6% on its invested capital in the latest year. Of the $10.3 billion its operations generated over 10 years, 47.7% went to buybacks and 44.2% back into the business; the share count fell 14.0%. On the accounting screens, it passes 5 of 8 Piotroski tests, its Altman Z'' of 8.25 is in the safe zone and its Beneish M-score is below the -1.78 line; none of the six cross-checks between its statements fires.
Revenue, fiscal 20255.5B+3.5% a year over 9 years
Operating margin24.8%gross margin —
Return on invested capital23.6%29.4% on average over 4 years
Free cash flow after stock pay942.2M17.1% of revenue
Net debt ÷ EBITDANet cash100.1M more cash than debt
Piotroski F-score5/8tests of improvement passed
Share counts are in today's shares. The SEC's filings restate only recent years after a split, so these jumps were read as splits and the older years scaled to match — otherwise per-share figures would compare different units:
2-for-1 before fiscal 2022.
Is it growing?
Revenue and the operating income it turns into. Growth that does not reach operating income is growth bought with margin.
RevenueOperating income
02.0B4.0B6.0B8.0B
2018Revenue 4.0BOperating income 817.1M
2019
2019Revenue 4.1BOperating income 818.7M
2020Revenue 4.0BOperating income 906.9M
2021
2021Revenue 5.3BOperating income 1.4B
2022Revenue 6.3BOperating income 1.8B
2023Revenue 5.9BOperating income 1.6B
2024Revenue 5.8BOperating income 1.5B
2025Revenue 5.5BOperating income 1.4B
2018201920192020202120212022202320242025
Compound growth a year
3 yrs
5 yrs
9 yrs
Revenue
-4.2%
—
+3.5%
Operating income
-9.6%
—
+5.8%
Net income
-9.4%
—
+6.0%
Earnings per share
-7.4%
—
+7.8%
Free cash flow per share
+3.7%
—
+15.2%
Dividend per share
+23.3%
—
+23.0%
Shares
-2.2%
—
-1.7%
Falling shares are buybacks: each remaining share owns more of the company.
Does it earn more than its capital costs?
Margins say how much of each sale is kept; return on invested capital says how much the business earns on the money it needs to operate. Growth only creates value when that return is above the cost of the capital.
GrossOperatingNetFree cash flow
0.0%10.0%20.0%30.0%
2018Operating 20.2%Net 15.0%Free cash flow 7.7%
2019
2019Operating 19.9%Net 15.0%Free cash flow 12.3%
2020Operating 22.6%Net 16.8%Free cash flow 17.6%
2021
2021Operating 26.5%Net 19.7%Free cash flow 12.6%
2022Operating 29.4%Net 22.0%Free cash flow 14.6%
2023Operating 28.0%Net 21.1%Free cash flow 13.8%
2024Operating 26.6%Net 20.4%Free cash flow 15.3%
2025Operating 24.8%Net 18.6%Free cash flow 17.4%
2018201920192020202120212022202320242025
Return on invested capital
Return on invested capitalCost of capital today · 10.2%
0.0%10.0%20.0%30.0%40.0%
2018Return on invested capital 22.3%
2019
2019
2020
2021
2021
2022Return on invested capital 37.5%
2023Return on invested capital 28.9%
2024Return on invested capital 27.6%
2025Return on invested capital 23.6%
2018201920192020202120212022202320242025
Economic profit
Economic profit
0500.0M1.0B1.5B
2018Economic profit 330.0M
2019
2019
2020
2021
2021
2022Economic profit 1.0B
2023Economic profit 799.7M
2024Economic profit 742.6M
2025Economic profit 583.6M
2018201920192020202120212022202320242025
(return on capital − cost of capital) × capital invested: the profit left after paying for the money used. Today's cost of capital is applied to every year, since a past one cannot be rebuilt honestly.
Return on equity
23.7%
Return on assets
18.7%
Asset turnover
1.00×
Is the profit cash, and where does the cash go?
Net income is an accounting opinion; free cash flow is what was left in the bank after investing. Stock-based pay does not leave the bank — shareholders pay it through dilution — so it is shown taken off as well.
Net incomeFree cash flowAfter stock-based pay
0500.0M1.0B1.5B
2018Net income 605.7MFree cash flow 311.8MAfter stock-based pay 306.9M
2019
2019Net income 615.5MFree cash flow 504.6MAfter stock-based pay 487.8M
2020Net income 672.7MFree cash flow 707.9MAfter stock-based pay 696.6M
2021
2021Net income 1.0BFree cash flow 662.5MAfter stock-based pay 647.5M
2022Net income 1.4BFree cash flow 916.4MAfter stock-based pay 900.5M
2023Net income 1.2BFree cash flow 811.8MAfter stock-based pay 800.7M
2024Net income 1.2BFree cash flow 888.0MAfter stock-based pay 876.6M
2025Net income 1.0BFree cash flow 955.1MAfter stock-based pay 942.2M
2018201920192020202120212022202320242025
Where 10 years of operating cash went, 2018–2025
10.3B generated by the business. Each band is its share of that total.
Reinvested in the business 44%4.6B
Acquisitions 0%0
Dividends 10%1.0B
Share buybacks 48%4.9B
More than it generated: funded with cash or new debt -2%-191.9M
Over the same years it paid 99.2M in stock. The share count fell 14.0%. 4.8B of the buybacks went beyond offsetting that dilution.
Per share
Earnings per shareFree cash flow per shareDividend per share
$0.00$2.00$4.00$6.00$8.00
2018Earnings per share $2.46Free cash flow per share $1.27Dividend per share $0.17
2019
2019Earnings per share $2.55Free cash flow per share $2.09Dividend per share $0.23
2020Earnings per share $2.84Free cash flow per share $2.99Dividend per share $0.30
2021
2021Earnings per share $4.44Free cash flow per share $2.85Dividend per share $0.40
2022Earnings per share $6.09Free cash flow per share $4.05Dividend per share $0.59
2023Earnings per share $5.63Free cash flow per share $3.69Dividend per share $0.80
2024Earnings per share $5.48Free cash flow per share $4.10Dividend per share $1.03
2025Earnings per share $4.84Free cash flow per share $4.51Dividend per share $1.11
2018201920192020202120212022202320242025
Shares outstanding
Diluted shares
210.0M220.0M230.0M240.0M250.0M
2018Diluted shares 246.1M
2019
2019Diluted shares 241.2M
2020Diluted shares 237.0M
2021
2021Diluted shares 232.8M
2022Diluted shares 226.2M
2023Diluted shares 220.2M
2024Diluted shares 216.5M
2025Diluted shares 211.6M
2018201920192020202120212022202320242025
How strong is the balance sheet?
Debt is not bad in itself; debt the business cannot service in a bad year is. Net debt is debt minus cash, and below zero the company holds more cash than it owes.
Net debt
-600.0M-400.0M-200.0M0
2018Net debt -145.3M
2019
2019
2020
2021
2021
2022Net debt -166.3M
2023Net debt -413.8M
2024Net debt -88.7M
2025Net debt -100.1M
2018201920192020202120212022202320242025
Net debt ÷ EBITDA
-0.1×
Interest coverage
— operating income ÷ interest
Current ratio
1.44 current assets ÷ current liabilities
Cash conversion cycle
— collects in 31d
Three classic screens of the accounts
Each asks a different question of the same statements — is it improving, does it look like a company heading for distress, do the accounts resemble ones that were manipulated. None is a verdict; each shows what moves it.
Piotroski F-score
Is the business improving? Nine yes-or-no tests, this year against last.
5of 8 tests passed
✓ProfitableReturn on assets above zeropassed
✓Cash from operationsOperating cash flow above zeropassed
✕Profitability improvedReturn on assets higher than a year beforefailed
✓Profit backed by cashOperating cash flow above net income (low accruals)passed
✕Less long-term debtLong-term debt as a share of assets fellfailed
✓More liquidCurrent ratio higher than a year beforepassed
✓No new sharesShare count did not growpassed
–Better gross marginGross margin higher than a year before — not reportedno data
✕Sells more per assetAsset turnover higher than a year beforefailed
Where it misleads: it measures change, not level. An excellent business that stood still for a year scores low; a poor one recovering from a disaster scores high.
Altman Z''-score
Does the balance sheet look like those of companies that went bankrupt?
8.25safe zone
1.12.6
Working capital ÷ assets 0.04 × 6.56+0.25
Retained earnings ÷ assets 0.74 × 3.26+2.42
Operating income ÷ assets 0.25 × 6.72+1.67
Equity ÷ liabilities 3.72 × 1.05+3.91
Where it misleads: buybacks. A company that returns so much cash that its equity turns small or negative sinks the last two ratios without being anywhere near bankruptcy. Banks and insurers do not fit the model at all.
Beneish M-score
Do the accounts resemble those of companies that manipulated their earnings?
-2.79below the -1.78 line
-1.78
Receivables vs sales 1.00+0.92
Gross margin slipping 1.00 (not reported, set to 1)+0.53
Soft assets 1.03+0.41
Sales growth 0.95+0.84
Slower depreciation 0.95+0.11
Overheads vs sales 1.00 (not reported, set to 1)-0.17
Profit not in cash -0.06-0.30
Leverage rising 0.90-0.29
Where it misleads: fast growth and acquisitions. Sales growth carries a heavy weight, so a company growing 50% a year scores like a suspect without having done anything. It is a screen from a 1999 study, not an accusation.
Where the statements disagree
Cross-checks between the income statement, the balance sheet and the cash flow for the latest year, each with the benign reading and the worrying one.
None of the six cross-checks fires for the latest year: receivables and inventory move with revenue, profit turns into cash, investment keeps up with depreciation, the tax rate is ordinary and debt is moderate.
What is it worth, under which assumptions?
A company is worth the cash it will generate, brought back to today. This model projects revenue with growth that fades over the years, applies a free cash flow margin, and discounts the result at the cost of capital. Every assumption says where it came from, and all of them can be changed.
Value per share, with these assumptions$49.05discounted at 10.2% a year · 48% of it from after year 10
Type a share price on the left to ask the reverse questions: what growth, what margin or what discount rate that price implies.
What the value implies, in the usual multiples
At this model's value
Price ÷ earnings
10.1×
Enterprise value ÷ EBITDA
6.0×
Enterprise value ÷ revenue
1.9×
Free cash flow yield
9.1%
From cash flows to a value per share
10 years of cash flow, today5.3B
Everything after, today4.9B
The whole business10.3B
Plus net cash100.1M
What belongs to shareholders10.4B
Divided among 211.6M shares: <strong>$49.05</strong> each.
The projection next to its history
Reported free cash flow after stock pay, then the model's. A projection that looks nothing like the past needs a reason.
ReportedProjected
0250.0M500.0M750.0M1.0B
2018Reported 306.9M
2019
2019Reported 487.8M
2020Reported 696.6M
2021
2021Reported 647.5M
2022Reported 900.5M
2023Reported 800.7M
2024Reported 876.6M
2025Reported 942.2M
2026Projected 824.5M
2027Projected 834.1M
2028Projected 845.2M
2029Projected 857.9M
2030Projected 872.2M
2031Projected 888.2M
2032Projected 906.0M
2033Projected 925.6M
2034Projected 947.2M
2035Projected 970.9M
2018201920212022202420262028203020322034
Year by year
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
Revenue
5.6B
5.6B
5.7B
5.8B
5.9B
6.0B
6.1B
6.2B
6.4B
6.5B
Growth
1.0%
1.2%
1.3%
1.5%
1.7%
1.8%
2.0%
2.2%
2.3%
2.5%
Cash margin
14.9%
14.9%
14.9%
14.9%
14.9%
14.9%
14.9%
14.9%
14.9%
14.9%
Free cash flow
824.5M
834.1M
845.2M
857.9M
872.2M
888.2M
906.0M
925.6M
947.2M
970.9M
Worth today
748.5M
687.4M
632.4M
582.7M
537.8M
497.1M
460.3M
426.9M
396.6M
369.0M
If the least-known inputs move
Value per share as two inputs change at a time. Neighbouring cells that differ a lot are the conclusion: the value depends on numbers nobody knows to a point.
The discount rate and growth forever
discount ↓ · forever →
1.5%
2.0%
2.5%
3.0%
3.5%
9.2%
51
53
56
60
64
9.7%
47
50
52
55
59
10.2%
45
47
49
52
55
10.7%
42
44
46
48
51
11.2%
40
42
43
45
48
Year-one growth and the final margin
margin ↓ · growth →
-3.0%
-1.0%
1.0%
3.0%
5.0%
11.9%
36
39
42
45
49
13.4%
39
42
45
49
53
14.9%
42
45
49
53
58
16.3%
45
48
53
57
62
17.8%
48
52
56
61
66
All the inputs moving at once
5,000 valuations, each with growth, final margin, discount rate and growth forever drawn at random around the values on the left (spreads of 3.0%, 2.2%, 1.0% and 0.5%). Not a probability — the spreads are assumptions too — but an honest picture of how wide the answer is.
10th percentile$37.90
Median$49.16
90th percentile$65.59
$40.00$60.00$80.00
Half of the simulations land between <b>$42.71</b> and <b>$56.60</b>; one in ten below $37.90, one in ten above $65.59.
Does the long run make sense?
6.3×The terminal value prices the business in year 10 at 6.3 times that year's EBITDA.
12%To grow 2.5% forever while reinvesting 20% of its after-tax operating profit, the business must earn 12% on the new capital — it has earned 29% on average over the last five years.
48%of the value comes from after year 10. The more of it, the more the answer depends on the part nobody can see.
What lenders charge, after the tax saving on interest: 6.68% × (1 − 24.8%) = <strong>5.02%</strong>.
Weighted by how much of each the company uses (book value (no price given)): <strong>10.16%</strong>, the rate every future cash flow is discounted at.
What it has filed lately
The last twelve months at the SEC, most important first: annual and quarterly reports, events, large holders and insiders.
Accounts from the company's own SEC filings; lines some companies do not report are shown as a dash rather than estimated. The risk-free rate is the 10-year US Treasury yield. A DCF is a way of making assumptions explicit, not a forecast: it states what the company would be worth if the assumptions held. The scores are screens that point where to look, not verdicts. Nothing here is a recommendation to buy or sell.