XML 33 R21.htm IDEA: XBRL DOCUMENT
v3.26.1

EARNINGS PER SHARE | 12 Months Ended
--- | ---
Apr. 30, 2026
EARNINGS PER SHARE |
EARNINGS PER SHARE | (14) EARNINGS PER SHARE Earnings per share – basic is calculated by dividing net income by the weighted-average number of common shares outstanding during the period. The weighted-average number of common shares outstanding during the period includes shares issuable upon settlement of deferred stock units but does not include unvested shares of restricted common stock or shares issuable upon the exercise of stock options. The components of earnings per share – basic are as follows (amounts in thousands, except per share amounts): ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ ​ ​ | Year Ended April 30,
​ | ​ | 2026 | ​ ​ ​ | 2025
Numerator: |  | ​ | ​ |  | ​ | ​
Net income | ​ | $ | 10,288 | ​ | $ | 12,716
​ | ​ | ​ | ​ | ​ | ​ | ​
Denominator: | ​ |  | ​ | ​ |  | ​
Weighted average number of common shares outstanding – basic | ​ |  | 5,337 | ​ |  | 5,318
​ | ​ | ​ | ​ | ​ | ​ | ​
Earnings per share – basic | ​ | $ | 1.93 | ​ | $ | 2.39
​ Earnings per share – diluted is calculated by dividing net income by the sum of (1) the weighted-average number of common shares outstanding during the period plus (2) the dilutive effects of unvested shares of restricted common stock, shares issuable upon the exercise of stock options that are in-the-money and other potentially dilutive instruments. The components of earnings per share – diluted are as follows (amounts in thousands, except per share amounts): ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ ​ ​ | Year Ended April 30,
​ | ​ | 2026 | ​ ​ ​ | 2025
Numerator: |  | ​ | ​ |  | ​ | ​
Net income | ​ | $ | 10,288 | ​ | $ | 12,716
​ | ​ | ​ | ​ | ​ | ​ | ​
Denominator: | ​ |  | ​ | ​ |  | ​
Weighted average number of common shares outstanding – basic | ​ |  | 5,337 | ​ |  | 5,318
Dilutive effect of unvested shares of restricted common stock | ​ |  | 33 | ​ |  | 31
Dilutive effect of shares issuable upon the exercise of stock options that are in-the-money | ​ |  | 23 | ​ |  | 20
Weighted average number of common shares outstanding – diluted | ​ |  | 5,393 | ​ |  | 5,369
​ | ​ | ​ | ​ | ​ | ​ | ​
Earnings per share – diluted | ​ | $ | 1.91 | ​ | $ | 2.37
​

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 55 -Paragraph 12 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482635/260-10-55-12 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 505 -SubTopic 20 -Name Accounting Standards Codification -Section 05 -Paragraph 5 -Publisher FASB -URI https://asc.fasb.org/1943274/2147481468/505-20-05-5 Reference 3: 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 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -Name Accounting Standards Codification -Publisher FASB -URI https://asc.fasb.org/260/tableOfContent Reference 5: 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 6: 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