XML 29 R18.htm IDEA: XBRL DOCUMENT
v3.25.3

Net Income per Common Share (Notes) | 3 Months Ended
--- | ---
Oct. 31, 2025
Earnings Per Share [Abstract] |
Net Income per Common Share | Net Income per Common Share Reconciliations of the numerator and denominator of the basic and diluted per share computations for the Company’s Class A and Class B common stock are summarized as follows:
| Three months ended October 31,
| 2025 |  | 2024
Numerator (in thousands): |  |  |
Net income (Numerator for basic and diluted income per Class A Nonvoting Common Share) | $ | 53,936 |  |  | $ | 46,783 |
Less: |  |  |
Preferential dividends | (728) |  |  | (736) |
Preferential dividends on dilutive stock options | (8) |  |  | (8) |
Numerator for basic and diluted income per Class B Voting Common Share | $ | 53,200 |  |  | $ | 46,039 |
Denominator (in thousands): |  |  |
Denominator for basic income per share for both Class A and Class B | 47,273 |  |  | 47,732 |
Plus: Effect of dilutive equity awards | 458 |  |  | 485 |
Denominator for diluted income per share for both Class A and Class B | 47,731 |  |  | 48,217 |
Net income per Class A Nonvoting Common Share: |  |  |
Basic | $ | 1.14 |  |  | $ | 0.98 |
Diluted | $ | 1.13 |  |  | $ | 0.97 |
Net income per Class B Voting Common Share: |  |  |
Basic | $ | 1.13 |  |  | $ | 0.96 |
Diluted | $ | 1.11 |  |  | $ | 0.95 |
Potentially dilutive securities attributable to outstanding stock options and restricted stock units were excluded from the calculation of diluted earnings per share where the combined exercise price and average unamortized fair value were greater than the average market price of the Company’s Class A Nonvoting Common Stock because the effect would have been anti-dilutive. The amount of anti-dilutive shares were 18,468 and 17,278 for the three months ended October 31, 2025 and 2024, respectively.

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