AI-assembled from public SEC filings
Pharmaceutical distributors 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.
Provenance
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 | 321,332,819,000 source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 222,578,000,000 source 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 | 0.48% source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 0.70% source 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 | 0.82% source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 1.02% source 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 | 3,207,139,000 source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 1,850,000,000 source Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Capital expenditures | 436,000,000 source | 667,981,000 source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 547,000,000 source Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Dividends paid | 381,000,000 source | 437,081,000 source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 494,000,000 source 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 | 435,471,000 source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 765,000,000 source Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
| Assets | 82,323,000,000 source | 76,590,112,000 source Day-level period offset: about 6 months before row reference (-182d) vs row reference 2026-03-31; offset. | 53,122,000,000 source Day-level period offset: about 9 months before row reference (-274d) vs row reference 2026-03-31; offset. |
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.
Provenance
Withheld quantitative rows
- liabilities_to_equity: Only 0 of 3 companies have a verified fact; threshold is 1.
Withheld dimensions
- business_model: No quote passed the evidence checks.
- geographic_customer_exposure: No quote passed the evidence checks.
- capital_allocation: No quote passed the evidence checks.
- stated_strategy: No quote passed the evidence checks.
- idiosyncratic_risks: No quote passed the evidence checks.
- recent_narrative_change: No quote passed the evidence checks.
Withheld cells
- MCK / business_model: no quote passed the evidence checks
- COR / business_model: no quote passed the evidence checks
- CAH / business_model: no quote passed the evidence checks
- MCK / geographic_customer_exposure: no quote passed the evidence checks
- COR / geographic_customer_exposure: no quote passed the evidence checks
- CAH / geographic_customer_exposure: no quote passed the evidence checks
- MCK / capital_allocation: no quote passed the evidence checks
- COR / capital_allocation: no quote passed the evidence checks
- CAH / capital_allocation: no quote passed the evidence checks
- MCK / stated_strategy: no quote passed the evidence checks
- COR / stated_strategy: no quote passed the evidence checks
- CAH / stated_strategy: no quote passed the evidence checks
- MCK / idiosyncratic_risks: no quote passed the evidence checks
- COR / idiosyncratic_risks: no quote passed the evidence checks
- CAH / idiosyncratic_risks: no quote passed the evidence checks
- MCK / recent_narrative_change: no quote passed the evidence checks
- COR / recent_narrative_change: no quote passed the evidence checks
- CAH / recent_narrative_change: no quote passed the evidence checks