| Market Cap | $3.88B | |
| Enterprise Value | — | |
| Revenue | $706.0M | +18.2% |
| Gross Profit | $290.4M | +12.0% |
| EBITDA | $136.5M | +12.1% |
| Net Income | $109.5M | +27.5% |
| Diluted EPS | $1.19 | +26.6% |
| Free Cash Flow | $124.4M | −6.9% |
| Ratio | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 7y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | ||||||||||
| Gross Margin | 32.75% | 33.76% | 29.81% | 24.16% | 36.61% | 38.52% | 36.50% | 64% | 51% | |
| Operating Margin | 4.71% | 15.08% | 6.48% | 0.71% | 11.44% | 14.31% | 13.53% | 64% | 68% | |
| EBITDA Margin | 5.44% | 15.77% | 7.02% | 1.16% | 11.58% | 14.45% | 13.71% | 64% | 53% | |
| NOPAT Margin | 3.89% | 11.31% | 5.08% | 0.51% | 9.21% | 11.31% | 10.38% | 64% | 66% | |
| Net Margin | 3.32% | 10.51% | 5.01% | 1.83% | 9.45% | 10.84% | 11.70% | 93% | 73% | |
| FCF Margin | 7.31% | 10.60% | −4.41% | −2.79% | 21.59% | 8.12% | 6.40% | 36% | 46% | |
| FCFF Margin | — | — | — | −2.74% | 21.59% | 8.12% | — | — | — | |
| OCF Margin | 7.67% | 10.73% | −4.26% | −2.56% | 21.71% | 8.31% | 7.74% | 50% | 38% | |
| Gross Profitability | — | 57.03% | 57.29% | 52.27% | 63.26% | 54.85% | 48.27% | 8% | 92% | |
| Capex Intensity | 0.36% | 0.13% | 0.15% | 0.23% | 0.12% | 0.19% | 1.34% | 93% | 11% | |
| ▸Returns on Capital · 3 ratios | ||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | ||||||||||
| ▸Earnings quality · 6 ratios | ||||||||||
| ▸Liquidity & coverage · 6 ratios | ||||||||||
| ▸Leverage · 2 ratios | ||||||||||
| ▸Working capital · 8 ratios | ||||||||||
| ▸Capital allocation · 2 ratios | ||||||||||
| ▸Per share · 6 ratios | ||||||||||
| ▸Other · 1 ratios | ||||||||||
The five drivers multiply to 24.1% vs reported ROE 24.2%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2019↗ | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|---|
| Revenue | $283.9M | $310.6M | $379.5M | $427.8M | $493.6M | $516.0M | $609.8M |
| YoY % | +9.4% | +22.2% | +12.7% | +15.4% | +4.5% | +18.2% | |
| Cost of Revenue | $191.0M | $205.8M | $266.4M | $324.4M | $312.9M | $317.2M | $387.2M |
| YoY % | +7.8% | +29.4% | +21.8% | -3.6% | +1.4% | +22.1% | |
| Gross Profit | $93.0M | $104.9M | $113.1M | $103.4M | $180.7M | $198.8M | $222.6M |
| YoY % | +12.8% | +7.9% | -8.6% | +74.9% | +10.0% | +12.0% | |
| R&D Expense | $642,000 | $313,000 | $477,000 | $541,000 | $418,000 | $398,000 | $399,000 |
| YoY % | -51.2% | +52.4% | +13.4% | -22.7% | -4.8% | +0.3% | |
| Selling & Marketing Expense | — | — | — | $23.1M | $35.5M | $31.3M | $35.3M |
| YoY % | +53.6% | -11.6% | +12.5% | ||||
| SG&A Expense | $78.9M | $74.4M | $88.6M | $100.3M | $124.2M | $125.0M | $140.1M |
| YoY % | -5.7% | +19.0% | +13.3% | +23.9% | +0.6% | +12.1% | |
| Total Operating Expenses | $79.6M | $58.0M | $88.6M | $100.3M | $124.2M | $125.0M | $140.1M |
| YoY % | -27.1% | +52.7% | +13.3% | +23.9% | +0.6% | +12.1% | |
| Operating Income | $13.4M | $46.9M | $24.6M | $3.1M | $56.5M | $73.8M | $82.5M |
| YoY % | +250.4% | -47.5% | -87.6% | +1749.2% | +30.7% | +11.8% | |
| Interest Expense | — | — | — | $258,000 | $31,000 | $0 | — |
| YoY % | -88.0% | -100.0% | |||||
| Interest & Investment Income | $225,000 | $404,000 | $127,000 | $51,000 | $2.5M | $6.7M | $6.5M |
| YoY % | +79.6% | -68.6% | -59.8% | +4900.0% | +163.3% | -2.5% | |
| Other Non-Operating Income | -$2.0M | -$3.3M | -$360,000 | $7.8M | $1.4M | -$3.0M | $10.4M |
| YoY % | -81.7% | ||||||
| Impairment of Real Estate | — | $90,000 | $0 | $619,000 | $363,000 | $363,000 | $140,000 |
| YoY % | -100.0% | -41.4% | 0.0% | -61.4% | |||
| Pretax Income | $11.4M | $43.6M | $24.2M | $10.8M | $57.9M | $70.8M | $93.0M |
| YoY % | +282.4% | -44.4% | -55.3% | +434.3% | +22.2% | +31.3% | |
| Income Tax | $2.0M | $10.9M | $5.2M | $3.0M | $11.3M | $14.8M | $21.7M |
| YoY % | +451.4% | -52.0% | -42.2% | +273.0% | +31.4% | +45.9% | |
| Net Income (incl. NCI) | $9.4M | $32.7M | $19.0M | $7.8M | $46.6M | — | — |
| YoY % | +246.9% | -41.9% | -58.9% | +496.7% | |||
| Minority Interest (P&L) | $5,000 | $27,000 | -$23,000 | $0 | $0 | — | — |
| YoY % | +440.0% | ||||||
| Net Income | $9.4M | $32.7M | $19.0M | $7.8M | $46.6M | $56.0M | $71.3M |
| YoY % | +246.8% | -41.8% | -58.9% | +496.7% | +20.0% | +27.5% | |
| EPS (Basic) | $0.17 | $0.56 | $0.35 | $0.14 | $0.83 | $0.99 | $1.25 |
| YoY % | +229.4% | -37.5% | -60.0% | +492.9% | +19.3% | +26.3% | |
| EPS (Diluted) | $0.16 | $0.56 | $0.35 | $0.14 | $0.79 | $0.94 | $1.19 |
| YoY % | +250.0% | -37.5% | -60.0% | +464.3% | +19.0% | +26.6% | |
| Weighted Avg Shares (Basic) | 57.0M | 58.5M | 53.7M | 55.7M | 56.4M | 56.7M | 56.9M |
| YoY % | +2.7% | -8.2% | +3.8% | +1.2% | +0.5% | +0.3% | |
| Weighted Avg Shares (Diluted) | 57.2M | 58.6M | 54.2M | 56.1M | 58.7M | 59.3M | 60.0M |
| YoY % | +2.6% | -7.5% | +3.6% | +4.7% | +0.9% | +1.1% |
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.