Revenue
2018
2019
2020
2021
2022
2023
2024
2025
| 2025 | 2024 | 2023 | 2022 | 2021 | 2020 | 2019 | 2018 | 2017 | 2016 | 2015 | 2014 | 2013 | 2012 | 2011 | 2010 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $93.9M | $80.5M | $94.4M | $82.4M | $73.9M | $1.2M | $67.6M | $66.0M | $60.5M | — | — | — | — | — | — | — |
| Gross profit | — | — | — | — | — | — | — | — | $32.8M | $31.6M | $30.2M | $29.3M | $27.6M | $26.9M | $27.3M | $26.4M |
| Operating income | $18.4M | $17.1M | $17.7M | $14.9M | $14.8M | $12.5M | $11.6M | $11.5M | $12.2M | $11.2M | $10.0M | $9.7M | $8.8M | $8.8M | $9.3M | $9.0M |
| EBITDAderived | $29.9M | $27.6M | $27.7M | $24.1M | $23.4M | $20.6M | $19.2M | $18.6M | $18.6M | $16.9M | $15.2M | $14.5M | $13.5M | $13.2M | $13.5M | $12.9M |
| Net income | $13.3M | $11.8M | $11.3M | −$31.7M | $10.1M | $10.6M | $8.7M | $7.3M | $6.2M | $5.8M | $5.1M | $4.7M | $4.3M | $4.3M | $4.7M | $4.4M |
| Basic EPSper diluted share | $1.29 | $1.16 | $1.14 | -$3.48 | $1.22 | $1.30 | $1.08 | $0.95 | $0.86 | $0.81 | $0.72 | $1.00 | $0.91 | $0.92 | $1.01 | $0.98 |
| Diluted EPSper diluted share | $1.29 | $1.16 | $1.14 | -$3.48 | $1.22 | $1.30 | $1.08 | $0.95 | $0.86 | $0.81 | $0.72 | $1.00 | $0.91 | $0.92 | $1.01 | $0.98 |
| Transaction | Insider | Type | Shares | Price | Value | Owned after |
|---|---|---|---|---|---|---|
| Jun 1, 2026Form 4 | Oliver Lawrence T.Senior VP and Secretary | BuyCommon Stock | 8.73 | $22.90 | $199.917 | 30.0K |
| Jun 1, 2026Form 4 | Miles Christen BrookeVP, Human Resources | BuyCommon Stock | 4.37 | $22.90 | $100.073 | 9.8K |
| May 1, 2026Form 4 | Oliver Lawrence T.Senior VP and Secretary | BuyCommon Stock | 8.2 | $24.40 | $200.08 | 30.0K |
| May 1, 2026Form 4 | Miles Christen BrookeVP, Human Resources | BuyCommon Stock | 4.1 | $24.40 | $100.04 | 9.8K |
| Apr 1, 2026Form 4 | Oliver Lawrence T.Senior VP and Secretary | BuyCommon Stock | 9.24 | $21.65 | $200.046 | 29.8K |