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.
ATRA · Healthcare · No 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%.
OGN · Healthcare · No moat
Doesn't clear the bar
The returnsOnCapital component abstained: Not enough years of ROIC data to score returns on capital. The other four 20% weights were renormalized over the scored 80%.
WLSS · Healthcare · No moat
Doesn't clear the bar
The returnsOnCapital component abstained: Not enough years of ROIC data to score returns on capital. The other four 20% weights were renormalized over the scored 80%.
| Measure | AEHR | ATRA | OGN | WLSS |
|---|---|---|---|---|
| Moat Score (0–100) | 35 | 36 (highest) | 36 (highest) | 35 |
| Methodology version | moat-index@3.0.0 | moat-index@3.0.0 | moat-index@3.0.0 | moat-index@3.0.0 |
| Business trend | 29 | 72 (highest) | 34 | 20 |
| Pricing power | 55 | — | 93 (highest) | 70 |
| Returns on capital | 14 (highest) | 0 | — | — |
| Balance-sheet safety | 55 (highest) | 46 | 0 | 28 |
| Capital allocation | 24 (highest) | 24 (highest) | 15 | 24 (highest) |
| 2792% above value if growth stopped today | No price data | 67% below value if growth stopped today (largest discount to value if growth stopped today) | No price data | |
| Market cap | $3.0B | $71M | $3.6B | $1.7M |
| Moat tier | No moat | No moat | No moat | No moat |
| Filing date | FY2026 | FY2025 | FY2025 | FY2025 |