XML 26 R19.htm IDEA: XBRL DOCUMENT
v3.24.1.1.u2

Net Income per Common Share | 3 Months Ended
--- | ---
Apr. 30, 2024
Earnings Per Share [Abstract] |
Net Income per Common Share | 10. Net Income per Common Share Basic net income per common share is calculated by dividing net income by the weighted-average number of common shares outstanding. Diluted net income per common share is calculated by dividing net income by the weighted-average number of common shares and potentially dilutive securities outstanding during the period using the treasury stock method for the Company's stock options, performance stock units and restricted stock units. The following is a reconciliation of the weighted-average common shares outstanding and calculation of basic and diluted net income per common share:
|  | Three Months Ended |
|  | April 30, |
|  | 2024 |  |  | 2023 |
Net income |  | $ | 61,765 |  |  | $ | 52,817 |
Basic weighted-average common shares outstanding |  |  | 93,124,568 |  |  |  | 92,474,688 |
Effect of dilutive options, performance stock units and restricted stock units |  |  | 1,876,138 |  |  |  | 1,346,604 |
Diluted weighted-average shares outstanding |  |  | 95,000,706 |  |  |  | 93,821,292 |
Net income per common share: |  |  |  |  |  |
Basic |  | $ | 0.66 |  |  | $ | 0.57 |
Diluted |  | $ | 0.65 |  |  | $ | 0.56 |
For the three months ended April 30, 2024 and 2023, awards to purchase 40,000 common shares at a price of $46.42 and 120,000 common shares ranging in price from $28.47 to $46.42, respectively, were excluded from the calculation of diluted net income per common share because the impact would be anti-dilutive. Excluded from the calculation of diluted net income per common share as of April 30, 2024 and April 30, 2023, were 270,441 and 272,554 performance-based equity awards, respectively, because they did not meet the required performance criteria.

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