| Market Cap | $463.0M | |
| Enterprise Value | $501.5M | |
| Revenue | $503.6M | +14.9% |
| Gross Profit | $269.3M | +17.4% |
| EBITDA | $48.1M | +82.8% |
| Net Income | $10.9M | +323.5% |
| Diluted EPS | $0.73 | +329.4% |
| Free Cash Flow | $32.1M | +41.2% |
| Ratio | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 6y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||
| Gross Margin | 45.49% | 50.30% | 51.63% | 50.84% | 52.23% | 53.37% | 92% | 84% | |
| Operating Margin | 1.53% | 0.11% | 1.96% | −0.19% | −0.47% | 4.01% | 92% | 38% | |
| EBITDA Margin | 3.40% | 4.35% | 6.64% | 5.22% | 6.05% | 9.64% | 92% | 45% | |
| NOPAT Margin | 0.77% | 0.08% | 1.96% | −0.15% | −0.37% | 4.01% | 92% | 42% | |
| Net Margin | 0.81% | 0.20% | 1.91% | −1.91% | 0.71% | 2.62% | 92% | 42% | |
| FCF Margin | 8.07% | 2.54% | 3.16% | 2.78% | 5.55% | 6.82% | 75% | 56% | |
| OCF Margin | 8.83% | 3.15% | 3.50% | 3.39% | 5.70% | 7.31% | 75% | 40% | |
| Gross Profitability | 87.22% | 54.60% | 52.83% | 43.70% | 44.04% | 45.12% | 42% | 86% | |
| Capex Intensity | 0.76% | 0.60% | 0.34% | 0.60% | 0.15% | 0.49% | 42% | 14% | |
| ▸Returns on Capital · 6 ratios | |||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||
| ▸Earnings quality · 7 ratios | |||||||||
| ▸Liquidity & coverage · 5 ratios | |||||||||
| ▸Leverage · 9 ratios | |||||||||
| ▸Working capital · 3 ratios | |||||||||
| ▸Capital allocation · 2 ratios | |||||||||
| ▸Per share · 6 ratios | |||||||||
The five drivers multiply to 5.3% vs reported ROE 5.1%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|
| Revenue | $122.0M | $150.0M | $261.7M | $346.3M | $426.6M | $490.0M |
| YoY % | +22.9% | +74.5% | +32.3% | +23.2% | +14.9% | |
| Cost of Revenue | $66.5M | $74.5M | $126.6M | $170.2M | $203.8M | $228.5M |
| YoY % | +12.1% | +69.8% | +34.5% | +19.7% | +12.1% | |
| SG&A Expense | $51.5M | $69.0M | $117.8M | $158.4M | $197.5M | $215.1M |
| YoY % | +34.1% | +70.7% | +34.4% | +24.7% | +8.9% | |
| Total Operating Expenses | $53.6M | $75.3M | $130.0M | $176.7M | $224.8M | $241.9M |
| YoY % | +40.3% | +72.7% | +35.9% | +27.2% | +7.6% | |
| Operating Income | $1.9M | $160,000 | $5.1M | -$656,000 | -$2.0M | $19.7M |
| YoY % | -91.4% | +3100.0% | ||||
| Other Non-Operating Income | $110,000 | -$1.4M | -$3.4M | -$5.8M | -$6.9M | -$8.5M |
| Gains on Sale of Real Estate | $107,000 | $122,000 | $82,000 | $411,000 | $477,000 | $740,000 |
| YoY % | +14.0% | -32.8% | +401.2% | +16.1% | +55.1% | |
| Impairment of Real Estate | $0 | $0 | $0 | $0 | $0 | $0 |
| Pretax Income | $2.0M | -$1.3M | $1.7M | -$6.4M | -$8.9M | $11.2M |
| Income Tax | $989,000 | -$1.6M | -$3.3M | $177,000 | -$12.0M | -$1.7M |
| Net Income (incl. NCI) | $990,000 | $299,000 | $5.0M | -$6.6M | $3.0M | $12.8M |
| YoY % | -69.8% | +1573.9% | +323.5% | |||
| Net Income | $990,000 | $299,000 | $5.0M | -$6.6M | $3.0M | $12.8M |
| YoY % | -69.8% | +1573.9% | +323.5% | |||
| Net Income to Common | $935,000 | $243,000 | $4.2M | -$6.6M | $2.8M | $12.2M |
| YoY % | -74.0% | +1637.4% | +336.1% | |||
| EPS (Basic) | $0.17 | $0.03 | $0.39 | -$0.53 | $0.18 | $0.74 |
| YoY % | -82.4% | +1200.0% | +311.1% | |||
| EPS (Diluted) | $0.17 | $0.03 | $0.37 | -$0.53 | $0.17 | $0.73 |
| YoY % | -82.4% | +1133.3% | +329.4% | |||
| Weighted Avg Shares (Basic) | 5.4M | 7.5M | 10.9M | 12.5M | 15.8M | 16.4M |
| YoY % | +39.4% | +44.7% | +14.7% | +26.1% | +4.2% | |
| Weighted Avg Shares (Diluted) | 5.4M | 7.6M | 11.7M | 12.5M | 16.1M | 16.7M |
| YoY % | +41.1% | +53.0% | +6.9% | +29.2% | +3.8% |
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.