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 | $331.9M | $278.4M | $259.5M | $230.6M | $205.0M | $173.3M | $173.1M | $160.9M | $155.1M | $143.9M | $122.2M | $123.6M | $118.5M | $112.3M | $110.0M | $91.2M | $81.1M |
| Gross profit | $108.3M | $89.5M | $83.8M | $68.4M | $58.4M | $46.1M | $42.5M | $39.3M | $37.4M | $35.0M | $29.1M | $29.1M | $29.8M | $27.4M | $27.1M | $23.3M | $19.3M |
| Gross margin | 32.63% | 32.13% | 32.30% | 29.65% | 28.51% | 26.61% | 24.54% | 24.45% | 24.13% | 24.30% | 23.84% | 23.53% | 25.14% | 24.40% | 24.65% | 25.55% | 23.80% |
| Operating expenses | $95.0M | $71.6M | $64.0M | $52.1M | $44.3M | $35.0M | $31.6M | $29.1M | $28.4M | $27.0M | $22.8M | $22.3M | $23.1M | $21.5M | $21.7M | $18.7M | $16.9M |
| Operating income | $13.3M | $17.9M | $19.8M | $16.2M | $14.1M | $11.1M | $10.8M | $10.2M | $9.0M | $7.9M | $6.3M | $6.8M | $6.7M | $5.9M | $5.4M | $4.6M | $2.4M |
| Operating margin | 4.00% | 6.42% | 7.62% | 7.05% | 6.90% | 6.39% | 6.27% | 6.36% | 5.82% | 5.51% | 5.16% | 5.47% | 5.66% | 5.29% | 4.93% | 5.03% | 2.94% |
| EBITDA | $39.4M | $36.4M | $33.3M | $27.2M | $23.7M | $18.7M | $17.5M | $16.6M | $15.0M | $14.1M | $10.2M | $9.9M | $9.7M | $8.6M | $8.3M | $6.9M | $4.5M |
| EBITDA margin | 11.88% | 13.09% | 12.84% | 11.80% | 11.57% | 10.76% | 10.12% | 10.31% | 9.68% | 9.81% | 8.39% | 7.97% | 8.14% | 7.70% | 7.57% | 7.55% | 5.50% |
| Net income | $5.4M | $14.5M | $13.6M | $10.7M | $11.4M | $7.8M | $8.1M | $7.1M | $5.9M | $4.5M | $4.1M | $4.0M | $4.0M | $3.7M | $3.3M | $2.8M | $1.5M |
| Net profit margin | 1.62% | 5.21% | 5.26% | 4.64% | 5.55% | 4.49% | 4.66% | 4.44% | 3.82% | 3.14% | 3.38% | 3.26% | 3.36% | 3.30% | 3.00% | 3.06% | 1.79% |
| Basic EPSper basic share | $0.58 | $1.58 | $1.66 | $1.42 | $1.52 | $1.05 | $1.10 | $0.99 | $0.83 | $0.65 | $0.60 | $0.59 | $0.56 | $0.50 | $0.45 | $0.38 | $0.20 |
| Diluted EPSper diluted share | $0.57 | $1.57 | $1.63 | $1.40 | $1.50 | $1.03 | $1.08 | $0.95 | $0.81 | $0.64 | $0.58 | $0.57 | $0.54 | $0.49 | $0.43 | $0.37 | $0.19 |
Reported shareholders
| Holder | % owned |
|---|---|
NEUBERGER BERMAN GROUP LLC | ≈8.31%777.37K shares |
BlackRock, Inc. | ≈7.77%727.01K shares |
Hood River Capital Management LLC | ≈6.43%601.54K shares |
Ophir Asset Management Pty Ltd | ≈4.94%462.02K shares |
Conestoga Capital Advisors, LLC | ≈4.80%449.56K shares |
ROYCE & ASSOCIATES LP | ≈4.61%431.67K shares |
VANGUARD CAPITAL MANAGEMENT LLC | ≈4.42%414.06K shares |
BARROW HANLEY MEWHINNEY & STRAUSS LLC | ≈4.27%399.98K shares |
First Eagle Investment Management, LLC | ≈3.71%347.39K shares |
WELLINGTON MANAGEMENT GROUP LLP | ≈3.39%317.02K shares |
DIMENSIONAL FUND ADVISORS LP | ≈2.94%275.3K shares |
Paradice Investment Management LLC | ≈2.63%246.14K shares |
GEODE CAPITAL MANAGEMENT, LLC | ≈2.60%243.14K shares |
STATE STREET CORP | ≈2.43%227.6K shares |
Thrivent Financial for Lutherans | ≈2.24%209.42K shares |
RIVERBRIDGE PARTNERS LLC | ≈2.16%202.39K shares |
BAMCO INC /NY/ | ≈2.03%190.24K shares |
Champlain Investment Partners, LLC | ≈1.83%171.27K shares |
ROYAL BANK OF CANADA | ≈1.62%151.38K shares |
ArrowMark Colorado Holdings LLC | ≈1.60%149.52K shares |
Percentages use 9.36M shares of this listed class outstanding on Jun 27, 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 |
|---|---|---|---|---|---|---|
| Jan 31, 2025Form 4 | Cairns Craig D.Director | BuyCommon Stock, $.50 par value · indirect | 1.0K | $77.09 | $77.1K | 1.9K |
| Jan 31, 2025Form 4 | Cairns Craig D.Director | BuyCommon Stock, $.50 par value · indirect | 200 | $76.67 | $15.3K | 430 |
| Oct 8, 2024Form 4 | Gillette Christopher P.Director | SellCommon Stock, $.50 par value | 456 | $119.95 | $54.7K | 0 |