AI-assembled from public SEC filings
Trucking and truckload logistics peer review
Descriptive comparison assembled from public SEC filings and verified companyfacts.
Descriptive comparison — not investment advice. This feature-specific review is assembled from a frozen evidence pack of public SEC filing quotes and verified SEC companyfacts numbers. It is descriptive only and makes no judgment about which company is better. It is not a rating, recommendation, endorsement, forecast, or investment advice. Figures are as of their cited filing dates. See Disclaimer.
Methodology
The cluster is selected mechanically from public SEC SIC 4213 companies already present in grepcent's processed universe, sorted by latest reported revenue. It covers truckload, less-than-truckload, intermodal, dedicated, and asset-light trucking models as disclosed by the SIC pool. The review publishes no proprietary index-membership labels.
Verified Quantitative Matrix
Numbers are templated from frozen SEC companyfacts-derived facts already verified by grepcent. Fiscal periods and filing dates are shown in each cell; code-computed comparisons below only use calendar-aligned periods.
| Metric | JBHT | KNX | SNDR | ODFL | LSTR | ARCB | SAIA | WERN | ULH | CVLG |
|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 11,999,096,000 source · NUM_JBHT_REVENUE_FY2025 | 7,469,689,000 source · NUM_KNX_REVENUE_FY2025 | 5,674,300,000 source · NUM_SNDR_REVENUE_FY2025 | 5,496,389,000 source · NUM_ODFL_REVENUE_FY2025 | 4,743,760,000 source · NUM_LSTR_REVENUE_FY2025 | 4,010,158,000 source · NUM_ARCB_REVENUE_FY2025 | 3,234,286,000 source · NUM_SAIA_REVENUE_FY2025 | 2,974,396,000 source · NUM_WERN_REVENUE_FY2025 | 1,558,397,000 source · NUM_ULH_REVENUE_FY2025 | 1,164,472,000 source · NUM_CVLG_REVENUE_FY2025 |
| Net margin | 4.99% source · NUM_JBHT_NET_MARGIN_FY2025 | 0.88% source · NUM_KNX_NET_MARGIN_FY2025 | 1.83% source · NUM_SNDR_NET_MARGIN_FY2025 | 18.63% source · NUM_ODFL_NET_MARGIN_FY2025 | 2.42% source · NUM_LSTR_NET_MARGIN_FY2025 | 1.50% source · NUM_ARCB_NET_MARGIN_FY2025 | 7.89% source · NUM_SAIA_NET_MARGIN_FY2025 | -0.48% source · NUM_WERN_NET_MARGIN_FY2025 | -6.41% source · NUM_ULH_NET_MARGIN_FY2025 | 0.62% source · NUM_CVLG_NET_MARGIN_FY2025 |
| Operating margin | 7.21% source · NUM_JBHT_OPERATING_MARGIN_FY2025 | 2.89% source · NUM_KNX_OPERATING_MARGIN_FY2025 | 2.98% source · NUM_SNDR_OPERATING_MARGIN_FY2025 | 24.76% source · NUM_ODFL_OPERATING_MARGIN_FY2025 | 3.20% source · NUM_LSTR_OPERATING_MARGIN_FY2025 | 2.25% source · NUM_ARCB_OPERATING_MARGIN_FY2025 | 10.89% source · NUM_SAIA_OPERATING_MARGIN_FY2025 | 0.39% source · NUM_WERN_OPERATING_MARGIN_FY2025 | -4.13% source · NUM_ULH_OPERATING_MARGIN_FY2025 | 0.25% source · NUM_CVLG_OPERATING_MARGIN_FY2025 |
| Free cash flow | 947,585,000 source · NUM_JBHT_FREE_CASH_FLOW_FY2025 | Not available. | 285,400,000 source · NUM_SNDR_FREE_CASH_FLOW_FY2025 | 955,099,000 source · NUM_ODFL_FREE_CASH_FLOW_FY2025 | 215,002,000 source · NUM_LSTR_FREE_CASH_FLOW_FY2025 | 114,178,000 source · NUM_ARCB_FREE_CASH_FLOW_FY2025 | 27,334,000 source · NUM_SAIA_FREE_CASH_FLOW_FY2025 | -68,534,000 source · NUM_WERN_FREE_CASH_FLOW_FY2025 | -41,129,000 source · NUM_ULH_FREE_CASH_FLOW_FY2025 | -33,922,000 source · NUM_CVLG_FREE_CASH_FLOW_FY2025 |
| Capital expenditures | 730,687,000 source · NUM_JBHT_CAPEX_FY2025 | Not available. | 352,000,000 source · NUM_SNDR_CAPEX_FY2025 | 415,034,000 source · NUM_ODFL_CAPEX_FY2025 | 9,880,000 source · NUM_LSTR_CAPEX_FY2025 | 114,775,000 source · NUM_ARCB_CAPEX_FY2025 | 567,639,000 source · NUM_SAIA_CAPEX_FY2025 | 250,364,000 source · NUM_WERN_CAPEX_FY2025 | 224,175,000 source · NUM_ULH_CAPEX_FY2025 | 147,570,000 source · NUM_CVLG_CAPEX_FY2025 |
| Dividends paid | 171,048,000 source · NUM_JBHT_DIVIDENDS_PAID_FY2025 | 117,435,000 source · NUM_KNX_DIVIDENDS_PAID_FY2025 | 67,000,000 source · NUM_SNDR_DIVIDENDS_PAID_FY2025 | 235,641,000 source · NUM_ODFL_DIVIDENDS_PAID_FY2025 | 124,758,000 source · NUM_LSTR_DIVIDENDS_PAID_FY2025 | 10,970,000 source · NUM_ARCB_DIVIDENDS_PAID_FY2025 | Not available. | 34,081,000 source · NUM_WERN_DIVIDENDS_PAID_FY2025 | 11,057,000 source · NUM_ULH_DIVIDENDS_PAID_FY2025 | 7,162,000 source · NUM_CVLG_DIVIDENDS_PAID_FY2025 |
| Share buybacks | 923,292,000 source · NUM_JBHT_SHARE_BUYBACKS_FY2025 | 0.00 source · NUM_KNX_SHARE_BUYBACKS_FY2024 Non-aligned period: 2024-Q4; row majority 2025-Q4. | 14,600,000 source · NUM_SNDR_SHARE_BUYBACKS_FY2025 | 730,338,000 source · NUM_ODFL_SHARE_BUYBACKS_FY2025 | 179,856,000 source · NUM_LSTR_SHARE_BUYBACKS_FY2025 | 75,567,000 source · NUM_ARCB_SHARE_BUYBACKS_FY2025 | Not available. | 55,553,000 source · NUM_WERN_SHARE_BUYBACKS_FY2025 | 85,000 source · NUM_ULH_SHARE_BUYBACKS_FY2025 | 36,571,000 source · NUM_CVLG_SHARE_BUYBACKS_FY2025 |
| Assets | 7,927,155,000 source · NUM_JBHT_ASSETS_FY2025 | 11,955,436,000 source · NUM_KNX_ASSETS_FY2025 | 4,840,100,000 source · NUM_SNDR_ASSETS_FY2025 | 5,470,160,000 source · NUM_ODFL_ASSETS_FY2025 | 1,635,935,000 source · NUM_LSTR_ASSETS_FY2025 | 2,452,662,000 source · NUM_ARCB_ASSETS_FY2025 | 3,482,681,000 source · NUM_SAIA_ASSETS_FY2025 | 2,888,674,000 source · NUM_WERN_ASSETS_FY2025 | 1,771,988,000 source · NUM_ULH_ASSETS_FY2025 | 1,045,548,000 source · NUM_CVLG_ASSETS_FY2025 |
| Liabilities / equity | 1.22 source · NUM_JBHT_LIABILITIES_TO_EQUITY_FY2025 | 0.69 source · NUM_KNX_LIABILITIES_TO_EQUITY_FY2025 | 0.60 source · NUM_SNDR_LIABILITIES_TO_EQUITY_FY2025 | 0.27 source · NUM_ODFL_LIABILITIES_TO_EQUITY_FY2025 | Not available. | Not available. | Not available. | 1.10 source · NUM_WERN_LIABILITIES_TO_EQUITY_FY2025 | Not available. | 1.59 source · NUM_CVLG_LIABILITIES_TO_EQUITY_FY2025 |
Code-computed comparisons
- Latest reported revenue range: range endpoints are CVLG (1,164,472,000) and JBHT (11,999,096,000).
- Reported net margin range: range endpoints are ULH (-6.41%) and ODFL (18.63%).
Market-risk companion: risk and factor comparison from lmfin. It is descriptive and separate from the SEC fundamentals review.
Narrative Matrix
| Dimension | JBHT | KNX | SNDR | ODFL | LSTR | ARCB | SAIA | WERN | ULH | CVLG |
|---|---|---|---|---|---|---|---|---|---|---|
| Business model | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Geographic and customer exposure | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Capital allocation | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Stated strategy in filings | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Idiosyncratic risks in filings | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Recent narrative change | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
Gate summary
Quarantined quantitative rows
- No quantitative metric rows quarantined.
Quarantined dimensions
- business_model: No verified cells survived the gate.
- geographic_customer_exposure: No verified cells survived the gate.
- capital_allocation: No verified cells survived the gate.
- stated_strategy: No verified cells survived the gate.
- idiosyncratic_risks: No verified cells survived the gate.
- recent_narrative_change: No verified cells survived the gate.
Quarantined cells
- JBHT / business_model: No direct dimension-relevant quote survived the evidence gate.
- KNX / business_model: No direct dimension-relevant quote survived the evidence gate.
- SNDR / business_model: No direct dimension-relevant quote survived the evidence gate.
- ODFL / business_model: No direct dimension-relevant quote survived the evidence gate.
- LSTR / business_model: No direct dimension-relevant quote survived the evidence gate.
- ARCB / business_model: No direct dimension-relevant quote survived the evidence gate.
- SAIA / business_model: No direct dimension-relevant quote survived the evidence gate.
- WERN / business_model: No direct dimension-relevant quote survived the evidence gate.
- ULH / business_model: No direct dimension-relevant quote survived the evidence gate.
- CVLG / business_model: No direct dimension-relevant quote survived the evidence gate.
- JBHT / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- KNX / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- SNDR / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- ODFL / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- LSTR / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- ARCB / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- SAIA / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- WERN / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- ULH / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- CVLG / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- JBHT / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- KNX / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- SNDR / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- ODFL / capital_allocation: No direct dimension-relevant quote survived the evidence gate.