| Size & multiples | |||
| Market Cap | $1.41B | Enterprise Value | — |
| P/E (TTM) | 31.11× | PEG (trailing) | — |
| P/S | 1.02× | P/FCF | 9.33× |
| EV/EBITDA | — | EV/EBIT | — |
| EV/Sales | — | EV/FCF | — |
| FCF Yield | 10.72% | Buyback Yield | — |
| Owner Earnings (TTM) | $79.6M | Owner Earnings Yield | 5.66% |
| Shareholder Yield | — | ||
| Cost of capital & EVAmethodology → | |||
| Beta (5y monthly) | 0.86 | Risk-free (assumed) | 4.00% |
| Equity risk premium (assumed) | 5.00% | Cost of Equity | 8.31% |
| After-tax Cost of Debt | 2.47% | Synthetic credit rating | BB |
| Cost of Debt · embedded (pre-tax) | 3.73% | Cost of Debt · marginal (synthetic) | 5.84% |
| WACC | 6.13% | ROIC | — |
| EVA Spread (ROIC−WACC) | — | EVA | — |
FCF runs above owner earnings — under-maintenance or a working-capital release is flattering current cash.
Synthetic rating = ICR-based credit-quality read (Damodaran), not an agency rating.
Flows TTM (last 4 quarters); latest annual for: EPS (Diluted), Revenue, EBIT, Net Income, Gross Profit, Interest Expense · EPS TTM $1.51 · revenue TTM $1.37B · FCF TTM $150.9M
Output of a disclosed model whose assumptions may be wrong — research information, not investment advice. See the Disclaimer.
P/E 31.11× sits at the 15th percentile of its own 127-month range (2015-02→2026-08) — own median 43.53×, 9.03×–457.13× range
Percentile is against this company's OWN monthly distribution, not its peers — the peer placement is the panel below. Point-in-time: every month's figure uses only facts whose SEC filing had actually been filed by then.
This ladder re-prices FILED earnings at multiples the company has actually traded at — no projected earnings appear on this tab by design. The complementary read, today's price divided by the model's own projected earnings path year by year, sits on the Fair Value tab under “What you're paying, year by year”.
At its own 2015-02→2026-08 median P/E of 43.53×, $1.51 of FY2025 EPS (Diluted) prices at $65.72 versus the $46.98 close — FY2025 earnings held constant.
| Own multiple | P/E | Implied price | vs close | Arithmetic |
|---|---|---|---|---|
| 10th percentile | 22.72× | $34.31 | −27.0% | 22.72× (its own 2015-02→2026-08 10th percentile P/E) × $1.51 FY2025 EPS (Diluted) = $34.31 — −27.0% vs the $46.98 close |
| 25th percentile | 34.91× | $52.71 | +12.2% | 34.91× (its own 2015-02→2026-08 25th percentile P/E) × $1.51 FY2025 EPS (Diluted) = $52.71 — +12.2% vs the $46.98 close |
| median | 43.53× | $65.72 | +39.9% | 43.53× (its own 2015-02→2026-08 median P/E) × $1.51 FY2025 EPS (Diluted) = $65.72 — +39.9% vs the $46.98 close |
| 75th percentile | 80.19× | $121.08 | +157.7% | 80.19× (its own 2015-02→2026-08 75th percentile P/E) × $1.51 FY2025 EPS (Diluted) = $121.08 — +157.7% vs the $46.98 close |
| 90th percentile | 115.40× | $174.26 | +270.9% | 115.40× (its own 2015-02→2026-08 90th percentile P/E) × $1.51 FY2025 EPS (Diluted) = $174.26 — +270.9% vs the $46.98 close |
| today | 31.11× | $46.98 | — | $46.98 (2026-07-30 close, marketstack) ÷ $1.51 FY2025 EPS (Diluted) = 31.11× |
Reference computation, not a forecast and not a price target: each row re-prices the SAME filed earnings figure at a multiple this company actually traded at during the stated window. It assumes no change in EPS, no change in share count, and nothing about the future.
The multiples are this company's OWN, taken from the monthly point-in-time archive: each snapshot's P/E is that month's close divided by the latest annual diluted EPS that had actually been FILED by then, so no figure in the history was unknowable on its date. The ladder multiplies those percentiles by the same kind of denominator — the latest filed FY diluted EPS — which is why the "today" row reconciles: $46.98 ÷ $1.51 = 31.11×.
It abstains rather than guess: a loss year has no meaningful earnings multiple, and a name whose per-share basis was rebased after a split would need a split-adjusted EPS the filed statement doesn't carry. The FA tab's P/E uses a TTM denominator and will differ slightly from the figure here by design — one convention per surface.
Columns: P/E is the multiple this company itself traded at, at that percentile of the selected window. Implied price is that multiple × $1.51 (FY2025 EPS (Diluted)). vs close is implied ÷ $46.98 − 1. Arithmetic restates the whole row so it can be checked without leaving the table.
Every snapshot stamped reconstructed was rebuilt by re-computing this name's metrics from only the facts an observer could have read on that date: a fact enters a month only once the annual filing that covers it (10-K/20-F/40-F) had a real SEC filed_date on or before that month-end. Per-share figures are split-rebased before the ratio is taken. Snapshots with no basis stamp are forward-captured ("live") and are labelled as such above, never folded in silently.
Restatement vintage: the availability GATE is honest (a fact enters a snapshot only once its covering annual filing's real filed_date precedes that month-end) but the VALUE stored is the latest restated one — an observer in 2017 may have seen a since-revised figure.
Survivorship: only names present in today's ingest exist in the archive, so a cohort median excludes companies that were delisted or acquired along the way.
Order-of-magnitude artifacts were dropped at write time by per-metric plausibility bands (P/E kept within 0.5–3,000×, ROE/ROIC ±50, net margin ±100, momentum −1 to +500) — real extreme tails are kept, so a band can legitimately be wide. A TRAILING P/E in particular explodes whenever earnings trough (CSCO's FY2018 tax-charge EPS of $0.02 gave a real 2,340× reading in 2019), so read the median as the robust statistic and the p90 as 'this is what a trough month looked like', not as a rich-valuation month.
P/E and EPS growth are reconstructed for US-domestic 10-K filers only — a 20-F/40-F foreign private issuer's ADR trades in USD while its EPS is reported in the native currency, so no multiple is reconstructed rather than a wrong one.
Sector medians use the cohort's CURRENT classification, not a point-in-time one (the same caveat the exposure and manager-sector surfaces carry) — a name that changed sector is counted in today's sector for every month it appears.
Gates: a series needs 12 monthly observations, a percentile band 60, p10/p90 inside a window 24, and a sector month 5 contributing names. Each row above states which gate it missed.
Effective sample size, not month count: the ratio metrics are annual figures re-read monthly, so the same value repeats between filings. Nothing is ranked inside fewer than 4 DISTINCT values, and no band is quoted unless the series carries at least 6 distinct values per decade of span — a "139-month range" resting on four fiscal years would misstate its own evidence. Both counts are in the last column.
P/E is the only series here with a price leg, so it is the only one that can be wrong from a per-share basis mismatch: when the live pipeline has flagged this name's share basis as changed, or the reconstructed level falls below what any listed equity trades at, the whole P/E row is withdrawn in favour of its reason rather than published. Every other series is a total-dollar ratio — currency- and split-neutral. 141 monthly point-in-time snapshots, 2014-12-31 → 2026-08-01, reconstructed by ingest.pit_reconstruct. 2 of 141 snapshots carry no pit_meta basis row and are reported as forward-captured ('live'), not reconstructed. Banded here: P/E, ROE, Net Margin, 12M Momentum, EPS Growth 3Y, Sales Growth 3Y. No series for: Market Cap — each row states why.
Loading the monthly cohort placement…
Rich vs Health Care on P/E
P/E 64th percentile in the Health Care pool — placement read per multiple; the API emits no single blended figure, so none is shown.
Compared against all 1053 Health Care names we cover — one sector-wide pool, so the median skews toward smaller (often unprofitable) companies. Try the Size band for a cap-matched read.
| Metric | This (FY) | Peer median | IQR (25–75) | %ile |
|---|---|---|---|---|
| P/E | 31.1x | 24.9x | 14.0x–38.6x | 64 ↑rich |
| P/Sales | 1.0x | 5.8x | 1.9x–18.7x | 14 ↓cheap |
| FCF Yield | 10.7% | -7.9% | -34.6%–1.4% | 95 ↑strong |
| Dividend Yield | 1.8% | 1.0% | 0.2%–2.4% | 65 ↑strong |
| Net Margin | 3.4% | -21.3% | -329.2%–7.1% | 69 ↑strong |
| Operating Margin | 7.5% | -34.7% | -552.6%–8.0% | 74 ↑strong |
| ROE | 4.7% | -36.9% | -92.5%–4.5% | 75 ↑strong |
P/Sales, not EV/Sales: this name's debt or cash isn't tagged in a way that supports an enterprise value, so the equity multiple is shown and ranked only against the 248 peers on that same basis — the two are not comparable.
Reading the covered industry pool…
Held-with peers…
Peers by disclosure language…
Share of covered industry revenue, n=152 covered names in Health Care Equipment & Supplies — a coverage proxy, not the product market.
| Calendar year | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 |
|---|---|---|---|---|---|---|
| Share of covered pool | 0.5% | 0.5% | 0.4% | 0.4% | 0.4% | 0.4% |
coverage: 150 of the 160 members that reported for 2024 have filed 2025 — this year's pool is smaller than last year's, which lifts every published share in it
This is share of COVERED industry revenue, not market share. The pool sums only the filers we cover in this industry group — private companies, uncovered listings and the conglomerate segments that compete here without being classified here are all absent — so every share and every HHI shown is overstated relative to the real market.
An industry group is a classification of filers, not a product market: names grouped together here do not necessarily compete, and real competitors can sit in different groups.
Shares are comparable WITHIN one industry group only. Adding a supplier's share to its customer's counts the same revenue twice down the value chain, so never compare or sum across groups.
Pools are built from today's covered universe, so companies that were acquired or delisted are missing from the historical years as well — past-year shares are overstated for that reason too.
No segment-to-market mapping is performed: a filer's own segment revenue is never re-pointed at another company's industry pool.
The pool is FX-converted, not USD-only. Per industry group and CALENDAR year: the summed revenue of every covered member, each member's own reporting currency translated to USD at its PERIOD-END fixing; HHI on the 0–10,000 scale over those shares. A fiscal year ending January–June is assigned to the prior calendar year. Dual-class listings and ADR/local pairs are unioned so an issuer counts once. Part-year rows stamped FY are refused (< 320 days after the last accepted annual). Rows with zero or negative revenue and rows in a currency we hold no fixing for are EXCLUDED and counted in the coverage census — never imputed, never held in the pool at 0%.
Years are calendarized behind a filing guard. Fiscal years ending in January–June are assigned to the PRIOR calendar year; July–December to their own. Up to six months of offset between two members of the same pool-year survives this rule. When a fiscal-calendar change lands two of one member's annual reports in the same calendar year, the later period-end serves. A pool-year is published only when the members that have filed into it are at least 80% of the trailing year's members BY COUNT and at least 80% of that year's revenue BY WEIGHT. Without both legs the newest year measures who files earliest, not who is large: a head-count bar alone let an autos pool serve while missing its two largest members.
Bars are scaled to the LARGEST member shown, not to the pool — an industry whose leader holds 4% would otherwise render as a column of blank rows. The percentages beside them are shares of the whole covered pool.
The counts differ on purpose. The pool’s n counts only members with a published annual revenue year, so it is smaller than the number of names classified into this group in the screener — the link above opens the classification, not the pool.
Growth restated as share is arithmetic, not a forecast. Each row holds one already-published rate — this company’s own realized three-year revenue pace, and the stage-one rate the reverse-DCF says today’s price requires — flat for five years against the pool’s own constant-composition growth, and reports the share it lands on. Nothing here produces a fair value or feeds one, and a projected share above 100% of the pool means the growth outruns everything we can observe, not that it is impossible.
Pool growth is constant-composition. +7.7%/yr uses only the 114 members present in both 2020 and 2025; the raw sum-to-sum figure over the same span is +11.8%/yr, and the gap between them is the coverage effect, not business growth.
Survivorship. Pools are built from today’s covered universe, so a company acquired or delisted since is missing from the historical years too — past-year shares are overstated for that reason as well as the coverage one.