| Market Cap | $338.9M | |
| Enterprise Value | $843.2M | |
| Revenue | $607.8M | +1.9% |
| Gross Profit | $262.9M | +11.6% |
| EBITDA | $104.2M | +171.0% |
| Net Income | $23.6M | — |
| Diluted EPS | $0.16 | — |
| Free Cash Flow | $38.4M | −15.5% |
| Ratio | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 6y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||
| Gross Margin | 41.30% | 41.40% | 36.85% | 38.82% | 39.61% | 43.40% | 92% | 67% | |
| Operating Margin | 16.95% | 11.19% | 7.37% | 14.25% | 2.44% | 13.44% | 58% | 85% | |
| EBITDA Margin | 20.71% | 14.87% | 10.97% | 18.02% | 6.49% | 17.27% | 58% | 83% | |
| NOPAT Margin | 13.36% | 8.84% | 6.95% | 9.91% | 1.92% | 9.00% | 58% | 81% | |
| Net Margin | 6.52% | −3.92% | 10.72% | 2.91% | −3.86% | 3.13% | 58% | 56% | |
| FCF Margin | 15.67% | 0.92% | −0.19% | 12.45% | 6.66% | 5.53% | 42% | 62% | |
| FCFF Margin | — | — | 5.32% | 18.86% | — | 11.18% | 50% | 75% | |
| FCFE Margin | 56.33% | 95.45% | 5.19% | 12.45% | 6.66% | — | — | — | |
| OCF Margin | 17.54% | 3.12% | 1.79% | 13.35% | 7.79% | 7.53% | 42% | 54% | |
| Gross Profitability | 19.55% | 24.04% | 20.30% | 21.28% | 21.05% | 22.87% | 75% | 29% | |
| Capex Intensity | 1.87% | 2.20% | 1.97% | 0.90% | 1.13% | 2.01% | 75% | 44% | |
| ▸Returns on Capital · 6 ratios | |||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||
| ▸Earnings quality · 7 ratios | |||||||||
| ▸Liquidity & coverage · 9 ratios | |||||||||
| ▸Leverage · 8 ratios | |||||||||
| ▸Working capital · 5 ratios | |||||||||
| ▸Capital allocation · 1 ratios | |||||||||
| ▸Per share · 6 ratios | |||||||||
The five drivers multiply to 4.3% vs reported ROE 4.4%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|
| Revenue | $504.2M | $692.8M | $688.4M | $659.7M | $602.2M | $613.5M |
| YoY % | +37.4% | -0.6% | -4.2% | -8.7% | +1.9% | |
| Cost of Revenue | $295.9M | $406.0M | $434.8M | $403.6M | $363.7M | $347.3M |
| YoY % | +37.2% | +7.1% | -7.2% | -9.9% | -4.5% | |
| Gross Profit | $208.2M | $286.8M | $253.7M | $256.1M | $238.5M | $266.2M |
| YoY % | +37.7% | -11.6% | +1.0% | -6.9% | +11.6% | |
| R&D Expense | $23.5M | $28.3M | $29.1M | $23.8M | $18.7M | $18.8M |
| YoY % | +20.4% | +2.8% | -18.0% | -21.5% | +0.6% | |
| SG&A Expense | $70.9M | $116.8M | $150.7M | $120.2M | $132.1M | $146.1M |
| YoY % | +64.8% | +29.1% | -20.2% | +9.9% | +10.6% | |
| Total Operating Expenses | $122.8M | $209.3M | $202.9M | $162.1M | $223.9M | $183.8M |
| YoY % | +70.4% | -3.0% | -20.1% | +38.2% | -17.9% | |
| Operating Income | $85.5M | $77.5M | $50.7M | $94.0M | $14.7M | $82.5M |
| YoY % | -9.3% | -34.5% | +85.3% | -84.4% | +462.3% | |
| Interest Expense | — | — | $40.2M | $60.7M | $50.7M | $51.8M |
| YoY % | +51.0% | -16.6% | +2.3% | |||
| Other Non-Operating Income | -$43.8M | -$94.2M | $27.5M | -$66.5M | -$40.9M | -$53.8M |
| Impairment of Real Estate | $0 | $0 | — | — | — | — |
| Pretax Income | $41.7M | -$16.7M | $78.3M | $27.6M | -$26.3M | $28.6M |
| YoY % | -64.8% | |||||
| Income Tax | $8.8M | $10.4M | $4.5M | $8.4M | -$3.0M | $9.5M |
| YoY % | +18.2% | -56.9% | +86.9% | |||
| Net Income | $32.9M | -$27.1M | $73.8M | $19.2M | -$23.2M | $19.2M |
| YoY % | -74.0% | |||||
| Net Income to Common | $32.9M | -$27.1M | $73.8M | $19.2M | -$23.2M | — |
| YoY % | -74.0% | |||||
| EPS (Basic) | $0.49 | -$0.30 | $0.63 | $0.16 | -$0.20 | $0.16 |
| YoY % | -74.6% | |||||
| EPS (Diluted) | $0.49 | -$0.30 | $0.14 | $0.16 | -$0.20 | $0.16 |
| YoY % | +14.3% | |||||
| Weighted Avg Shares (Basic) | 67.7M | 90.0M | 116.8M | 117.4M | 118.4M | 119.2M |
| YoY % | +32.9% | +29.8% | +0.5% | +0.9% | +0.7% | |
| Weighted Avg Shares (Diluted) | 67.7M | 90.0M | 117.2M | 118.5M | 118.4M | 120.0M |
| YoY % | +32.9% | +30.3% | +1.1% | -0.1% | +1.4% |
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.