| Market Cap | $2.59B | |
| Enterprise Value | — | |
| Revenue | $416.1M | +16.5% |
| Gross Profit | $248.1M | +29.4% |
| EBITDA | $146.4M | +34.1% |
| Net Income | $40.9M | +33.8% |
| Diluted EPS | $0.63 | +31.3% |
| Free Cash Flow | $126.6M | +90.5% |
| Ratio | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 12y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||||||||
| Gross Margin | — | — | — | 48.65% | 55.54% | 54.13% | 15.72% | 52.73% | 51.98% | 57.18% | 54.00% | 60.02% | 94% | 82% | |
| Operating Margin | 19.92% | 23.48% | 15.53% | 8.26% | 12.07% | 19.53% | −88.92% | 4.31% | −1.61% | 13.45% | 12.45% | 20.53% | 88% | 85% | |
| EBITDA Margin | 31.54% | 34.93% | 27.85% | 25.80% | 27.41% | 35.58% | −49.79% | 26.31% | 17.23% | 29.46% | 31.05% | 35.76% | 96% | 94% | |
| NOPAT Margin | 14.89% | 18.07% | 11.18% | 3.64% | 9.43% | — | — | 0.00% | −1.27% | 9.64% | 10.80% | 14.77% | 75% | 82% | |
| Net Margin | 13.68% | 14.94% | 7.63% | 0.62% | 6.10% | 11.84% | −104.94% | −8.76% | −7.58% | 6.76% | 7.40% | 8.50% | 71% | 63% | |
| FCF Margin | 16.11% | 10.95% | 16.59% | 16.08% | 25.80% | 20.97% | −17.30% | 0.97% | 2.96% | 13.91% | 17.72% | 28.99% | 96% | 97% | |
| FCFF Margin | — | — | — | — | — | — | — | — | — | 15.21% | 19.71% | 30.28% | 83% | 94% | |
| OCF Margin | 29.91% | 22.53% | 20.64% | 22.42% | 29.37% | 22.84% | −16.80% | 2.38% | 5.76% | 15.64% | 20.11% | 30.98% | 96% | 94% | |
| Gross Profitability | 27.90% | 23.56% | 23.64% | 21.38% | 23.80% | 24.09% | 2.16% | 15.22% | 19.04% | 26.31% | 22.90% | 27.54% | 88% | 64% | |
| Capex Intensity | 13.80% | 11.57% | 4.05% | 6.34% | 3.57% | 1.88% | 0.51% | 1.41% | 2.80% | 1.73% | 2.39% | 1.99% | 38% | 25% | |
| ▸Returns on Capital · 5 ratios | |||||||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||||||||
| ▸Earnings quality · 7 ratios | |||||||||||||||
| ▸Liquidity & coverage · 6 ratios | |||||||||||||||
| ▸Leverage · 9 ratios | |||||||||||||||
| ▸Working capital · 4 ratios | |||||||||||||||
| ▸Capital allocation · 2 ratios | |||||||||||||||
| ▸Per share · 6 ratios | |||||||||||||||
The five drivers multiply to 10.7% vs reported ROE 10.9%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2014↗ | 2015↗ | 2016↗ | 2017↗ | 2018↗ | 2019↗ | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $290.5M | $373.8M | $377.3M | $380.8M | $374.4M | $395.7M | $137.0M | $254.9M | $300.8M | $374.8M | $352.2M | $410.2M |
| YoY % | +28.7% | +0.9% | +0.9% | -1.7% | +5.7% | -65.4% | +86.0% | +18.0% | +24.6% | -6.0% | +16.5% | |
| Cost of Revenue | — | — | — | $195.5M | $166.5M | $181.5M | $115.5M | $120.5M | $144.4M | $160.5M | $162.0M | $164.0M |
| YoY % | -14.9% | +9.0% | -36.4% | +4.3% | +19.9% | +11.1% | +0.9% | +1.2% | ||||
| Gross Profit | $173.4M | $219.3M | $202.7M | $185.2M | $207.9M | $214.2M | $21.5M | $134.4M | $156.4M | $214.3M | $190.2M | $246.2M |
| YoY % | +26.5% | -7.6% | -8.6% | +12.2% | +3.0% | -89.9% | +524.0% | +16.3% | +37.1% | -11.3% | +29.4% | |
| R&D Expense | $16.1M | $12.7M | $16.3M | $20.9M | $13.7M | $5.2M | $5.6M | $6.9M | $5.3M | $10.1M | $5.1M | $5.8M |
| YoY % | -20.9% | +28.2% | +27.8% | -34.2% | -62.1% | +8.0% | +23.6% | -23.7% | +90.8% | -49.5% | +14.0% | |
| SG&A Expense | — | — | — | — | — | — | $108.5M | $117.3M | $138.0M | $144.4M | $132.7M | $138.5M |
| YoY % | +8.1% | +17.7% | +4.6% | -8.1% | +4.3% | |||||||
| Operating Income | $57.9M | $87.8M | $58.6M | $31.4M | $45.2M | $77.3M | -$121.8M | $11.0M | -$4.8M | $50.4M | $43.9M | $84.2M |
| YoY % | +51.7% | -33.2% | -46.3% | +43.7% | +71.1% | -13.0% | +92.0% | |||||
| Interest Expense | — | — | — | — | — | — | — | — | $5.9M | $6.8M | $8.1M | $7.4M |
| YoY % | +16.1% | +18.5% | -8.9% | |||||||||
| Interest & Investment Income | — | — | — | — | — | — | — | — | $1.4M | $2.5M | $2.2M | $2.8M |
| YoY % | +74.1% | -12.3% | +28.4% | |||||||||
| Equity Method Income | -$1.1M | -$2.4M | -$2.3M | -$703,000 | -$492,000 | $3,000 | -$1.9M | $0 | $0 | — | — | — |
| Impairment of Real Estate | — | — | — | — | — | — | — | — | $4.5M | $144,000 | $0 | — |
| YoY % | -96.8% | -100.0% | ||||||||||
| Pretax Income | $57.4M | $87.1M | $57.9M | $30.0M | $43.6M | — | — | $11.0M | -$9.8M | $46.1M | $37.7M | $63.3M |
| YoY % | +51.8% | -33.6% | -48.1% | +45.3% | -18.3% | +67.9% | ||||||
| Income Tax | $14.5M | $20.1M | $16.2M | $16.8M | $9.5M | $16.8M | $26.5M | $20.6M | $10.1M | $13.1M | $5.0M | $17.8M |
| YoY % | +38.6% | -19.2% | +3.6% | -43.3% | +76.2% | +58.1% | -22.4% | -50.8% | +29.1% | -61.7% | +255.6% | |
| Income from Discontinued Operations | $355,000 | $0 | $0 | — | — | — | — | — | — | — | — | — |
| YoY % | -100.0% | |||||||||||
| Net Income (incl. NCI) | $42.2M | $64.6M | $39.3M | $12.5M | $33.6M | $58.6M | -$157.5M | -$9.6M | -$19.9M | $33.1M | $32.7M | $45.5M |
| YoY % | +53.3% | -39.2% | -68.2% | +168.4% | +74.3% | -1.1% | +39.2% | |||||
| Net Income | $39.7M | $55.8M | $28.8M | $2.3M | $22.8M | $46.9M | -$143.8M | -$22.3M | -$22.8M | $25.3M | $26.1M | $34.9M |
| YoY % | +40.5% | -48.4% | -91.9% | +874.6% | +105.2% | +2.9% | +33.8% | |||||
| Net Income to Common | $39.3M | $55.1M | $28.8M | $2.3M | $22.8M | $46.9M | — | — | — | — | — | — |
| YoY % | +40.1% | -47.7% | -91.9% | +874.6% | +105.2% | |||||||
| EPS (Basic) | $0.58 | $0.79 | $0.43 | $0.04 | $0.36 | — | -$2.43 | -$0.38 | -$0.40 | $0.47 | $0.49 | $0.65 |
| YoY % | +36.2% | -45.6% | -90.7% | +800.0% | +4.3% | +32.7% | ||||||
| EPS (Diluted) | $0.56 | $0.78 | $0.42 | $0.04 | $0.36 | — | -$2.43 | -$0.38 | -$0.40 | $0.46 | $0.48 | $0.63 |
| YoY % | +39.3% | -46.2% | -90.5% | +800.0% | +4.3% | +31.3% | ||||||
| Weighted Avg Shares (Basic) | 68,346 | 69,526 | 67,575 | 65.4M | 63.1M | 61.3M | 59.2M | 59.1M | 56.7M | 54.3M | 52.6M | 53.6M |
| YoY % | +1.7% | -2.8% | +96651.8% | -3.5% | -2.8% | -3.4% | -0.2% | -4.1% | -4.2% | -3.1% | +1.9% | |
| Weighted Avg Shares (Diluted) | 69,754 | 71,058 | 68,263 | 65.5M | 63.2M | 61.5M | 59.2M | 59.1M | 56.7M | 55.1M | 53.9M | 55.5M |
| YoY % | +1.9% | -3.9% | +95911.0% | -3.6% | -2.7% | -3.7% | -0.2% | -4.1% | -2.7% | -2.3% | +3.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.