| Market Cap | $1.22B | |
| Enterprise Value | — | |
| Revenue | $489.7M | +13.3% |
| Gross Profit | $208.4M | +13.3% |
| EBITDA | $78.4M | +7.1% |
| Net Income | $53.0M | +12.6% |
| Diluted EPS | $1.85 | +12.1% |
| Free Cash Flow | $58.4M | +53.1% |
| Ratio | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 8y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||||
| Gross Margin | 30.42% | 33.48% | 33.99% | 35.75% | 39.36% | 40.98% | 42.19% | 42.21% | 94% | 73% | |
| Operating Margin | 10.74% | 13.15% | 14.71% | 15.47% | 16.65% | 16.90% | 14.07% | 13.16% | 31% | 76% | |
| EBITDA Margin | 11.99% | 14.46% | 16.11% | 17.17% | 19.07% | 19.32% | 16.85% | 15.94% | 31% | 67% | |
| NOPAT Margin | 8.16% | 10.86% | 11.79% | 12.38% | 13.26% | 13.51% | 11.27% | 10.59% | 19% | 75% | |
| Net Margin | 7.93% | 10.76% | 11.50% | 12.18% | 12.77% | 13.32% | 10.82% | 10.76% | 19% | 80% | |
| FCF Margin | 4.34% | 7.23% | 10.50% | 4.45% | 1.27% | 7.83% | 9.78% | 13.22% | 94% | 80% | |
| FCFF Margin | — | — | — | — | 1.62% | 8.08% | 9.97% | 13.23% | 88% | 64% | |
| OCF Margin | 6.18% | 8.44% | 11.62% | 7.05% | 3.72% | 9.43% | 11.38% | 14.06% | 94% | 66% | |
| Gross Profitability | 109.47% | 84.31% | 64.44% | 57.56% | 65.94% | 64.44% | 62.10% | 52.55% | 6% | 91% | |
| Capex Intensity | 1.85% | 1.21% | 1.12% | 2.59% | 2.45% | 1.60% | 1.60% | 0.84% | 6% | 23% | |
| ▸Returns on Capital · 6 ratios | |||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||||
| ▸Earnings quality · 7 ratios | |||||||||||
| ▸Liquidity & coverage · 9 ratios | |||||||||||
| ▸Leverage · 9 ratios | |||||||||||
| ▸Working capital · 5 ratios | |||||||||||
| ▸Capital allocation · 2 ratios | |||||||||||
| ▸Per share · 6 ratios | |||||||||||
| ▸Other · 1 ratios | |||||||||||
The five drivers multiply to 20.9% vs reported ROE 20.3%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2018↗ | 2019↗ | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|---|---|
| Revenue | $109.9M | $129.9M | $158.9M | $259.3M | $324.0M | $396.3M | $420.4M | $476.2M |
| YoY % | +18.2% | +22.3% | +63.1% | +25.0% | +22.3% | +6.1% | +13.3% | |
| Cost of Revenue | $76.5M | $86.4M | $104.9M | $166.6M | $196.5M | $233.9M | $243.0M | $275.2M |
| YoY % | +13.0% | +21.4% | +58.8% | +17.9% | +19.0% | +3.9% | +13.2% | |
| Gross Profit | $33.4M | $43.5M | $54.0M | $92.7M | $127.5M | $162.4M | $177.4M | $201.0M |
| YoY % | +30.1% | +24.2% | +71.5% | +37.6% | +27.4% | +9.2% | +13.3% | |
| R&D Expense | $223,886 | $602,446 | $100,000 | $400,000 | $400,000 | $2.9M | $2.9M | $2.9M |
| YoY % | +169.1% | -83.4% | +300.0% | 0.0% | +625.0% | 0.0% | 0.0% | |
| Selling & Marketing Expense | $6.8M | $7.6M | $9.7M | $18.3M | $25.4M | $31.8M | $42.8M | $51.1M |
| YoY % | +11.5% | +28.5% | +87.5% | +38.8% | +25.3% | +34.7% | +19.4% | |
| SG&A Expense | $14.8M | $18.8M | $20.9M | $34.3M | $48.2M | $63.7M | $75.4M | $87.2M |
| YoY % | +27.0% | +11.0% | +64.0% | +40.6% | +32.0% | +18.4% | +15.7% | |
| Total Operating Expenses | $21.6M | $26.4M | $30.7M | $52.6M | $73.6M | $95.4M | $118.2M | $138.4M |
| YoY % | +22.1% | +16.0% | +71.5% | +40.0% | +29.7% | +23.9% | +17.1% | |
| Operating Income | $11.8M | $17.1M | $23.4M | $40.1M | $53.9M | $67.0M | $59.1M | $62.6M |
| YoY % | +44.7% | +36.8% | +71.7% | +34.5% | +24.2% | -11.7% | +5.9% | |
| Interest Expense | — | — | — | — | $1.4M | $1.2M | $996,000 | $83,000 |
| YoY % | -11.5% | -20.2% | -91.7% | |||||
| Impairment of Real Estate | — | — | $0 | $0 | — | — | — | — |
| Pretax Income | $11.5M | $17.0M | $22.8M | $39.4M | $52.0M | $66.0M | $56.8M | $64.1M |
| YoY % | +47.6% | +34.5% | +72.9% | +31.8% | +27.1% | -14.0% | +12.8% | |
| Income Tax | $2.8M | $3.0M | $4.5M | $7.9M | $10.6M | $13.2M | $11.3M | $12.5M |
| YoY % | +7.1% | +53.0% | +74.1% | +34.4% | +25.0% | -14.7% | +10.5% | |
| Net Income (incl. NCI) | $8.7M | $14.0M | $18.3M | $31.6M | $41.4M | $52.8M | $45.5M | $51.6M |
| YoY % | +60.5% | +30.6% | +72.7% | +31.1% | +27.6% | -13.8% | +13.4% | |
| Minority Interest (P&L) | $8,698 | $17,447 | $0 | $0 | — | $0 | $0 | $363,000 |
| YoY % | +100.6% | -100.0% | ||||||
| Net Income | $8.7M | $14.0M | $18.3M | $31.6M | $41.4M | $52.8M | $45.5M | $51.2M |
| YoY % | +60.4% | +30.8% | +72.7% | +31.1% | +27.6% | -13.8% | +12.6% | |
| EPS (Basic) | — | $0.51 | $0.66 | $1.14 | $1.50 | $1.91 | $1.65 | $1.85 |
| YoY % | +29.4% | +72.7% | +31.6% | +27.3% | -13.6% | +12.1% | ||
| EPS (Diluted) | — | $0.51 | $0.66 | $1.14 | $1.50 | $1.91 | $1.65 | $1.85 |
| YoY % | +29.4% | +72.7% | +31.6% | +27.3% | -13.6% | +12.1% | ||
| Weighted Avg Shares (Basic) | — | 27.6M | 27.6M | 27.6M | 27.6M | 27.6M | 27.6M | 27.7M |
| YoY % | +0.0% | 0.0% | +0.0% | +0.0% | +0.1% | +0.1% | ||
| Weighted Avg Shares (Diluted) | — | 27.6M | 27.6M | 27.6M | 27.6M | 27.6M | 27.6M | 27.7M |
| YoY % | +0.0% | 0.0% | +0.0% | +0.1% | +0.0% | +0.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.