Weighted Average Shares Outstanding (Details) - shares |
3 Months Ended | |
|---|---|---|
Jul. 31, 2026 |
Jul. 31, 2025 |
|
| Earnings Per Share, Diluted, by Common Class, Including Two-Class Method [Line Items] | ||
| Weighted average shares outstanding-basic (in shares) | 8,329,512 | 8,274,054 |
| Dilutive options and restricted stock (in shares) | 0 | 0 |
| Weighted average shares outstanding-diluted (in shares) | 8,329,512 | 8,274,054 |
| Antidilutive securities not included (in shares) | 70,495 | 175,773 |
| Options | ||
| Earnings Per Share, Diluted, by Common Class, Including Two-Class Method [Line Items] | ||
| Antidilutive securities not included (in shares) | 854,844 | 628,934 |
| Warrants | ||
| Earnings Per Share, Diluted, by Common Class, Including Two-Class Method [Line Items] | ||
| Antidilutive securities not included (in shares) | 937,487 | 0 |
| Restricted stock | ||
| Earnings Per Share, Diluted, by Common Class, Including Two-Class Method [Line Items] | ||
| Antidilutive securities not included (in shares) | 297,669 | 6,250 |