XML 51 R36.htm IDEA: XBRL DOCUMENT
v3.25.4

Earnings Per Share (Tables) | 9 Months Ended
--- | ---
Jan. 31, 2026
Earnings Per Share [Abstract] |
Schedule of Earnings Per Share, Basic and Diluted | The following is a reconciliation of basic to diluted weighted average common shares outstanding (in thousands):
| Three Months Ended |  | Nine Months Ended
| January 31, 2026 |  | January 31, 2025 |  | January 31, 2026 |  | January 31, 2025
Basic | 2,866 |  |  | 2,872 |  |  | 2,861 |  |  | 2,864 |
Dilutive effect of stock options and RSUs | 117 |  |  | 123 |  |  | 118 |  |  | 115 |
Weighted average common shares outstanding - diluted | 2,983 |  |  | 2,995 |  |  | 2,979 |  |  | 2,979 |

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 Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1 + Details
Name: | us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration