AI-assembled from public SEC filings
Warehouse and discount retail 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 three large U.S. pharmaceutical wholesale distributors in the existing grepcent universe -- McKesson, Cencora and Cardinal Health -- which carry SEC SIC 5122 Wholesale-Drugs, Proprietaries & Druggists' Sundries. These are among the largest companies in the whole universe by revenue precisely because distribution passes drug cost through at thin margins, so the revenue and margin rows read very differently from a drug maker. HLF and NUS also carry SIC 5122 but are direct-selling nutrition and supplement companies rather than drug distributors, and are excluded and named rather than dropped silently.
Membership is a disclosed list of the SIC 5122 companies whose business is pharmaceutical wholesale distribution, not a mechanical SIC filter, because SIC 5122 also contains direct-selling nutrition companies whose economics are unrelated. The pass-through revenue model is disclosed so the very large revenue figures are read as distribution throughput rather than manufacturing scale. 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 | MCK | COR | CAH |
|---|---|---|---|
| Revenue | 403,430,000,000 source · NUM_MCK_REVENUE_FY2026 | 321,332,819,000 source · NUM_COR_REVENUE_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 222,578,000,000 source · NUM_CAH_REVENUE_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Net margin | 1.18% source · NUM_MCK_NET_MARGIN_FY2026 | 0.48% source · NUM_COR_NET_MARGIN_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 0.70% source · NUM_CAH_NET_MARGIN_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Operating margin | 1.54% source · NUM_MCK_OPERATING_MARGIN_FY2026 | 0.82% source · NUM_COR_OPERATING_MARGIN_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 1.02% source · NUM_CAH_OPERATING_MARGIN_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Free cash flow | 5,719,000,000 source · NUM_MCK_FREE_CASH_FLOW_FY2026 | 3,207,139,000 source · NUM_COR_FREE_CASH_FLOW_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 1,850,000,000 source · NUM_CAH_FREE_CASH_FLOW_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Capital expenditures | 436,000,000 source · NUM_MCK_CAPEX_FY2026 | 667,981,000 source · NUM_COR_CAPEX_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 547,000,000 source · NUM_CAH_CAPEX_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Dividends paid | 381,000,000 source · NUM_MCK_DIVIDENDS_PAID_FY2026 | 437,081,000 source · NUM_COR_DIVIDENDS_PAID_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 494,000,000 source · NUM_CAH_DIVIDENDS_PAID_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Share buybacks | 4,750,000,000 source · NUM_MCK_SHARE_BUYBACKS_FY2026 | 435,471,000 source · NUM_COR_SHARE_BUYBACKS_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 765,000,000 source · NUM_CAH_SHARE_BUYBACKS_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Assets | 82,323,000,000 source · NUM_MCK_ASSETS_FY2026 | 76,590,112,000 source · NUM_COR_ASSETS_FY2025 Non-aligned period: 2025-Q3; row majority 2026-Q1. | 53,122,000,000 source · NUM_CAH_ASSETS_FY2025 Non-aligned period: 2025-Q2; row majority 2026-Q1. |
| Liabilities / equity | Quarantined: Only 0 of 3 companies have a verified fact; threshold is 1. | ||
Code-computed comparisons
Market-risk companion: risk and factor comparison from lmfin. It is descriptive and separate from the SEC fundamentals review.
Narrative Matrix
| Dimension | MCK | COR | CAH |
|---|---|---|---|
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
Gate summary
Quarantined quantitative rows
- liabilities_to_equity: Only 0 of 3 companies have a verified fact; threshold is 1.
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
- MCK / business_model: No direct dimension-relevant quote survived the evidence gate.
- COR / business_model: No direct dimension-relevant quote survived the evidence gate.
- CAH / business_model: No direct dimension-relevant quote survived the evidence gate.
- MCK / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- COR / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- CAH / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- MCK / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- COR / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- CAH / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- MCK / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- COR / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- CAH / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- MCK / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- COR / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- CAH / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- MCK / recent_narrative_change: No direct dimension-relevant quote survived the evidence gate.
- COR / recent_narrative_change: No direct dimension-relevant quote survived the evidence gate.
- CAH / recent_narrative_change: No direct dimension-relevant quote survived the evidence gate.