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 | $652.5M | $465.6M | $352.0M | $304.3M | $282.6M | $251.6M | $208.8M | $181.4M | $160.6M | $164.6M | $382.1M | $340.8M | $300.4M | $297.1M | $250.2M | $206.7M | $146.4M |
| Gross profit | $105.3M | $91.1M | $64.2M | $54.1M | $45.7M | $33.0M | $30.0M | $26.9M | $27.1M | $27.3M | $26.6M | $24.8M | $24.4M | $23.9M | $23.2M | $20.0M | $15.6M |
| Gross margin | 16.13% | 19.56% | 18.25% | 17.77% | 16.18% | 13.13% | 14.35% | 14.84% | 16.86% | 16.60% | 6.95% | 7.28% | 8.11% | 8.04% | 9.29% | 9.68% | 10.65% |
| Operating expenses | $76.1M | $63.1M | $47.8M | $36.8M | $33.7M | $27.7M | $21.5M | $22.8M | $19.3M | $18.7M | $18.1M | $16.5M | $15.5M | $15.4M | $14.6M | $13.2M | $11.3M |
| Operating income | $29.2M | $28.0M | $16.5M | $17.3M | $12.1M | $5.3M | $8.5M | $4.2M | $7.8M | $8.6M | $8.5M | $8.3M | $8.8M | $8.5M | $8.6M | $6.8M | $4.3M |
| Operating margin | 4.47% | 6.01% | 4.68% | 5.69% | 4.26% | 2.11% | 4.06% | 2.29% | 4.87% | 5.23% | 2.23% | 2.43% | 2.95% | 2.87% | 3.44% | 3.29% | 2.92% |
| EBITDA | $36.9M | $32.3M | $19.3M | $19.4M | $13.6M | $6.0M | $9.0M | $4.6M | $8.3M | $8.9M | $8.8M | $8.5M | $9.1M | $8.8M | $8.9M | $7.1M | $4.6M |
| EBITDA margin | 5.66% | 6.93% | 5.48% | 6.37% | 4.81% | 2.39% | 4.29% | 2.56% | 5.16% | 5.41% | 2.29% | 2.50% | 3.04% | 2.97% | 3.57% | 3.44% | 3.12% |
| Net income | $21.3M | $18.6M | $12.3M | $12.5M | $9.2M | $4.5M | $6.8M | $3.5M | $5.1M | $5.9M | $5.8M | — | — | — | — | — | — |
| Net profit margin | 3.27% | 4.00% | 3.50% | 4.11% | 3.25% | 1.78% | 3.25% | 1.95% | 3.15% | 3.58% | 1.53% | — | — | — | — | — | — |
| Basic EPSper basic share | $1.16 | $1.02 | $0.68 | $0.70 | $0.52 | $0.25 | $0.38 | $0.20 | $0.28 | $0.31 | $0.31 | $0.31 | $0.36 | $0.31 | $0.32 | $0.25 | $0.16 |
| Diluted EPSper diluted share | $1.16 | $1.02 | $0.68 | $0.70 | $0.52 | $0.25 | $0.38 | $0.20 | $0.28 | $0.31 | $0.31 | $0.31 | $0.35 | $0.30 | $0.30 | $0.25 | $0.16 |
Reported shareholders
| Holder | % owned |
|---|---|
BlackRock, Inc. | 7.11%1.33M shares |
WESTWOOD HOLDINGS GROUP INC | 6.05%1.13M shares |
AltraVue Capital, LLC | 5.04%939.77K shares |
De Lisle Partners LLP | 4.75%887.14K shares |
VANGUARD CAPITAL MANAGEMENT LLC | 4.15%775.07K shares |
WASATCH ADVISORS LP | 3.70%691.36K shares |
Tieton Capital Management, LLC | 3.68%687.13K shares |
Thrivent Financial for Lutherans | 3.24%605.03K shares |
PUNCH & ASSOCIATES INVESTMENT MANAGEMENT, INC. | 2.96%551.91K shares |
GEODE CAPITAL MANAGEMENT, LLC | 2.85%531.56K shares |
RENAISSANCE TECHNOLOGIES LLC | 2.52%471.14K shares |
DIMENSIONAL FUND ADVISORS LP | 2.41%449.56K shares |
ROYCE & ASSOCIATES LP | 1.95%363.39K shares |
STATE STREET CORP | 1.85%344.4K shares |
Foster Dale Richard | ≈1.84%343.47K shares |
Ballast Asset Management, LP | 1.69%315.77K shares |
CHOREO, LLC | 1.46%272.73K shares |
SEI INVESTMENTS CO | 1.31%245.12K shares |
HERALD INVESTMENT MANAGEMENT Ltd | 1.19%221.84K shares |
JACOBS LEVY EQUITY MANAGEMENT, INC | 1.15%213.67K shares |
Percentages use 18.66M shares of this listed class outstanding on Jun 30, 2026. ≈ compares the latest reported holding with a share total from a different date; it is not a confirmed current stake.
Gray completes the 100% scale. Reported positions may overlap; holders have different reporting dates.
| Transaction | Insider | Type | Shares | Price | Value | Owned after |
|---|---|---|---|---|---|---|
| May 4, 2026Form 4 | MCCARTHY JOHN RDirector | BuyCommon Stock | 4.0K | $18.83 | $75.3K | 85.9K |
| Mar 16, 2026Form 4 | Foster Dale RichardChief Executive Officer | SellCommon Stock | 8.5K | $80.50 | $684.3K | 73.7K |
| May 16, 2025Form 4 | Popovich TimothyChief Operating Officer | SellCommon Stock | 9.0K | $110.00 | $990.0K | 13.1K |
| May 7, 2025Form 4 | Foster Dale RichardChief Executive Officer | SellCommon Stock | 10.0K | $102.41 | $1.02M | 77.8K |
| May 5, 2025Form 4 | Scorziello GregDirector | SellCommon Stock | 5.8K | $100.63 | $580.3K | 1.8K |