| Market Cap | $200.2M | |
| Enterprise Value | $217.7M | |
| Revenue | $142.4M | +6.4% |
| Gross Profit | $80.8M | +14.1% |
| EBITDA | $26.1M | +30.0% |
| Net Income | $7.9M | +182.6% |
| Diluted EPS | $0.31 | +181.8% |
| Free Cash Flow | $23.0M | +23.1% |
| Ratio | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 6y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||
| Gross Margin | 60.33% | 57.17% | 55.10% | 50.17% | 52.20% | 55.98% | 58% | 42% | |
| Operating Margin | 9.06% | 2.75% | 1.50% | 3.25% | 5.11% | 8.31% | 75% | 77% | |
| EBITDA Margin | 23.46% | 17.04% | 13.66% | 13.19% | 14.38% | 17.58% | 75% | 81% | |
| NOPAT Margin | 9.06% | 2.75% | 0.21% | 1.53% | 2.37% | 5.18% | 75% | 70% | |
| Net Margin | 17.80% | 1.39% | 0.02% | 0.69% | 1.74% | 4.62% | 75% | 74% | |
| FCF Margin | 19.70% | 16.93% | 15.04% | 8.11% | 14.36% | 16.63% | 58% | 86% | |
| FCFF Margin | — | — | — | 8.92% | 14.97% | 17.19% | 83% | 58% | |
| FCFE Margin | 20.12% | 11.59% | — | — | — | — | — | — | |
| OCF Margin | 20.82% | 17.89% | 15.94% | 8.92% | 15.17% | 17.02% | 58% | 82% | |
| Gross Profitability | 60.58% | 59.98% | 60.93% | 61.32% | 67.95% | 79.85% | 92% | 93% | |
| Capex Intensity | 1.12% | 0.96% | 0.89% | 0.81% | 0.81% | 0.39% | 8% | 16% | |
| ▸Returns on Capital · 6 ratios | |||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||
| ▸Earnings quality · 7 ratios | |||||||||
| ▸Liquidity & coverage · 9 ratios | |||||||||
| ▸Leverage · 9 ratios | |||||||||
| ▸Working capital · 8 ratios | |||||||||
| ▸Capital allocation · 2 ratios | |||||||||
| ▸Per share · 6 ratios | |||||||||
| ▸Other · 1 ratios | |||||||||
The five drivers multiply to 11.4% vs reported ROE 11.5%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|
| Revenue | $97.4M | $102.4M | $109.9M | $125.8M | $134.9M | $143.4M |
| YoY % | +5.1% | +7.4% | +14.4% | +7.2% | +6.4% | |
| Cost of Revenue | $38.6M | $43.8M | $49.4M | $62.7M | $64.5M | $63.1M |
| YoY % | +13.5% | +12.6% | +27.0% | +2.8% | -2.0% | |
| Gross Profit | $58.8M | $58.5M | $60.6M | $63.1M | $70.4M | $80.3M |
| YoY % | -0.4% | +3.5% | +4.2% | +11.6% | +14.1% | |
| Selling & Marketing Expense | $9.7M | $10.8M | $12.3M | $12.7M | $11.3M | $10.5M |
| YoY % | +11.6% | +13.8% | +3.2% | -10.6% | -7.3% | |
| SG&A Expense | $35.2M | $40.7M | $44.2M | $45.4M | $51.2M | $57.0M |
| YoY % | +15.6% | +8.5% | +2.8% | +12.9% | +11.2% | |
| Total Operating Expenses | $49.9M | $55.7M | $58.9M | $59.0M | $63.5M | $68.4M |
| YoY % | +11.6% | +5.7% | +0.2% | +7.6% | +7.7% | |
| Operating Income | $8.8M | $2.8M | $1.7M | $4.1M | $6.9M | $11.9M |
| YoY % | -68.1% | -41.3% | +147.2% | +68.6% | +73.0% | |
| Interest Expense | — | — | — | $2.2M | $1.8M | $1.3M |
| YoY % | -18.1% | -26.9% | ||||
| Other Non-Operating Income | -$29,000 | -$186,000 | -$122,000 | -$67,000 | -$55,000 | $2,000 |
| Gains on Sale of Real Estate | $3.6M | $2.5M | $2.2M | $2.9M | $2.3M | $3.3M |
| YoY % | -28.9% | -14.2% | +32.2% | -21.4% | +45.9% | |
| Impairment of Real Estate | $418,000 | $1.0M | $1.9M | $1.7M | $942,000 | $519,000 |
| YoY % | +146.2% | +87.9% | -10.7% | -45.4% | -44.9% | |
| Pretax Income | $7.5M | $1.3M | $130,000 | $1.9M | $5.1M | $10.6M |
| YoY % | -83.3% | -89.7% | +1323.8% | +173.3% | +110.0% | |
| Income Tax | -$9.8M | -$163,000 | $112,000 | $979,000 | $2.7M | $4.0M |
| YoY % | +774.1% | +177.2% | +47.2% | |||
| Net Income | $17.3M | $1.4M | $18,000 | $872,000 | $2.3M | $6.6M |
| YoY % | -91.8% | -98.7% | +4744.4% | +168.9% | +182.6% | |
| EPS (Basic) | $0.86 | $0.07 | $0.00 | $0.04 | $0.11 | $0.32 |
| YoY % | -91.9% | -100.0% | +175.0% | +190.9% | ||
| EPS (Diluted) | $0.80 | $0.06 | $0.00 | $0.04 | $0.11 | $0.31 |
| YoY % | -92.5% | -100.0% | +175.0% | +181.8% | ||
| Weighted Avg Shares (Basic) | 20.1M | 20.5M | 20.6M | 21.0M | 21.3M | 20.7M |
| YoY % | +2.1% | +0.6% | +1.8% | +1.2% | -2.9% | |
| Weighted Avg Shares (Diluted) | 21.7M | 22.0M | 21.5M | 21.6M | 21.7M | 21.1M |
| YoY % | +1.5% | -2.3% | +0.5% | +0.3% | -2.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.