XML 41 R30.htm IDEA: XBRL DOCUMENT
v3.25.1

Note 9 - Earnings Per Share (Tables) | 3 Months Ended
--- | ---
Apr. 30, 2025
Notes Tables |
Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] |
|  | Three Months Ended April 30, |
|  | 2025 |  |  | 2024 |
Basic weighted average common shares outstanding at April 30, 2025 |  |  | 7,983 |  |  |  | 7,906 |
Dilutive effect of equity compensation plans |  |  | 96 |  |  |  | 150 |
Weighted average common shares outstanding assuming full dilution |  |  | 8,079 |  |  |  | 8,056 |
Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares |  |  | - |  |  |  | 32 |
Stock options and restricted stock with exercise prices or grant date prices below the average market prices |  |  | 96 |  |  |  | 150 |
Net income attributable to common stock |  | $ | 4,952 |  |  | $ | 1,443 |
Earnings per share attributable to common stock |  |  |  |  |  |  |  |
Basic |  | $ | 0.62 |  |  | $ | 0.18 |
Diluted |  | $ | 0.61 |  |  | $ | 0.18 |

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

X
- References No definition available. + Details
Name: | us-gaap_TableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration