| Market Cap | $2.57B | |
| Enterprise Value | $4.01B | |
| Revenue | $2.76B | +52.1% |
| Gross Profit | $355.4M | +94.8% |
| EBITDA | $332.3M | +172.9% |
| Net Income | $115.4M | +181.3% |
| Diluted EPS | $1.83 | +134.6% |
| Free Cash Flow | $175.5M | +58.4% |
| Ratio | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 12y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||||||||
| Gross Margin | 12.46% | 13.06% | 12.77% | 11.66% | 14.29% | 13.17% | 14.37% | 14.42% | 15.82% | 14.03% | 10.06% | 12.89% | 38% | 12% | |
| Operating Margin | 7.71% | 8.73% | 8.23% | 7.77% | 10.04% | 8.49% | 9.59% | 6.58% | 11.92% | 10.38% | 4.06% | 8.48% | 46% | 60% | |
| EBITDA Margin | 10.47% | 11.45% | 10.99% | 10.47% | 12.61% | 10.85% | 11.99% | 9.03% | 14.25% | 12.66% | 6.72% | 12.05% | 71% | 54% | |
| NOPAT Margin | 4.64% | 5.28% | 4.98% | 5.34% | 7.74% | 6.49% | 7.26% | 5.01% | 8.88% | 7.55% | 2.89% | 6.09% | 54% | 55% | |
| Net Margin | 4.14% | 4.55% | 5.01% | 5.89% | 6.68% | 7.46% | 8.12% | 6.42% | 7.46% | 7.60% | 2.26% | 4.19% | 21% | 51% | |
| FCF Margin | 5.43% | 5.33% | 8.74% | 7.62% | 9.83% | 8.89% | 14.03% | 11.06% | 8.32% | 8.20% | 6.11% | 6.36% | 29% | 54% | |
| FCFF Margin | — | — | — | — | — | — | — | — | 8.74% | 9.12% | 7.45% | 9.15% | 88% | 46% | |
| OCF Margin | 6.10% | 6.31% | 9.26% | 9.01% | 11.42% | 10.35% | 15.23% | 11.87% | 8.93% | 9.65% | 6.82% | 6.98% | 29% | 38% | |
| Gross Profitability | 9.05% | 9.84% | 9.13% | 8.48% | 11.13% | 8.92% | 9.15% | 9.78% | 11.89% | 10.92% | 4.08% | 8.06% | 13% | 14% | |
| Capex Intensity | 0.67% | 0.98% | 0.52% | 1.39% | 1.59% | 1.46% | 1.20% | 0.81% | 0.61% | 1.45% | 0.71% | 0.61% | 21% | 18% | |
| ▸Returns on Capital · 6 ratios | |||||||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||||||||
| ▸Earnings quality · 7 ratios | |||||||||||||||
| ▸Liquidity & coverage · 8 ratios | |||||||||||||||
| ▸Leverage · 9 ratios | |||||||||||||||
| ▸Working capital · 5 ratios | |||||||||||||||
| ▸Capital allocation · 2 ratios | |||||||||||||||
| ▸Per share · 6 ratios | |||||||||||||||
The five drivers multiply to 6.5% vs reported ROE 6.5%. 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 | $719.5M | $750.4M | $799.8M | $855.3M | $922.0M | $948.4M | $963.9M | $1.10B | $1.41B | $1.59B | $1.81B | $2.76B |
| YoY % | +4.3% | +6.6% | +6.9% | +7.8% | +2.9% | +1.6% | +14.6% | +27.8% | +12.7% | +14.0% | +52.1% | |
| Cost of Revenue | $629.8M | $652.4M | $697.7M | $755.6M | $790.3M | $823.5M | $825.4M | $945.6M | $1.19B | $1.37B | $1.63B | $2.40B |
| YoY % | +3.6% | +6.9% | +8.3% | +4.6% | +4.2% | +0.2% | +14.6% | +25.7% | +15.1% | +19.2% | +47.3% | |
| Gross Profit | $89.7M | $98.0M | $102.1M | $99.8M | $131.7M | $124.9M | $138.5M | $159.3M | $223.4M | $223.2M | $182.5M | $355.4M |
| YoY % | +9.3% | +4.2% | -2.3% | +32.0% | -5.2% | +10.9% | +15.0% | +40.2% | -0.1% | -18.3% | +94.8% | |
| SG&A Expense | $34.2M | $32.5M | $36.3M | $33.3M | $39.2M | $44.4M | $46.1M | $56.1M | $55.0M | $58.0M | $108.8M | $121.4M |
| YoY % | -4.8% | +11.7% | -8.3% | +17.7% | +13.4% | +3.7% | +21.9% | -2.0% | +5.3% | +87.6% | +11.6% | |
| Operating Income | $55.5M | $65.5M | $65.8M | $66.5M | $92.5M | $80.5M | $92.5M | $72.7M | $168.3M | $165.2M | $73.7M | $234.0M |
| YoY % | +18.0% | +0.4% | +1.0% | +39.3% | -13.0% | +14.9% | -21.4% | +131.6% | -1.8% | -55.4% | +217.4% | |
| Interest Expense | — | — | — | — | — | — | — | — | $8.0M | $20.1M | $34.4M | $107.2M |
| YoY % | +150.4% | +70.8% | +211.9% | |||||||||
| Other Non-Operating Income | $6.9M | $1.1M | $7.0M | $14.5M | -$7.1M | $17.7M | $16.5M | $18.2M | -$19.2M | $21.0M | $13.5M | $33.3M |
| YoY % | -83.4% | +507.1% | +108.3% | -6.9% | +10.4% | -35.6% | +146.2% | |||||
| Pretax Income | $50.6M | $57.8M | $67.0M | $74.3M | $79.8M | $92.9M | $103.5M | $93.0M | $141.5M | $166.3M | $57.8M | $160.8M |
| YoY % | +14.4% | +15.9% | +10.9% | +7.4% | +16.3% | +11.4% | -10.1% | +52.1% | +17.5% | -65.2% | +178.2% | |
| Income Tax | $20.2M | $22.8M | $26.4M | $23.3M | $18.3M | $21.8M | $25.1M | $22.1M | $36.1M | $45.3M | $16.8M | $45.4M |
| YoY % | +13.3% | +15.6% | -11.8% | -21.6% | +19.6% | +15.1% | -12.0% | +63.2% | +25.5% | -63.0% | +170.7% | |
| Income from Continuing Operations | $30.4M | $35.0M | $40.6M | $51.0M | $61.6M | $71.0M | $78.3M | $70.9M | $105.4M | $121.0M | $41.0M | $115.4M |
| YoY % | +15.1% | +16.0% | +25.7% | +20.7% | +15.4% | +10.3% | -9.5% | +48.6% | +14.8% | -66.1% | +181.3% | |
| Income from Discontinued Operations | -$655,000 | -$896,000 | -$542,000 | -$655,000 | — | — | — | — | — | — | — | — |
| Net Income (incl. NCI) | — | — | $40.1M | $50.4M | $61.6M | $70.7M | — | — | — | — | — | — |
| YoY % | +25.7% | +22.2% | +14.9% | |||||||||
| Net Income | $29.8M | $34.1M | $40.1M | $50.4M | $61.6M | $70.7M | $78.3M | $70.9M | $105.4M | $121.0M | $41.0M | $115.4M |
| YoY % | +14.6% | +17.5% | +25.7% | +22.2% | +14.9% | +10.7% | -9.5% | +48.6% | +14.8% | -66.1% | +181.3% | |
| EPS (Basic) | $0.62 | $0.69 | $0.77 | $0.94 | $1.13 | $1.30 | $1.44 | $1.35 | $2.05 | $2.42 | $0.78 | $1.84 |
| YoY % | +11.3% | +11.6% | +22.1% | +20.2% | +15.0% | +10.8% | -6.2% | +51.9% | +18.0% | -67.8% | +135.9% | |
| EPS (Diluted) | $0.58 | $0.65 | $0.75 | $0.91 | $1.09 | $1.26 | $1.41 | $1.32 | $2.01 | $2.39 | $0.78 | $1.83 |
| YoY % | +12.1% | +15.4% | +21.3% | +19.8% | +15.6% | +11.9% | -6.4% | +52.3% | +18.9% | -67.4% | +134.6% | |
| Weighted Avg Shares (Basic) | 48.3M | 50.3M | 52.3M | 53.9M | 54.6M | 54.3M | 54.3M | 52.6M | 51.5M | 50.0M | 52.4M | 62.9M |
| YoY % | +4.0% | +4.1% | +2.9% | +1.3% | -0.5% | -0.0% | -3.0% | -2.2% | -2.9% | +4.8% | +20.1% | |
| Weighted Avg Shares (Diluted) | 51.5M | 52.7M | 53.5M | 55.7M | 56.5M | 55.9M | 55.4M | 53.7M | 52.4M | 50.6M | 52.7M | 63.2M |
| YoY % | +2.3% | +1.6% | +4.1% | +1.4% | -1.0% | -1.0% | -3.0% | -2.5% | -3.5% | +4.2% | +20.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.