XML 33 R12.htm IDEA: XBRL DOCUMENT
v3.25.2

Net Income per Common Share | 3 Months Ended
--- | ---
Jun. 30, 2025
Earnings Per Share [Abstract] |
Net Income per Common Share | Net Income per Common Share Basic net income per common share is computed by dividing net income by the weighted average number of common shares outstanding during the period. Diluted net income per share is computed using the weighted average number of common shares outstanding and, if dilutive, potential common shares outstanding during the period. Potential common shares consist of the incremental common shares issuable upon the vesting of restricted stock units ("RSUs"), performance stock units ("PSUs"), common shares to be purchased under the Employee Stock Purchase Plan ("ESPP"), and the exercise of stock options. The dilutive effect of such potential common shares is reflected in diluted earnings per share by application of the treasury stock method. The following table sets forth the reconciliation of basic and diluted net income per common share:
| Three Months Ended June 30,
| 2025 |  | 2024
Net income | $ | 23,496 |  |  | $ | 18,527 |
Basic net income per common share: |  |  |
Basic weighted average shares outstanding | 44,326 |  |  | 43,678 |
Basic net income per common share | $ | 0.53 |  |  | $ | 0.42 |
Diluted net income per common share: |  |  |
Basic weighted average shares outstanding | 44,326 |  |  | 43,678 |
Dilutive effect of restricted stock units | 957 |  |  | 1,308 |
Diluted weighted average shares outstanding | 45,283 |  |  | 44,986 |
Diluted net income per common share | $ | 0.52 |  |  | $ | 0.41 |
The diluted weighted average shares outstanding excludes RSUs, PSUs, common shares to be purchased under the ESPP and outstanding stock options totaling 157 and 175 for the three months ended June 30, 2025 and 2024, respectively, because the effect of including them would have been anti-dilutive.

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