Revenue
2009
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 | 2009 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $191.4M | $198.9M | $201.1M | $242.2M | $222.0M | $222.0M | $193.6M | $177.2M | $147.9M | $132.0M | $123.5M | $113.5M | $106.9M | $90.8M | $80.5M | $71.8M | $71.1M |
| Gross profit | $53.1M | $55.6M | $51.0M | $63.2M | $59.4M | $51.5M | $48.0M | $42.5M | $31.6M | $26.3M | $23.8M | $20.8M | $20.1M | $17.2M | $15.9M | $14.1M | $13.4M |
| Gross margin | 27.72% | 27.95% | 25.38% | 26.08% | 26.78% | 23.21% | 24.79% | 24.00% | 21.39% | 19.92% | 19.28% | 18.31% | 18.82% | 18.91% | 19.73% | 19.60% | 18.89% |
| Operating expenses | $53.1M | $9.4M | $9.9M | $13.3M | $41.8M | $38.1M | $31.0M | $30.9M | $27.5M | $21.8M | $19.1M | $15.2M | $14.8M | $13.8M | $13.7M | $13.0M | $11.1M |
| Operating income | $1,000 | $3.8M | −$9.3M | $12.2M | $17.6M | $13.4M | $17.0M | $11.6M | $4.1M | $4.5M | $4.7M | $5.5M | $5.3M | $3.4M | $2.2M | $1.1M | $2.3M |
| Operating margin | 0.00% | 1.91% | −4.61% | 5.04% | 7.93% | 6.04% | 8.78% | 6.56% | 2.76% | 3.41% | 3.79% | 4.88% | 4.96% | 3.71% | 2.76% | 1.48% | 3.27% |
| EBITDA | $3.3M | $7.3M | −$5.4M | $16.4M | $21.6M | $17.0M | $20.4M | $14.8M | $6.0M | $4.7M | $4.9M | $5.7M | $5.5M | $3.5M | $2.3M | $1.2M | $2.5M |
| EBITDA margin | 1.74% | 3.66% | −2.70% | 6.77% | 9.72% | 7.65% | 10.55% | 8.36% | 4.07% | 3.57% | 3.97% | 5.01% | 5.10% | 3.89% | 2.91% | 1.73% | 3.58% |
| Net income | $609,000 | $3.4M | −$7.1M | $8.7M | $12.2M | $9.9M | $11.1M | $6.7M | $1.6M | $2.5M | $2.8M | $3.4M | $3.8M | $2.1M | $1.1M | $663,000 | $1.4M |
| Net profit margin | 0.32% | 1.71% | −3.55% | 3.60% | 5.50% | 4.44% | 5.76% | 3.78% | 1.10% | 1.91% | 2.23% | 3.02% | 3.56% | 2.36% | 1.38% | 0.92% | 1.97% |
| Basic EPSper basic share | $0.05 | $0.29 | -$0.61 | $0.75 | $1.07 | $0.87 | $1.01 | $0.61 | $0.16 | $0.29 | $0.16 | $0.20 | $0.23 | $0.13 | $0.06 | $0.03 | $0.06 |
| Diluted EPSper diluted share | $0.05 | $0.28 | -$0.61 | $0.72 | $1.02 | $0.83 | $0.99 | $0.60 | $0.16 | $0.28 | $0.16 | $0.19 | $0.22 | $0.13 | $0.06 | $0.03 | $0.06 |
Reported shareholders
Reported holdings Number of shares
| Holder | Shares held |
|---|---|
SHAW STEVEN A | 1.36M |
CAPITAL MANAGEMENT CORP /VA | 1.01M |
DIMENSIONAL FUND ADVISORS LP | 203.04K |
ENVESTNET ASSET MANAGEMENT INC | 175.84K |
VANGUARD CAPITAL MANAGEMENT LLC | 149.49K |
BlackRock, Inc. | 108.64K |
RENAISSANCE TECHNOLOGIES LLC | 94.03K |
Indivisible Partners | 89.12K |
Advyzon Investment Management, LLC | 86.7K |
Unique Wealth Strategies, LLC | 77.3K |
GEODE CAPITAL MANAGEMENT, LLC | 51.72K |
BRIDGEWAY CAPITAL MANAGEMENT, LLC | 46.04K |
PRICE T ROWE ASSOCIATES INC /MD/ | 32.6K |
NewEdge Advisors, LLC | 29.7K |
VANGUARD FIDUCIARY TRUST CO | 27.16K |
Rak Vladimir | 20.59K |
Janney Montgomery Scott LLC | 20.29K |
STATE STREET CORP | 19.78K |
Cetera Investment Advisers | 18.22K |
NORTHERN TRUST CORP | 16.63K |
Bars compare reported share counts. A matching total for this share class and reporting period is unavailable, so percentages are not shown.
| Transaction | Insider | Type | Shares | Price | Value | Owned after |
|---|---|---|---|---|---|---|
| Apr 27, 2026Form 4 | SHAW STEVEN ATenPercentOwner | BuyCommon Stock · indirect | 1.0K | $7.04 | $7.0K | 50.0K |
| Apr 15, 2026Form 4 | SHAW STEVEN ATenPercentOwner | BuyCommon Stock · indirect | 3.0K | $6.84 | $20.5K | 49.0K |
| Apr 10, 2026Form 4 | SHAW STEVEN ATenPercentOwner | BuyCommon Stock · indirect | 2.0K | $6.19 | $12.4K | 46.0K |
| Apr 9, 2026Form 4 | SHAW STEVEN ATenPercentOwner | BuyCommon Stock · indirect | 4.0K | $6.05 | $24.2K | 44.0K |
| Mar 2, 2026Form 4 | SHAW STEVEN ATenPercentOwner | BuyCommon Stock · indirect | 1.2K | $6.24 | $7.8K | 40.0K |