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; comparability markers use day-level period ends and reported XBRL source concepts.
| Metric | MCK | COR | CAH |
|---|---|---|---|
| Revenue Mixed reporting concepts: us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CAH -> us-gaap:Revenues; COR -> us-gaap:Revenues; MCK -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 403,430,000,000 source · NUM_MCK_REVENUE_FY2026 | 321,332,819,000 source · NUM_COR_REVENUE_FY2025 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 222,578,000,000 source · NUM_CAH_REVENUE_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Net margin Mixed reporting concepts: us-gaap:NetIncomeLoss, us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CAH -> us-gaap:NetIncomeLoss + us-gaap:Revenues; COR -> us-gaap:NetIncomeLoss + us-gaap:Revenues; MCK -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 1.18% source · NUM_MCK_NET_MARGIN_FY2026 | 0.48% source · NUM_COR_NET_MARGIN_FY2025 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 0.70% source · NUM_CAH_NET_MARGIN_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Operating margin Mixed reporting concepts: us-gaap:OperatingIncomeLoss, us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:Revenues. Ticker concepts: CAH -> us-gaap:OperatingIncomeLoss + us-gaap:Revenues; COR -> us-gaap:OperatingIncomeLoss + us-gaap:Revenues; MCK -> us-gaap:OperatingIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax. | 1.54% source · NUM_MCK_OPERATING_MARGIN_FY2026 | 0.82% source · NUM_COR_OPERATING_MARGIN_FY2025 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 1.02% source · NUM_CAH_OPERATING_MARGIN_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| 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 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 1,850,000,000 source · NUM_CAH_FREE_CASH_FLOW_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Capital expenditures | 436,000,000 source · NUM_MCK_CAPEX_FY2026 | 667,981,000 source · NUM_COR_CAPEX_FY2025 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 547,000,000 source · NUM_CAH_CAPEX_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Dividends paid | 381,000,000 source · NUM_MCK_DIVIDENDS_PAID_FY2026 | 437,081,000 source · NUM_COR_DIVIDENDS_PAID_FY2025 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 494,000,000 source · NUM_CAH_DIVIDENDS_PAID_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Share buybacks | 4,750,000,000 source · NUM_MCK_SHARE_BUYBACKS_FY2026 | 435,471,000 source · NUM_COR_SHARE_BUYBACKS_FY2025 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 765,000,000 source · NUM_CAH_SHARE_BUYBACKS_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Assets | 82,323,000,000 source · NUM_MCK_ASSETS_FY2026 | 76,590,112,000 source · NUM_COR_ASSETS_FY2025 Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 53,122,000,000 source · NUM_CAH_ASSETS_FY2025 Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Liabilities / equity | Quarantined: Only 0 of 3 companies have a verified fact; threshold is 1. | ||
Code-computed comparisons
- Reported net margin range: Cross-company range not shown: fiscal period-ends span more than 14 days (CAH ends 2025-06-30, COR ends 2025-09-30; row reference 2026-03-31). Individual company cells above remain shown with their period and concept comparability markers.
- Latest reported revenue range: Cross-company range not shown: fiscal period-ends span more than 14 days (CAH ends 2025-06-30, COR ends 2025-09-30; row reference 2026-03-31). Individual company cells above remain shown with their period and concept comparability markers.
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.