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 | 2009 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $161.3M | $149.4M | $147.6M | $149.0M | $137.7M | $133.2M | $114.4M | $106.8M | $94.8M | $86.4M | — | — | — | — | — | — | — |
| Operating expenses | $101.4M | $102.8M | $116.1M | $116.2M | $101.6M | $99.9M | $80.2M | $71.1M | $68.3M | $55.6M | $51.0M | $57.4M | $32.8M | $24.9M | $21.3M | $23.4M | $20.5M |
| Net income | $19.3M | $24.0M | $5.0M | $10.8M | $10.9M | $14.9M | $9.6M | $12.3M | $5.9M | $4.0M | $3.6M | −$5.9M | $1.5M | $3.8M | $5.7M | $4.9M | $4.6M |
| Basic EPSper diluted share | $0.14 | $0.27 | -$0.19 | -$0.04 | -$0.09 | $0.09 | -$0.16 | $0.03 | -$0.19 | -$0.16 | -$0.07 | -$0.61 | -$0.22 | -$0.04 | $0.15 | $0.09 | $0.06 |
| Diluted EPSper diluted share | $0.14 | $0.27 | -$0.19 | -$0.04 | -$0.09 | $0.09 | -$0.16 | $0.03 | -$0.19 | -$0.16 | -$0.07 | -$0.61 | -$0.22 | -$0.04 | $0.15 | $0.09 | $0.06 |
| Transaction | Insider | Type | Shares | Price | Value | Owned after |
|---|---|---|---|---|---|---|
| Jun 1, 2026Form 4 · 10b5-1 | Carter Ryan StuartExecutive Vice President | BuyCommon Stock | 100 | $12.51 | $1.3K | 4.6K |
| May 1, 2026Form 4 · 10b5-1 | Carter Ryan StuartExecutive Vice President | BuyCommon Stock | 100 | $12.66 | $1.3K | 4.5K |
| Apr 1, 2026Form 4 · 10b5-1 | Carter Ryan StuartExecutive Vice President | BuyCommon Stock | 100 | $11.48 | $1.1K | 4.4K |
| Feb 25, 2026Form 4 | Gerson GaryChief Financial Officer | BuyCommon Stock | 275 | $12.47 | $3.4K | 23.5K |
| Nov 13, 2025Form 4 | Gerson GaryChief Financial Officer | BuyCommon Stock · indirect | 100 | $11.31 | $1.1K | 100 |