XML 41 R24.htm IDEA: XBRL DOCUMENT
v3.25.4

Earnings Per Share | 12 Months Ended
--- | ---
Dec. 31, 2025
Earnings Per Share [Abstract] |
Earnings Per Share | Earnings Per Share Basic net income per share is calculated by dividing net income by the weighted average number of shares of common stock outstanding during the period. Diluted net income per share assumes the conversion of all potentially dilutive securities and is calculated by dividing net income by the sum of the weighted average number of shares of common stock outstanding plus all potentially dilutive securities. Dilutive common shares consist primarily of stock options and restricted stock awards. The following table sets forth the computation of basic and diluted earnings per share:
|  |  |  |  | Years Ended December 31, |
|  |  |  |  | 2025 |  | 2024 |  | 2023 |
Numerator: |  |  |  |  | (in thousands, except share and per share data) |
Net income |  |  |  |  | $ | 107,593 |  |  | $ | 168,559 |  |  | $ | 177,623 |  |
Denominator: |  |  |  |  |  |  |  |  |  |
Basic weighted average shares |  |  |  |  | 81,529,140 |  |  | 81,473,131 |  |  | 81,156,114 |  |
Effect of dilutive shares related to stock based compensation 1 |  |  |  |  | 1,576,398 |  |  | 2,109,206 |  |  | 1,972,380 |  |
Effect of dilutive shares related to contingent consideration 2 |  |  |  |  | — |  |  | 47,165 |  |  | 166,796 |  |
Diluted weighted average shares |  |  |  |  | 83,105,538 |  |  | 83,629,502 |  |  | 83,295,290 |  |
Earnings per share: |  |  |  |  |  |  |  |  |  |
Basic |  |  |  |  | $ | 1.32 |  |  | $ | 2.07 |  |  | $ | 2.19 |  |
Diluted |  |  |  |  | $ | 1.29 |  |  | $ | 2.02 |  |  | $ | 2.13 |  |
Anti-dilutive shares: |  |  |  |  |  |  |  |  |  |
Shares |  |  |  |  | 523,387 |  |  | 235,188 |  |  | 314,108 |  |
1 Dilutive shares related to stock options, restricted stock, PSUs and Key Employee Awards (Note 15) 2 Dilutive shares related to contingent shares issued to the former owners of BASX (Note 18)

X
- References No definition available. + Details
Name: | us-gaap_EarningsPerShareAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The entire disclosure for earnings per share. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -Name Accounting Standards Codification -Publisher FASB -URI https://asc.fasb.org/260/tableOfContent Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 3 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3 + Details
Name: | us-gaap_EarningsPerShareTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration