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 | $781.0M | $671.3M | $604.8M | $553.1M | $495.0M | $423.0M | $482.0M | $453.9M | $414.1M | $356.5M | $331.3M | $305.1M | $264.1M | $249.7M | $231.5M | $211.2M | $201.4M |
| Gross profit | $149.7M | $123.9M | $121.5M | $112.0M | $117.2M | $94.5M | $112.5M | $101.7M | $90.6M | $82.0M | $78.4M | $76.2M | $64.7M | $62.9M | $55.9M | $56.0M | — |
| Gross margin | 19.17% | 18.46% | 20.09% | 20.25% | 23.67% | 22.33% | 23.34% | 22.40% | 21.89% | 23.00% | 23.65% | 24.97% | 24.50% | 25.20% | 24.13% | 26.52% | — |
| Operating expenses | $63.0M | $60.9M | $71.0M | $55.2M | $46.5M | $42.0M | $45.0M | $41.3M | $35.9M | $32.5M | $31.1M | $30.4M | $25.9M | $24.5M | $24.4M | $22.8M | — |
| Operating income | $86.7M | $63.0M | $50.5M | $56.8M | $70.6M | $52.4M | $67.4M | $60.3M | $54.7M | $49.5M | $47.3M | $45.8M | $38.8M | $38.4M | $31.4M | $33.2M | $28.3M |
| Operating margin | 11.10% | 9.38% | 8.35% | 10.27% | 14.27% | 12.39% | 13.99% | 13.29% | 13.22% | 13.89% | 14.28% | 15.00% | 14.68% | 15.38% | 13.57% | 15.71% | 14.03% |
| EBITDA | $109.1M | $81.7M | $66.2M | $71.5M | $82.2M | $62.9M | $77.5M | $70.1M | $64.4M | $58.3M | $55.2M | $52.5M | $44.3M | $43.7M | $36.9M | $38.9M | $34.1M |
| EBITDA margin | 13.97% | 12.17% | 10.95% | 12.93% | 16.61% | 14.88% | 16.08% | 15.44% | 15.56% | 16.35% | 16.68% | 17.21% | 16.79% | 17.50% | 15.93% | 18.40% | 16.96% |
| Net income | $39.6M | $31.4M | $28.2M | $32.2M | $40.8M | $35.2M | $40.0M | $34.9M | $22.3M | $20.6M | $20.6M | $19.1M | $12.7M | $17.9M | $21.0M | $15.6M | $11.8M |
| Net profit margin | 5.07% | 4.68% | 4.67% | 5.81% | 8.25% | 8.32% | 8.31% | 7.68% | 5.38% | 5.76% | 6.22% | 6.27% | 4.82% | 7.18% | 9.06% | 7.41% | 5.84% |
| Basic EPSper basic share | $1.42 | $1.84 | $1.28 | $2.25 | $2.41 | $2.48 | $2.45 | $1.31 | $1.76 | $1.64 | $1.77 | $1.62 | $1.05 | $1.52 | $1.78 | $1.34 | $1.01 |
| Diluted EPSper diluted share | $1.42 | $1.84 | $1.28 | $2.25 | $2.41 | $2.48 | $2.45 | $1.31 | $1.76 | $1.64 | $1.77 | $1.62 | $1.05 | $1.51 | $1.75 | $1.32 | $1.00 |
Reported shareholders
Reported holdings Number of shares
| Holder | Shares held |
|---|---|
BlackRock, Inc. | 2.26M |
Bahl & Gaynor LLC | 861.57K |
KAYNE ANDERSON RUDNICK INVESTMENT MANAGEMENT LLC | 846.67K |
Copeland Capital Management, LLC | 841.54K |
STATE STREET CORP | 707.19K |
MORGAN STANLEY | 698.69K |
VANGUARD CAPITAL MANAGEMENT LLC | 674.2K |
NEUBERGER BERMAN GROUP LLC | 598.89K |
AMERICAN CENTURY COMPANIES INC | 558.82K |
SOUTHERNSUN ASSET MANAGEMENT, LLC | 527.77K |
DIMENSIONAL FUND ADVISORS LP | 513.91K |
WILLIAM BLAIR INVESTMENT MANAGEMENT, LLC | 437K |
SCHRODER INVESTMENT MANAGEMENT GROUP | 433.75K |
GEODE CAPITAL MANAGEMENT, LLC | 385.73K |
Boston Trust Walden Corp | 381.13K |
GW&K Investment Management, LLC | 359.18K |
VANGUARD PORTFOLIO MANAGEMENT LLC | 329.16K |
BANK OF AMERICA CORP /DE/ | 282.19K |
NORTHERN TRUST CORP | 230.94K |
ENVESTNET ASSET MANAGEMENT INC | 204.34K |
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 |
|---|---|---|---|---|---|---|
| Jun 9, 2026Form 4 | Minan Peter FrancisDirector | BuyCommon Stock | 288 | $61.50 | $17.7K | 3.2K |
| Jun 8, 2026Form 4 | Minan Peter FrancisDirector | BuyCommon Stock | 492 | $63.14 | $31.1K | 2.9K |
| Mar 11, 2026Form 4 | REEVE GRAHAM D.COO | SellCommon Stock | 662 | $78.86 | $52.2K | 30.1K |
| Mar 9, 2026Form 4 | REEVE GRAHAM D.COO | SellCommon Stock · indirect | 1 | $78.52 | $78.52 | 0 |
| Mar 6, 2026Form 4 | REEVE GRAHAM D.COO | SellCommon Stock · indirect | 1.8K | $82.25 | $148.6K | 1 |