| Market Cap | $225.9M | |
| Enterprise Value | $138.7M | |
| Revenue | $37.5M | −5.8% |
| Gross Profit | $21.7M | −8.9% |
| EBITDA | $13.7M | −12.4% |
| Net Income | $10.8M | −18.7% |
| Diluted EPS | $3.48 | −12.1% |
| Free Cash Flow | $13.0M | −1.9% |
| DPS (FY2025) | $1.23derived |
| Trailing yield | 1.73% |
| Payout ratio | — |
| Growth streak | 3 yrs |
| 5y DPS growth | 1.9% |
| Fiscal year | DPS | YoY | Basis |
|---|---|---|---|
| FY20252025-12-31 | $1.23 | +1.1% | derived (paid ÷ diluted shares) |
| FY20242024-12-31 | $1.22 | +3.3% | derived (paid ÷ diluted shares) |
| Ratio | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 12y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||||||||
| Gross Margin | — | — | 60.28% | 63.73% | 62.64% | 62.82% | 60.57% | 63.03% | 61.58% | 59.81% | 59.03% | 57.12% | 5% | 44% | |
| Operating Margin | 39.25% | 38.97% | 41.19% | 45.90% | 44.52% | 37.59% | 32.50% | 38.49% | 37.85% | 33.40% | 33.23% | 29.60% | 4% | 96% | |
| EBITDA Margin | 40.79% | 40.52% | 42.74% | 47.50% | 46.34% | 52.18% | 49.50% | 53.33% | 51.30% | 45.98% | 40.07% | 37.26% | 4% | 96% | |
| NOPAT Margin | — | — | — | — | — | 30.96% | 25.36% | 29.86% | 30.18% | 27.66% | 27.44% | 23.68% | 7% | 94% | |
| Net Margin | 27.56% | 29.49% | 30.86% | 20.54% | 44.18% | 31.40% | 25.60% | 30.15% | 31.51% | 33.12% | 33.92% | 29.30% | 29% | 93% | |
| FCF Margin | 34.59% | 33.93% | 28.59% | 36.97% | 39.13% | 35.21% | 45.70% | 42.10% | 38.90% | 43.09% | 35.70% | 37.18% | 54% | 97% | |
| OCF Margin | 37.28% | 34.37% | 36.97% | 40.83% | 40.08% | 36.36% | 47.74% | 43.22% | 40.45% | 44.36% | 36.26% | 38.14% | 46% | 96% | |
| Gross Profitability | 30.81% | 30.55% | 31.09% | 28.46% | 26.37% | 26.84% | 22.86% | 26.74% | 25.99% | 22.18% | 19.70% | 17.95% | 4% | 35% | |
| Capex Intensity | 2.69% | 0.44% | 8.38% | 3.86% | 0.96% | 1.15% | 2.04% | 1.13% | 1.55% | 1.27% | 0.56% | 0.96% | 29% | 28% | |
| ▸Returns on Capital · 5 ratios | |||||||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||||||||
| ▸Earnings quality · 7 ratios | |||||||||||||||
| ▸Liquidity & coverage · 9 ratios | |||||||||||||||
| ▸Leverage · 9 ratios | |||||||||||||||
| ▸Working capital · 8 ratios | |||||||||||||||
| ▸Capital allocation · 5 ratios | |||||||||||||||
| ▸Per share · 6 ratios | |||||||||||||||
| ▸Other · 1 ratios | |||||||||||||||
The five drivers multiply to 9.5% vs reported ROE 9.5%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2014↗ | 2015↗ | 2016↗ | 2017↗ | 2018↗ | 2019↗ | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $41.3M | $40.2M | $39.3M | $41.4M | $42.0M | $46.9M | $42.2M | $49.1M | $52.3M | $50.2M | $40.9M | $38.5M |
| YoY % | -2.7% | -2.1% | +5.4% | +1.4% | +11.7% | -10.1% | +16.3% | +6.6% | -3.9% | -18.6% | -5.8% | |
| Cost of Revenue | — | — | $15.6M | $15.0M | $15.7M | $17.4M | $16.6M | $18.1M | $20.1M | $20.2M | $16.8M | $16.5M |
| YoY % | -3.8% | +4.5% | +11.1% | -4.6% | +9.1% | +10.7% | +0.5% | -17.0% | -1.4% | |||
| Gross Profit | $25.0M | $24.2M | $23.7M | $26.4M | $26.3M | $29.5M | $25.5M | $30.9M | $32.2M | $30.0M | $24.1M | $22.0M |
| YoY % | -3.2% | -2.0% | +11.4% | -0.3% | +12.0% | -13.3% | +21.0% | +4.1% | -6.7% | -19.6% | -8.9% | |
| R&D Expense | $460,000 | $522,000 | $475,000 | $447,000 | $454,000 | $483,000 | $486,000 | $526,000 | $493,000 | $560,000 | $813,000 | $668,000 |
| YoY % | +13.5% | -9.0% | -5.9% | +1.6% | +6.4% | +0.6% | +8.2% | -6.3% | +13.6% | +45.2% | -17.8% | |
| Selling & Marketing Expense | $2.2M | $2.2M | $1.7M | $1.5M | $1.7M | $1.7M | $1.6M | $1.4M | $1.5M | $1.7M | $1.9M | $2.1M |
| YoY % | -2.1% | -22.7% | -7.7% | +10.6% | +1.8% | -10.6% | -9.0% | +6.6% | +11.8% | +12.8% | +7.9% | |
| SG&A Expense | $6.1M | $5.8M | $5.4M | $5.4M | $5.4M | $9.6M | $9.8M | $10.1M | $10.4M | $11.0M | $7.8M | $7.9M |
| YoY % | -4.3% | -8.4% | +0.7% | +1.0% | +76.5% | +1.9% | +3.0% | +3.1% | +5.9% | -28.9% | +0.6% | |
| Operating Income | $16.2M | $15.7M | $16.2M | $19.0M | $18.7M | $17.6M | $13.7M | $18.9M | $19.8M | $16.8M | $13.6M | $11.4M |
| YoY % | -3.4% | +3.4% | +17.4% | -1.7% | -5.7% | -22.3% | +37.7% | +4.8% | -15.2% | -19.0% | -16.1% | |
| Interest Expense | $289,000 | $65,000 | — | — | — | — | — | — | — | — | — | — |
| YoY % | -77.5% | |||||||||||
| Other Non-Operating Income | — | — | $132,000 | -$32,000 | $437,000 | -$8,000 | $0 | $0 | $188,000 | $256,000 | -$174,000 | -$120,000 |
| YoY % | +36.2% | |||||||||||
| Gains on Sale of Real Estate | — | — | — | — | — | — | -$1,000 | $0 | $0 | — | — | — |
| Pretax Income | — | — | — | — | — | $17.9M | $13.8M | $19.1M | $20.7M | $20.1M | $16.8M | $14.1M |
| YoY % | -22.6% | +37.7% | +8.4% | -2.8% | -16.4% | -16.0% | ||||||
| Income Tax | $4.4M | $3.7M | $4.3M | $10.6M | $904,000 | $3.2M | $3.0M | $4.3M | $4.2M | $3.5M | $2.9M | $2.8M |
| YoY % | -16.5% | +16.0% | +146.3% | -91.5% | +249.2% | -3.6% | +40.5% | -2.0% | -17.5% | -15.2% | -3.6% | |
| Net Income (incl. NCI) | $11.4M | $11.8M | $12.1M | $8.5M | $18.6M | $14.7M | $10.8M | $14.8M | $16.5M | $16.6M | $13.9M | $11.3M |
| YoY % | +4.1% | +2.4% | -29.9% | +118.2% | -20.6% | -26.7% | +37.0% | +11.4% | +1.0% | -16.6% | -18.7% | |
| EPS (Basic) | $3.04 | $3.16 | $3.23 | $2.29 | $4.97 | $3.96 | $2.95 | $4.05 | $4.53 | $4.58 | $3.96 | $3.48 |
| YoY % | +3.9% | +2.2% | -29.1% | +117.0% | -20.3% | -25.5% | +37.3% | +11.9% | +1.1% | -13.5% | -12.1% | |
| EPS (Diluted) | $3.02 | $3.14 | $3.22 | $2.28 | $4.95 | $3.94 | $2.94 | $4.04 | $4.52 | $4.57 | $3.96 | $3.48 |
| YoY % | +4.0% | +2.5% | -29.2% | +117.1% | -20.4% | -25.4% | +37.4% | +11.9% | +1.1% | -13.3% | -12.1% | |
| Weighted Avg Shares (Basic) | 3.7M | 3.8M | 3.8M | 3.7M | 3.7M | 3.7M | 3.7M | 3.6M | 3.6M | 3.6M | 3.5M | 3.2M |
| YoY % | +0.1% | -0.0% | -0.9% | +0.3% | -0.2% | -1.7% | -0.3% | -0.3% | -0.2% | -3.5% | -7.5% | |
| Weighted Avg Shares (Diluted) | 3.8M | 3.8M | 3.8M | 3.7M | 3.7M | 3.7M | 3.7M | 3.7M | 3.6M | 3.6M | 3.5M | 3.2M |
| YoY % | -0.1% | -0.2% | -0.8% | +0.3% | -0.2% | -1.8% | -0.3% | -0.5% | -0.2% | -3.7% | -7.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.
| FY20232023-12-31 | $1.18 | +35.6% | derived (paid ÷ diluted shares) |
| FY20222022-12-31 | $0.87 | −72.3% | derived (paid ÷ diluted shares) |
| FY20212021-12-31 | $3.13 | +179.5% | derived (paid ÷ diluted shares) |
| FY20202020-12-31 | $1.12 | +1.9% | derived (paid ÷ diluted shares) |
| FY20192019-12-31 | $1.10 | +2.4% | derived (paid ÷ diluted shares) |
| FY20182018-12-31 | $1.07 | +35.8% | derived (paid ÷ diluted shares) |
| FY20172017-12-31 | $0.79 | −24.0% | derived (paid ÷ diluted shares) |
| FY20162016-12-31 | $1.04 | +2.0% | derived (paid ÷ diluted shares) |
| Ex-date | Amount | Pay date | Freq | Source |
|---|---|---|---|---|
| 2026-06-17 | $0.3100 | — | quarterly | licensed |
| 2026-03-17 | $0.3100 | 2026-04-03 | quarterly | licensed |
| 2025-12-16 | $0.3100 | 2026-01-05 | quarterly | licensed |
| 2025-09-17 | $0.3050 | — | quarterly | licensed |
| 2025-06-16 | $0.3050 | 2025-07-03 | quarterly | licensed |
| 2025-03-14 | $0.3050 | — | quarterly | licensed |
| 2024-12-16 | $0.3050 | — | quarterly | licensed |
| 2024-09-20 | $0.3000 | — | quarterly | licensed |