| Market Cap | $1.58B | |
| Enterprise Value | — | |
| Revenue | $560.6M | +3.6% |
| Gross Profit | $252.8M | +24.2% |
| EBITDA | $19.9M | — |
| Net Income | $30.6M | — |
| Diluted EPS | $0.14 | — |
| Free Cash Flow | $70.5M | — |
| Ratio | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 9y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | ||||||||||||
| Gross Margin | 24.61% | 19.80% | 9.68% | 15.51% | 24.83% | 27.74% | 34.11% | 36.70% | 43.99% | 94% | 76% | |
| Operating Margin | 1.55% | −16.08% | −23.03% | −29.36% | −13.82% | −11.60% | −5.07% | −6.83% | 1.15% | 83% | 27% | |
| EBITDA Margin | 2.56% | −14.94% | −20.15% | −26.50% | −12.45% | −10.63% | −4.12% | −6.20% | 1.89% | 83% | 22% | |
| NOPAT Margin | — | — | −18.20% | −23.20% | −10.92% | −9.16% | −4.01% | −5.40% | 1.09% | 93% | 27% | |
| Net Margin | 1.77% | −16.24% | −23.23% | −28.35% | −12.88% | −11.55% | −4.49% | −5.97% | 2.82% | 94% | 44% | |
| FCF Margin | −11.48% | −8.46% | 0.68% | −14.12% | −5.85% | −9.78% | 7.22% | 9.52% | — | — | — | |
| OCF Margin | −10.52% | −3.80% | 2.48% | −13.03% | −5.33% | −9.37% | 7.80% | 10.04% | 14.87% | 94% | 70% | |
| Gross Profitability | — | 15.45% | 6.60% | 13.38% | 31.09% | 49.98% | 58.68% | 62.84% | 74.98% | 94% | 98% | |
| Capex Intensity | 0.97% | 4.66% | 1.80% | 1.09% | 0.52% | 0.41% | 0.58% | 0.53% | — | — | — | |
| ▸Returns on Capital · 3 ratios | ||||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | ||||||||||||
| ▸Earnings quality · 5 ratios | ||||||||||||
| ▸Liquidity & coverage · 3 ratios | ||||||||||||
| ▸Leverage · 2 ratios | ||||||||||||
| ▸Working capital · 8 ratios | ||||||||||||
| ▸Capital allocation · 2 ratios | ||||||||||||
| ▸Per share · 6 ratios | ||||||||||||
| ▸Other · 1 ratios | ||||||||||||
The five drivers multiply to 11.9% vs reported ROE 13.1%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2017↗ | 2018↗ | 2019↗ | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|---|---|---|
| Revenue | $370.7M | $464.9M | $370.0M | $357.2M | $435.1M | $490.4M | $491.2M | $510.9M | $529.3M |
| YoY % | +25.4% | -20.4% | -3.5% | +21.8% | +12.7% | +0.2% | +4.0% | +3.6% | |
| Cost of Revenue | $279.4M | $372.8M | $334.2M | $301.8M | $327.1M | $354.4M | $323.6M | $323.4M | $296.5M |
| YoY % | +33.4% | -10.4% | -9.7% | +8.4% | +8.3% | -8.7% | -0.1% | -8.3% | |
| Gross Profit | $91.2M | $92.1M | $35.8M | $55.4M | $108.0M | $136.0M | $167.6M | $187.5M | $232.8M |
| YoY % | +0.9% | -61.1% | +54.7% | +95.0% | +25.9% | +23.2% | +11.9% | +24.2% | |
| R&D Expense | $34.7M | $58.8M | $69.4M | $60.1M | $59.1M | $64.7M | $68.6M | $73.2M | $73.7M |
| YoY % | +69.5% | +18.0% | -13.3% | -1.8% | +9.6% | +6.1% | +6.6% | +0.6% | |
| Selling & Marketing Expense | $34.3M | $52.6M | $57.0M | $49.1M | $48.9M | $70.1M | $66.1M | $73.7M | $84.8M |
| YoY % | +53.2% | +8.4% | -13.9% | -0.3% | +43.3% | -5.6% | +11.5% | +15.1% | |
| SG&A Expense | $15.1M | $28.2M | $47.6M | $51.1M | $49.5M | $55.9M | $56.4M | $72.1M | $66.1M |
| YoY % | +86.9% | +68.8% | +7.3% | -3.1% | +13.0% | +0.8% | +28.0% | -8.4% | |
| Total Operating Expenses | $85.5M | $166.8M | $121.0M | $160.3M | $168.2M | $192.9M | $192.5M | $222.4M | $226.8M |
| YoY % | +95.1% | -27.5% | +32.4% | +4.9% | +14.7% | -0.2% | +15.6% | +2.0% | |
| Operating Income | $5.7M | -$74.8M | -$85.2M | -$104.9M | -$60.1M | -$56.9M | -$24.9M | -$34.9M | $6.1M |
| Other Non-Operating Income | $1.9M | -$1.2M | $913,000 | $3.4M | $4.8M | $302,000 | $107,000 | -$104,000 | $0 |
| YoY % | +276.3% | +39.0% | -93.7% | -64.6% | |||||
| Impairment of Real Estate | — | — | — | $0 | $9.1M | $0 | $0 | — | — |
| YoY % | -100.0% | ||||||||
| Pretax Income | — | — | -$81.6M | -$100.6M | -$55.4M | -$55.7M | -$20.9M | -$29.4M | $15.7M |
| Income Tax | $1.1M | $772,000 | $4.4M | $625,000 | $677,000 | $975,000 | $1.2M | $1.1M | $741,000 |
| YoY % | -31.6% | +467.4% | -85.7% | +8.3% | +44.0% | +20.5% | -7.1% | -32.1% | |
| Net Income | $6.5M | -$75.5M | -$86.0M | -$101.3M | -$56.0M | -$56.6M | -$22.0M | -$30.5M | $14.9M |
| EPS (Basic) | $0.11 | -$1.12 | -$1.14 | -$1.30 | -$0.68 | -$0.65 | -$0.24 | -$0.31 | $0.14 |
| EPS (Diluted) | $0.11 | -$1.12 | -$1.14 | -$1.30 | -$0.68 | -$0.65 | -$0.24 | -$0.31 | $0.14 |
| Weighted Avg Shares (Basic) | 62.3M | 67.2M | 75.1M | 78.1M | 82.7M | 87.2M | 92.8M | 98.6M | 104.2M |
| YoY % | +8.0% | +11.7% | +4.0% | +5.9% | +5.4% | +6.4% | +6.3% | +5.7% | |
| Weighted Avg Shares (Diluted) | 62.3M | 67.2M | 75.1M | 78.1M | 82.7M | 87.2M | 92.8M | 98.6M | 110.2M |
| YoY % | +8.0% | +11.7% | +4.0% | +5.9% | +5.4% | +6.4% | +6.3% | +11.7% |
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.