The Moat Index
Compare moats, side by side.
Two to four companies, scored on the same five investor questions from their SEC filings — so the comparison is apples to apples. The method is fully public.
SPRO · Healthcare · Shallow moat
Doesn't clear the bar
The pricingPower component abstained: Not enough years of gross-margin data to score pricing power. The other four 20% weights were renormalized over the scored 80%.
KROS · Healthcare · Shallow moat
Doesn't clear the bar
The pricingPower component abstained: Not enough years of gross-margin data to score pricing power. The other four 20% weights were renormalized over the scored 80%.
COHR · Healthcare · Shallow moat
Doesn't clear the bar
The balanceSheet component abstained: Insufficient leverage/coverage inputs to score the balance sheet. The other four 20% weights were renormalized over the scored 80%.
PNTG · Healthcare · Shallow moat
Doesn't clear the bar
The pricingPower component abstained: Not enough years of gross-margin data to score pricing power. The other four 20% weights were renormalized over the scored 80%.
| Measure | SPRO | KROS | COHR | PNTG |
|---|---|---|---|---|
| Moat Score (0–100) | 56 (highest) | 56 (highest) | 56 (highest) | 56 (highest) |
| Methodology version | moat-index@3.0.0 | moat-index@3.0.0 | moat-index@3.0.0 | moat-index@3.0.0 |
| Business trend | 65 | 72 | 90 | 100 (highest) |
| Pricing power | — | — | 58 | — |
| Returns on capital | 14 | 9 | 15 | 28 (highest) |
| Balance-sheet safety | 100 (highest) | 100 (highest) | — | 35 |
| Capital allocation | 44 | 44 | 60 (highest) | 60 (highest) |
| No price data | No price data | 1999% above value if growth stopped today | 779% above value if growth stopped today (largest discount to value if growth stopped today) | |
| Market cap | $68.3M | $222M | $54.8B | $1.3B |
| Moat tier | Shallow moat | Shallow moat | Shallow moat | Shallow moat |
| Filing date | FY2025 | FY2025 | FY2026 | FY2025 |