Revenue
2010
2011
2012
2013
2014
2015
2016
2017
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 | $62.9M | $51.3M | $44.7M | $39.3M | $31.1M | $22.5M | $25.3M | $16.4M | $45.4M | $41.6M | $61.4M | $48.0M | $0 | $14.3M | $21.9M | $23.9M |
| Gross profit | $14.8M | $12.7M | $11.7M | $9.9M | $6.4M | $4.0M | — | −$431,000 | $2.5M | $2.9M | $9.2M | $9.5M | $12.2M | $1.1M | $2.3M | — |
| Gross margin | 23.51% | 24.69% | 26.12% | 25.29% | 20.72% | 17.97% | — | −2.62% | 5.60% | 7.02% | 15.06% | 19.72% | — | 7.87% | 10.66% | — |
| Operating expenses | $50.9M | $41.0M | $35.6M | $31.4M | $26.0M | $19.8M | — | — | $7.4M | $9.8M | $12.8M | $12.4M | $9.5M | $13.2M | $10.1M | — |
| Operating income | $11.9M | $10.3M | $9.2M | $8.0M | $5.1M | $2.7M | $2.3M | $293,000 | −$4.8M | −$6.9M | −$3.6M | −$3.0M | $2.7M | −$12.0M | −$7.8M | −$8.7M |
| Operating margin | 18.98% | 20.05% | 20.49% | 20.23% | 16.29% | 11.80% | 8.99% | 1.78% | −10.58% | −16.51% | −5.79% | −6.20% | — | −84.08% | −35.56% | −36.58% |
| EBITDA | $12.2M | $10.6M | $9.4M | $8.2M | $5.2M | $2.8M | $2.5M | $478,000 | −$4.6M | −$6.7M | −$3.3M | −$2.6M | $3.4M | −$10.5M | −$6.7M | −$8.6M |
| EBITDA margin | 19.47% | 20.64% | 20.97% | 20.75% | 16.59% | 12.25% | 9.84% | 2.91% | −10.18% | −16.07% | −5.32% | −5.33% | — | −73.68% | −30.42% | −36.17% |
| Net income | $17.1M | $14.6M | $7.8M | $7.3M | $13.6M | $2.1M | $893,000 | −$4.4M | −$5.0M | −$9.0M | −$4.6M | −$6.8M | −$2.0M | −$5.7M | $1.1M | −$7.7M |
| Net profit margin | 27.12% | 28.39% | 17.41% | 18.69% | 43.77% | 9.26% | 3.53% | −26.66% | −11.06% | −21.63% | −7.44% | −14.26% | — | −39.61% | 5.05% | −32.28% |
| Basic EPSper basic share | $1.69 | $1.48 | $0.81 | $1.05 | $1.66 | $0.26 | $0.13 | -$1.22 | -$1.21 | -$2.81 | -$1.43 | -$2.27 | -$0.70 | -$1.96 | $0.35 | — |
| Diluted EPSper diluted share | $1.63 | $1.41 | $0.77 | $0.98 | $1.50 | $0.24 | $0.13 | -$1.22 | -$1.21 | -$2.81 | -$1.43 | -$2.27 | -$0.70 | -$1.96 | $0.35 | — |
Reported shareholders
| Transaction | Insider | Type | Shares | Price | Value | Owned after |
|---|---|---|---|---|---|---|
| May 21, 2026Form 4 | Steffan TimothyChief Operating Officer | SellClass A Common Stock, $0.01 par value | 13.0K | $14.23 | $185.4K | 122.7K |
| Mar 23, 2026Form 4 | Steffan TimothyChief Operating Officer | SellClass A Common Stock, $0.01 par value | 9.7K | $15.61 | $152.0K | 115.8K |
| Aug 20, 2025Form 4 | Steffan TimothyChief Operating Officer | SellClass A Common Stock, $0.01 par value | 1.1K | $15.54 | $16.4K | 91.5K |
| Aug 19, 2025Form 4 | Steffan TimothyChief Operating Officer | SellClass A Common Stock, $0.01 par value | 3.4K | $15.66 | $53.7K | 92.6K |
| Aug 15, 2025Form 4 | Steffan TimothyChief Operating Officer | SellClass A Common Stock, $0.01 par value | 905 | $14.99 | $13.6K | 96.0K |