| Market Cap | $337.9M | |
| Enterprise Value | — | |
| Revenue | $56.4M | +11.0% |
| Gross Profit | — | — |
| EBITDA | $12.0M | +9.7% |
| Net Income | $9.2M | +10.6% |
| Diluted EPS | $2.82 | −1.1% |
| Free Cash Flow | $8.8M | +44.2% |
| Ratio | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 5y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|
| ▾Margins | ||||||||
| Operating Margin | 7.92% | 9.03% | 10.44% | 19.17% | 18.91% | 70% | 85% | |
| EBITDA Margin | 9.95% | 11.30% | 12.51% | 21.15% | 20.91% | 70% | 79% | |
| NOPAT Margin | 5.93% | 6.26% | 8.28% | 14.97% | 14.58% | 70% | 82% | |
| Net Margin | 5.93% | 5.65% | 8.48% | 15.58% | 15.52% | 70% | 81% | |
| FCF Margin | 6.97% | 3.47% | 7.59% | 11.47% | 14.90% | 90% | 67% | |
| OCF Margin | 11.09% | 6.41% | 10.70% | 15.35% | 19.59% | 90% | 71% | |
| Capex Intensity | 4.12% | 2.94% | 3.11% | 3.87% | 4.69% | 90% | 75% | |
| ▸Returns on Capital · 5 ratios | ||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | ||||||||
| ▸Earnings quality · 7 ratios | ||||||||
| ▸Liquidity & coverage · 6 ratios | ||||||||
| ▸Leverage · 9 ratios | ||||||||
| ▸Working capital · 3 ratios | ||||||||
| ▸Capital allocation · 1 ratios | ||||||||
| ▸Per share · 6 ratios | ||||||||
| ▸Other · 1 ratios | ||||||||
The five drivers multiply to 17.4% vs reported ROE 17.9%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|
| Revenue | $26.7M | $31.8M | $41.2M | $49.0M | $54.4M |
| YoY % | +19.3% | +29.3% | +19.1% | +11.0% | |
| R&D Expense | $2.0M | $2.0M | $2.2M | $2.8M | $3.2M |
| YoY % | 0.0% | +10.5% | +26.8% | +12.5% | |
| Total Operating Expenses | — | — | $36.9M | $39.6M | $44.1M |
| YoY % | +7.5% | +11.4% | |||
| Operating Income | $2.1M | $2.9M | $4.3M | $9.4M | $10.3M |
| YoY % | +36.0% | +49.5% | +118.5% | +9.5% | |
| Other Non-Operating Income | $11,000 | -$269,000 | $94,000 | $138,000 | $124,000 |
| YoY % | +46.8% | -10.1% | |||
| Pretax Income | $2.1M | $2.6M | $4.4M | $9.8M | $11.0M |
| YoY % | +22.8% | +69.6% | +122.2% | +12.1% | |
| Income Tax | $531,000 | $797,000 | $911,000 | $2.1M | $2.5M |
| YoY % | +50.1% | +14.3% | +134.8% | +17.2% | |
| Net Income (incl. NCI) | $1.6M | $1.8M | — | — | — |
| YoY % | +13.7% | ||||
| Net Income | $1.6M | $1.8M | $3.5M | $7.6M | $8.4M |
| YoY % | +13.7% | +94.0% | +118.9% | +10.6% | |
| EPS (Basic) | $0.59 | $0.67 | $1.29 | $2.78 | $2.94 |
| YoY % | +13.6% | +92.5% | +115.5% | +5.8% | |
| EPS (Diluted) | $0.59 | $0.67 | $1.28 | $2.65 | $2.62 |
| YoY % | +13.6% | +91.0% | +107.0% | -1.1% | |
| Weighted Avg Shares (Basic) | 2.7M | 2.7M | 2.7M | 2.7M | 2.9M |
| YoY % | +0.0% | +0.7% | +1.9% | +4.6% | |
| Weighted Avg Shares (Diluted) | 2.7M | 2.7M | 2.7M | 2.9M | 3.2M |
| YoY % | +0.0% | +2.1% | +5.5% | +11.9% |
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.