| Market Cap | $3.26B | |
| Enterprise Value | $2.88B | |
| Revenue | $369.3M | +17.3% |
| Gross Profit | $178.0M | +26.7% |
| EBITDA | $179.4M | +22.8% |
| Net Income | $130.7M | +23.4% |
| Diluted EPS | $4.67 | +23.2% |
| Free Cash Flow | $91.4M | +3.7% |
| DPS (FY2025) | $0.24derived |
| Trailing yield | 0.21% |
| Payout ratio | 5.1% |
| Growth streak | 2 yrs |
| 5y DPS growth | — |
| Fiscal year | DPS | YoY | Basis |
|---|---|---|---|
| FY20252025-12-31 | $0.24 | +20.0% | derived (paid ÷ diluted shares) |
| FY20242024-12-31 | $0.20 | +24.8% | derived (paid ÷ diluted shares) |
| FY20232023-12-31 | $0.16 | −0.1% | derived (paid ÷ diluted shares) |
| FY20222022-12-31 |
| Ratio | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Trend · 12y | vs own | vs sector |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▾Margins | |||||||||||||||
| Gross Margin | 24.55% | 21.95% | 23.76% | 23.74% | 21.11% | 26.33% | 29.61% | 31.31% | 29.79% | 36.56% | 45.32% | 48.94% | 96% | 82% | |
| Operating Margin | 18.23% | 14.59% | 16.86% | 16.73% | 13.85% | 18.48% | 21.08% | 24.53% | 23.20% | 30.36% | 39.32% | 42.35% | 96% | 98% | |
| EBITDA Margin | 28.18% | 26.84% | 28.45% | 28.15% | 26.04% | 29.61% | 33.28% | 35.57% | 32.60% | 38.83% | 46.93% | 49.12% | 96% | 96% | |
| NOPAT Margin | — | — | — | — | — | 15.58% | 17.46% | 19.53% | 18.63% | 24.25% | 31.38% | 33.25% | 93% | 97% | |
| Net Margin | — | 9.85% | 12.75% | 18.74% | 13.63% | 16.46% | 17.56% | 19.57% | 19.24% | 26.50% | 34.26% | 36.03% | 95% | 98% | |
| FCF Margin | — | 16.08% | 14.49% | 8.94% | −10.40% | 12.58% | 25.79% | 13.62% | 15.90% | 20.62% | 31.04% | 27.44% | 86% | 96% | |
| FCFF Margin | — | — | — | — | — | 12.71% | 25.92% | 13.72% | 15.99% | — | — | — | — | — | |
| FCFE Margin | — | 3.34% | — | — | — | — | — | — | — | — | — | — | — | — | — |
| OCF Margin | — | 24.84% | 27.17% | 23.67% | 26.82% | 29.70% | 36.45% | 29.43% | 27.26% | 32.79% | 39.66% | 44.26% | 95% | 97% | |
| Gross Profitability | 18.40% | 14.61% | 15.75% | 15.05% | 12.46% | 16.87% | 17.05% | 18.74% | 19.13% | 23.35% | 26.51% | 26.78% | 96% | 78% | |
| Capex Intensity | 7.79% | 8.76% | 12.68% | 14.73% | 37.22% | 17.12% | 10.66% | 15.81% | 11.36% | 12.17% | 8.63% | 16.82% | 79% | 82% | |
| ▸Returns on Capital · 6 ratios | |||||||||||||||
| ▸DuPont factors (ROE drivers) · 4 ratios | |||||||||||||||
| ▸Earnings quality · 7 ratios | |||||||||||||||
| ▸Liquidity & coverage · 7 ratios | |||||||||||||||
| ▸Leverage · 9 ratios | |||||||||||||||
| ▸Working capital · 8 ratios | |||||||||||||||
| ▸Capital allocation · 5 ratios | |||||||||||||||
| ▸Per share · 3 ratios | |||||||||||||||
| ▸Other · 1 ratios | |||||||||||||||
The five drivers multiply to 23.7% vs reported ROE 23.8%. 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 | $149.8M | $130.8M | $139.3M | $144.8M | $144.4M | $158.3M | $160.7M | $189.3M | $236.2M | $281.3M | $317.7M | $372.7M |
| YoY % | -12.7% | +6.5% | +4.0% | -0.3% | +9.6% | +1.5% | +17.8% | +24.8% | +19.1% | +12.9% | +17.3% | |
| Cost of Revenue | $113.0M | $102.1M | $106.2M | $110.5M | $113.9M | $116.6M | $113.1M | $130.0M | $165.8M | $178.5M | $173.7M | $190.3M |
| YoY % | -9.7% | +4.0% | +4.0% | +3.2% | +2.3% | -3.0% | +14.9% | +27.5% | +7.6% | -2.6% | +9.5% | |
| Gross Profit | $36.8M | $28.7M | $33.1M | $34.4M | $30.5M | $41.7M | $47.6M | $59.3M | $70.3M | $102.9M | $144.0M | $182.4M |
| YoY % | -22.0% | +15.2% | +3.9% | -11.3% | +36.7% | +14.2% | +24.5% | +18.7% | +46.2% | +40.0% | +26.7% | |
| SG&A Expense | $9.5M | $9.6M | $9.6M | $10.2M | $10.5M | $11.5M | $12.2M | $12.8M | $15.6M | $17.4M | $19.1M | $24.5M |
| YoY % | +1.7% | -0.2% | +5.6% | +3.3% | +9.7% | +5.8% | +5.5% | +21.1% | +12.1% | +9.2% | +28.8% | |
| Operating Income | $27.3M | $19.1M | $23.5M | $24.2M | $20.0M | $29.2M | $33.9M | $46.4M | $54.8M | $85.4M | $124.9M | $157.9M |
| YoY % | -30.1% | +23.0% | +3.2% | -17.4% | +46.2% | +15.8% | +37.0% | +18.0% | +55.9% | +46.2% | +26.4% | |
| Interest Expense | $1.5M | $1.0M | $246,000 | $241,000 | $243,000 | $244,000 | $248,000 | $250,000 | $254,000 | — | — | — |
| YoY % | -32.2% | -76.3% | -2.0% | +0.8% | +0.4% | +1.6% | +0.8% | +1.6% | ||||
| Other Non-Operating Income | -$1.4M | -$1.6M | $138,000 | $716,000 | $1.6M | $1.7M | $203,000 | $101,000 | $1.8M | $7.9M | $11.5M | $13.2M |
| YoY % | +418.8% | +118.7% | +5.6% | -87.7% | -50.2% | +1661.4% | +346.3% | +44.3% | +14.8% | |||
| Impairment of Real Estate | — | — | — | — | — | — | $1.6M | — | $0 | $0 | $0 | $0 |
| Pretax Income | — | — | — | — | — | $30.9M | $34.1M | $46.5M | $56.6M | $93.4M | $136.4M | $171.0M |
| YoY % | +10.3% | +36.5% | +21.6% | +65.1% | +46.1% | +25.4% | ||||||
| Income Tax | $6.6M | $4.6M | $5.9M | -$2.2M | $1.9M | $4.8M | $5.8M | $9.5M | $11.1M | $18.8M | $27.5M | $36.7M |
| YoY % | -29.9% | +27.6% | +157.2% | +20.7% | +62.0% | +17.5% | +69.0% | +46.4% | +33.4% | |||
| Net Income (incl. NCI) | — | $12.9M | $17.8M | $27.1M | $19.7M | $26.1M | $28.2M | $37.0M | $45.4M | $74.5M | $108.8M | $134.3M |
| YoY % | +37.8% | +52.9% | -27.5% | +32.4% | +8.3% | +31.3% | +22.6% | +64.1% | +46.0% | +23.4% | ||
| Net Income | — | $12.9M | $17.8M | $27.1M | $19.7M | $26.1M | $28.2M | $37.0M | $45.4M | $74.5M | $108.8M | $134.3M |
| YoY % | +37.8% | +52.9% | -27.5% | +32.4% | +8.3% | +31.3% | +22.6% | +64.1% | +46.0% | +23.4% | ||
| Net Income to Common | $19.4M | $12.9M | $17.8M | — | — | — | — | — | — | — | — | — |
| YoY % | -33.5% | +37.8% | ||||||||||
| EPS (Basic) | $3.47 | $2.30 | $3.19 | $4.87 | $3.52 | $4.64 | $5.01 | $6.55 | $1.60 | $2.62 | $3.81 | $4.69 |
| YoY % | -33.7% | +38.7% | +52.7% | -27.7% | +31.8% | +8.0% | +30.7% | -75.6% | +63.7% | +45.4% | +23.1% | |
| EPS (Diluted) | $3.47 | $2.30 | $3.19 | $4.86 | $3.51 | $4.64 | $5.00 | $6.54 | $1.60 | $2.61 | $3.79 | $4.67 |
| YoY % | -33.7% | +38.7% | +52.4% | -27.8% | +32.2% | +7.8% | +30.8% | -75.5% | +63.1% | +45.2% | +23.2% | |
| Weighted Avg Shares (Basic) | 5.6M | 5.6M | 5.6M | 5.6M | 5.6M | 5.6M | 5.6M | 5.7M | 28.4M | 28.5M | 28.6M | 28.6M |
| YoY % | +0.4% | -0.6% | +0.2% | +0.3% | +0.3% | +0.3% | +0.5% | +401.4% | +0.4% | +0.4% | +0.2% | |
| Weighted Avg Shares (Diluted) | 5.6M | 5.6M | 5.6M | 5.6M | 5.6M | 5.6M | 5.6M | 5.7M | 28.4M | 28.5M | 28.7M | 28.7M |
| YoY % | +0.3% | -0.6% | +0.3% | +0.2% | +0.3% | +0.3% | +0.5% | +401.1% | +0.5% | +0.5% | +0.2% |
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.
| $0.16 |
| — |
| derived (paid ÷ diluted shares) |
| Ex-date | Amount | Pay date | Freq | Source |
|---|---|---|---|---|
| 2026-05-22 | $0.0600 | 2026-06-12 | quarterly | licensed |
| 2026-02-20 | $0.0600 | 2026-03-13 | quarterly | licensed |
| 2025-11-21 | $0.0600 | 2025-12-12 | quarterly | licensed |
| 2025-08-22 | $0.0600 | — | quarterly | licensed |
| 2025-05-23 | $0.0600 | 2025-06-13 | quarterly | licensed |
| 2025-02-21 | $0.0600 | — | quarterly | licensed |
| 2024-11-22 | $0.0500 | — | quarterly | licensed |
| 2024-08-23 | $0.0500 | — | quarterly | licensed |