| Market Cap | $41.9M | |
| Enterprise Value | $80.5M | |
| Revenue | $528.9M | +4.1% |
| Gross Profit | $235.8M | +15.5% |
| EBITDA | $60.7M | +167.6% |
| Net Income | $33.4M | +298.2% |
| Diluted EPS | -$0.34 | — |
| Free Cash Flow | -$68.8M | — |
| Ratio | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 6y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||
| Gross Margin | 99.30% | 99.63% | 99.59% | 99.61% | 99.66% | 99.76% | 92% | 99% | |
| Operating Margin | 9.15% | −23.35% | −25.34% | −6.42% | 4.43% | 12.00% | 92% | 56% | |
| EBITDA Margin | 11.11% | −19.94% | −20.13% | −2.02% | 4.80% | 12.34% | 92% | 38% | |
| NOPAT Margin | 7.70% | −18.44% | −20.02% | −5.07% | 2.31% | 8.18% | 92% | 36% | |
| Net Margin | 7.80% | −19.39% | −21.89% | −6.23% | 1.89% | 7.23% | 75% | 28% | |
| FCF Margin | −19.84% | −30.93% | −6.68% | −1.94% | −3.84% | −4.98% | 58% | 15% | |
| FCFF Margin | — | — | — | — | −2.75% | −3.66% | 25% | 8% | |
| FCFE Margin | −19.84% | −30.93% | 9.32% | −1.94% | −3.84% | −17.75% | 42% | 15% | |
| OCF Margin | −18.51% | −30.22% | −6.63% | −1.48% | −3.45% | −4.57% | 58% | 16% | |
| Gross Profitability | 55.64% | 46.66% | 36.28% | 14.30% | 18.04% | 19.07% | 42% | 55% | |
| Capex Intensity | 1.33% | 0.72% | 0.05% | 0.46% | 0.39% | 0.41% | 42% | 16% | |
| ▸Returns on Capital · 6 ratios | |||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||
| ▸Earnings quality · 7 ratios | |||||||||
| ▸Liquidity & coverage · 7 ratios | |||||||||
| ▸Leverage · 9 ratios | |||||||||
| ▸Working capital · 5 ratios | |||||||||
| ▸Per share · 6 ratios | |||||||||
The five drivers multiply to 7.1% vs reported ROE 6.8%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|
| Revenue | $582.8M | $538.2M | $405.4M | $452.9M | $532.4M | $554.0M |
| YoY % | -7.6% | -24.7% | +11.7% | +17.6% | +4.1% | |
| Cost of Revenue | $4.1M | $2.0M | $1.6M | $1.8M | $1.8M | $1.3M |
| YoY % | -51.2% | -17.3% | +7.5% | +1.3% | -25.7% | |
| Gross Profit | — | — | — | $159.2M | $208.5M | $240.8M |
| YoY % | +31.0% | +15.5% | ||||
| R&D Expense | $9.1M | $10.4M | $12.1M | $13.7M | $12.4M | $13.8M |
| YoY % | +14.3% | +16.3% | +13.2% | -9.5% | +11.3% | |
| SG&A Expense | $76.5M | $75.7M | $71.8M | $99.4M | $89.8M | $89.6M |
| YoY % | -1.0% | -5.1% | +38.4% | -9.7% | -0.2% | |
| Total Operating Expenses | $529.5M | $663.8M | $508.1M | $481.9M | $508.8M | $487.5M |
| YoY % | +25.4% | -23.5% | -5.1% | +5.6% | -4.2% | |
| Operating Income | $53.3M | -$125.6M | -$102.7M | -$29.1M | $23.6M | $66.5M |
| YoY % | +182.1% | |||||
| Interest Expense | — | — | — | $11.0M | $11.2M | $10.8M |
| YoY % | +1.7% | -3.6% | ||||
| Other Non-Operating Income | $666,000 | $1.6M | $4.0M | $9.5M | $6.9M | $3.0M |
| YoY % | +140.2% | +146.9% | +139.3% | -27.0% | -56.6% | |
| Impairment of Real Estate | $0 | $46.3M | $12.1M | $0 | $7.5M | $868,000 |
| YoY % | -73.9% | -100.0% | -88.4% | |||
| Pretax Income | $54.0M | -$124.9M | -$106.4M | -$30.6M | $19.3M | $58.7M |
| YoY % | +204.1% | |||||
| Income Tax | $8.5M | -$20.5M | -$17.7M | -$2.4M | $9.3M | $18.7M |
| YoY % | +101.9% | |||||
| Net Income | $45.5M | -$104.4M | -$88.7M | -$28.2M | $10.1M | $40.0M |
| YoY % | +298.2% | |||||
| Net Income to Common | $45.5M | -$122.9M | -$119.4M | -$66.5M | -$35.0M | -$10.4M |
| EPS (Basic) | $1.75 | -$4.59 | -$4.36 | -$2.37 | -$1.19 | -$0.34 |
| EPS (Diluted) | $1.68 | -$4.59 | -$4.36 | -$2.37 | -$1.19 | -$0.34 |
| Weighted Avg Shares (Basic) | 26.0M | 26.8M | 27.4M | 28.0M | 29.3M | 30.5M |
| YoY % | +2.9% | +2.2% | +2.4% | +4.7% | +3.9% | |
| Weighted Avg Shares (Diluted) | 27.0M | 26.8M | 27.4M | 28.0M | 29.3M | 30.5M |
| YoY % | -0.9% | +2.2% | +2.4% | +4.7% | +3.9% |
The sector classification is SIC-derived, not official GICS. Statement lines are XBRL facts as filed with the company's home regulator (SEC EDGAR for US filers; ESEF/EDINET and other national regulators for foreign filers); ratios and other derived figures are computed from them. A blank cell means the tag was absent — never imputed.