XML 57 R50.htm IDEA: XBRL DOCUMENT
v3.26.1

Net Income (Loss) Per Common Share - Reconciliation of Shares Used in Calculating Basic and Diluted Net Income (Loss) per Share (Detail) - shares | 3 Months Ended
--- | ---
Apr. 30, 2026 | Apr. 30, 2025
Earnings Per Share [Abstract] |  |  |
Weighted Average Common Shares Outstanding – Basic | 7,677,974 | 7,559,704 |
Effect of Dilutive Options, Restricted Stock Awards and Restricted Stock Units | 96,341 | 0 | [1]
Weighted Average Number of Common Shares Outstanding—Diluted | 7,774,315 | 7,559,704 |
[1] | For the three months ended April 30, 2025 we had weighted average common stock equivalent shares outstanding of 67,066 that could potentially dilute earnings per share in future periods. These shares were excluded from the computation of diluted earnings per share because their effect would have been anti-dilutive given the net loss during the period.

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 sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation. + 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_WeightedAverageNumberDilutedSharesOutstandingAdjustment
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -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 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 45 -Paragraph 16 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16 + Details
Name: | us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -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 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 45 -Paragraph 10 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10 + Details
Name: | us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration