| Market Cap | $267.0M | |
| Enterprise Value | — | |
| Revenue | $789.8M | +4.3% |
| Gross Profit | $159.9M | +3.9% |
| EBITDA | $75.6M | +50.3% |
| Net Income | $12.4M | — |
| Diluted EPS | $0.62 | — |
| Free Cash Flow | $15.5M | −62.2% |
| Ratio | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | Trend · 7y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | ||||||||||
| Gross Margin | 22.10% | 20.24% | 18.12% | 16.68% | 18.47% | 20.31% | 20.25% | 64% | 26% | |
| Operating Margin | 3.12% | 8.62% | 4.41% | 5.34% | 6.43% | 5.27% | 8.34% | 79% | 70% | |
| EBITDA Margin | 4.91% | 10.68% | 6.40% | 7.16% | 8.05% | 6.64% | 9.57% | 79% | 57% | |
| NOPAT Margin | 2.47% | 6.00% | 2.47% | 4.22% | 5.08% | 4.16% | 5.10% | 79% | 63% | |
| Net Margin | −1.36% | 3.97% | 1.13% | −0.62% | −6.86% | −2.57% | 1.57% | 79% | 43% | |
| FCF Margin | 0.87% | 7.79% | −8.06% | −3.80% | 5.32% | 5.40% | 1.96% | 50% | 35% | |
| FCFE Margin | 0.17% | −5.47% | — | — | — | — | — | — | — | |
| OCF Margin | 3.51% | 10.37% | −6.90% | −3.18% | 5.46% | 6.00% | 2.43% | 36% | 27% | |
| Gross Profitability | 15.24% | 12.91% | 11.60% | 11.08% | 13.10% | 16.06% | 15.69% | 79% | 19% | |
| Capex Intensity | 2.64% | 2.58% | 1.16% | 0.62% | 0.14% | 0.60% | 0.47% | 21% | 12% | |
| ▸Returns on Capital · 3 ratios | ||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | ||||||||||
| ▸Earnings quality · 6 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 4.8% vs reported ROE 4.7%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ | 2026↗ |
|---|---|---|---|---|---|---|---|
| Revenue | $535.8M | $540.8M | $650.3M | $683.1M | $717.7M | $757.4M | $789.8M |
| YoY % | +0.9% | +20.3% | +5.0% | +5.1% | +5.5% | +4.3% | |
| Cost of Revenue | $417.4M | $431.3M | $532.4M | $569.1M | $585.1M | $603.5M | $629.9M |
| YoY % | +3.3% | +23.4% | +6.9% | +2.8% | +3.1% | +4.4% | |
| Gross Profit | $118.4M | $109.5M | $117.9M | $114.0M | $132.6M | $153.8M | $159.9M |
| YoY % | -7.5% | +7.7% | -3.3% | +16.3% | +16.1% | +3.9% | |
| R&D Expense | $9.2M | $8.6M | $10.5M | $10.3M | $10.0M | $11.4M | $14.2M |
| YoY % | -6.9% | +22.6% | -1.7% | -3.2% | +14.1% | +24.5% | |
| Selling & Marketing Expense | $21.0M | $18.0M | $22.8M | $21.7M | $22.5M | $22.6M | $25.5M |
| YoY % | -14.3% | +26.7% | -4.8% | +3.5% | +0.4% | +13.0% | |
| SG&A Expense | $53.2M | $53.8M | $57.5M | $54.8M | $57.8M | $64.0M | $63.3M |
| YoY % | +1.2% | +6.8% | -4.8% | +5.5% | +10.9% | -1.2% | |
| Total Operating Expenses | $101.7M | $62.8M | $89.2M | $77.5M | $86.4M | $113.9M | $94.1M |
| YoY % | -38.2% | +41.9% | -13.1% | +11.5% | +31.8% | -17.4% | |
| Operating Income | $16.7M | $46.6M | $28.7M | $36.4M | $46.1M | $39.9M | $65.8M |
| YoY % | +178.6% | -38.4% | +27.0% | +26.5% | -13.4% | +64.9% | |
| Other Non-Operating Income | — | — | -$15.6M | -$39.6M | -$59.2M | -$55.6M | -$45.6M |
| Impairment of Real Estate | $0 | $0 | $0 | $0 | $0 | $0 | $0 |
| Pretax Income | -$8.3M | $30.9M | $13.1M | -$3.1M | -$13.1M | -$15.7M | $20.3M |
| YoY % | -57.4% | ||||||
| Income Tax | -$1.0M | $9.4M | $5.8M | $1.1M | $36.2M | $3.8M | $7.9M |
| YoY % | -38.3% | -81.0% | +3194.7% | -89.5% | +108.2% | ||
| Net Income | -$7.3M | $21.5M | $7.4M | -$4.2M | -$49.2M | -$19.5M | $12.4M |
| YoY % | -65.7% | ||||||
| EPS (Basic) | -$0.39 | $1.13 | $0.38 | -$0.22 | -$2.51 | -$0.99 | $0.64 |
| YoY % | -66.4% | ||||||
| EPS (Diluted) | -$0.39 | $1.11 | $0.38 | -$0.22 | -$2.51 | -$0.99 | $0.62 |
| YoY % | -65.8% | ||||||
| Weighted Avg Shares (Basic) | 18.9M | 19.0M | 19.1M | 19.3M | 19.6M | 19.7M | 19.3M |
| YoY % | +0.6% | +0.5% | +1.2% | +1.3% | +0.4% | -1.9% | |
| Weighted Avg Shares (Diluted) | 18.9M | 19.4M | 19.6M | 19.3M | 19.6M | 19.7M | 20.0M |
| YoY % | +2.5% | +0.9% | -1.1% | +1.3% | +0.4% | +1.5% |
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.