FASTENAL CO
FASTdata completeness 100%19 fiscal years on fileFASTENAL CO earns about 30% on invested capital, far above its ~9% cost of capital, but has diluted owners by 99% over 5 years — a real edge showing up in the numbers. The estimate methods put fair value between $10.37 and $27.84 a share.Whether it’s worth owning at today’s price is the last question — and yours to answer, below.
| Figure | FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 |
|---|---|---|---|---|---|
| Revenue | $6.01B1 | $6.98B2 | $7.35B3 | $7.55B3 | $8.2B3 |
| Net income | $925M4 | $1.09B5 | $1.16B6 | $1.15B6 | $1.26B6 |
| Operating cash flow | $770.1M7 | $941M8 | $1.43B9 | $1.17B9 | $1.3B9 |
| Capital expenditure | $156.6M10 | $173.8M11 | $172.8M12 | $226.5M12 | $245.3M12 |
| Free cash flow (derived) | $613.5M7 | $767.2M8 | $1.26B9 | $946.8M9 | $1.05B9 |
| Total debt | $780M13 | $1.11B14 | $520M15 | $400M16 | $250M16 |
| Cash & equivalents | $236.2M17 | $230.1M18 | $221.3M19 | $255.8M20 | $276.8M20 |
| Diluted shares | 577.1M | 575.6M | 1.15B | 1.15B | 1.15B |
Superscripts are receipts. Each links to the SEC filing the number came from (full list at the bottom).
10 shares is a claim on $34.28 of net worth that earned you $10.94 and generated $9.13 of cash last year, against $2.17 of debt.
It earned about 30% on invested capital, year after year, against a ~9% cost of capital — the footprint of real pricing power. Competition usually drags returns like this back down; here it hasn't.
seeing a moat in the numbers →Share count is up 99% over 5 years — owners have been diluted. Worth asking what they got for it. Total debt has fallen 68% — deleveraging.
reading capital allocation →Signals, not verdicts — read from the filings above. Numbers don’t prove a moat; they show its footprint. You decide.
The 3 estimate methods that apply put fair value between $10.37 and $27.84 a share. They rest on different assumptions, so where they diverge is the story; the Graham Number is a stricter floor, not a target.
assumptions (10)
- riskFreeRate4.7%
- equityRiskPremium5.0%
- beta100.0%
- equityWeight85.0%
- costOfDebtSpread1.5%
- taxRate21.0%
- terminalGrowth2.5%
- projectionYears10
- fcfGrowth11.0%
- fcfBase$1.05B
assumptions (10)
- riskFreeRate4.7%
- equityRiskPremium5.0%
- beta100.0%
- equityWeight85.0%
- costOfDebtSpread1.5%
- taxRate21.0%
- terminalGrowth2.5%
- projectionYears5
- fcfGrowth11.0%
- fcfBase$1.05B
assumptions (8)
- riskFreeRate4.7%
- equityRiskPremium5.0%
- beta100.0%
- equityWeight85.0%
- costOfDebtSpread1.5%
- taxRate21.0%
- normalizedEarnings$1.15B
- growthAssumed0.0%
assumptions (1)
- grahamMultiplier2250.0%
Different models answer different questions — which to trust when →
| Bear | 0.0% | $13.07 |
| Base | 11.0% | $20.89 |
| Bull | 16.0% | $25.54 |
Bear/base/bull growth = 0% / filed history / history + 5pp. Type a price to see the return each case implies.
Default growth 11.0%= this company’s own filed history (median-to-median FCF CAGR, clamped 0–20%). Your adjustments are recorded anonymously. They become the “what do owners actually believe” dataset.
- 10-K · period ending 2021-12-31 · accession 0000815556-24-000009 (RevenueFromContractWithCustomerExcludingAssessedTax)
- 10-K · period ending 2022-12-31 · accession 0000815556-25-000065 (RevenueFromContractWithCustomerExcludingAssessedTax)
- 10-K · period ending 2023-12-31 · accession 0000815556-26-000009 (RevenueFromContractWithCustomerExcludingAssessedTax)
- 10-K · period ending 2021-12-31 · accession 0000815556-24-000009 (NetIncomeLoss)
- 10-K · period ending 2022-12-31 · accession 0000815556-25-000065 (NetIncomeLoss)
- 10-K · period ending 2023-12-31 · accession 0000815556-26-000009 (NetIncomeLoss)
- 10-K · period ending 2021-12-31 · accession 0000815556-24-000009 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2022-12-31 · accession 0000815556-25-000065 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2023-12-31 · accession 0000815556-26-000009 (NetCashProvidedByUsedInOperatingActivities)
- 10-K · period ending 2021-12-31 · accession 0000815556-24-000009 (PaymentsToAcquirePropertyPlantAndEquipment)
- 10-K · period ending 2022-12-31 · accession 0000815556-25-000065 (PaymentsToAcquirePropertyPlantAndEquipment)
- 10-K · period ending 2023-12-31 · accession 0000815556-26-000009 (PaymentsToAcquirePropertyPlantAndEquipment)
- 10-K · period ending 2021-12-31 · accession 0000815556-23-000009 (LongTermDebtNoncurrent)
- 10-K · period ending 2022-12-31 · accession 0000815556-24-000009 (LongTermDebtNoncurrent)
- 10-K · period ending 2023-12-31 · accession 0000815556-25-000065 (LongTermDebtNoncurrent)
- 10-K · period ending 2024-12-31 · accession 0000815556-26-000009 (LongTermDebtNoncurrent)
- 10-K · period ending 2021-12-31 · accession 0000815556-23-000009 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2022-12-31 · accession 0000815556-24-000009 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2023-12-31 · accession 0000815556-25-000065 (CashAndCashEquivalentsAtCarryingValue)
- 10-K · period ending 2024-12-31 · accession 0000815556-26-000009 (CashAndCashEquivalentsAtCarryingValue)