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

NET INCOME PER SHARE (Tables) | 9 Months Ended
--- | ---
Oct. 31, 2023
NET INCOME PER SHARE |
Schedule of computations of basic and diluted net income per share | Basic and diluted net income per share amounts are computed as follows (shares in thousands except in the notes):
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended October 31,
​ |  | 2023 |  | 2022
Net income | ​ | $ | 5,464 | ​ | $ | 7,758
​ | ​ | ​ | ​ | ​ | ​ | ​
Weighted average number of shares outstanding – basic | ​ | ​ | 13,328 | ​ | ​ | 13,781
Effect of stock awards (1) | ​ | ​ | 231 | ​ | ​ | 31
Weighted average number of shares outstanding – diluted | ​ | ​ | 13,559 | ​ | ​ | 13,812
​ | ​ | ​ | ​ | ​ | ​ | ​
Net income per share | ​ | ​ | ​ | ​ | ​ | ​
Basic | ​ | $ | 0.41 | ​ | $ | 0.56
Diluted | ​ | $ | 0.40 | ​ | $ | 0.56
| (1) | For the three months ended October 31, 2023 and 2022, the weighted average numbers of shares determined on a dilutive basis exclude the effects of antidilutive stock options and restricted stock units covering an aggregate of 690,167 and 1,146,834 shares of common stock, respectively. |
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Nine Months Ended October 31,
​ |  | 2023 |  | 2022
Net income | ​ | $ | 20,340 | ​ | $ | 19,465
​ | ​ | ​ | ​ | ​ | ​ | ​
Weighted average number of shares outstanding – basic | ​ | ​ | 13,381 | ​ | ​ | 14,268
Effect of stock awards (1) | ​ | ​ | 168 | ​ | ​ | 82
Weighted average number of shares outstanding – diluted | ​ | ​ | 13,549 | ​ | ​ | 14,350
​ | ​ | ​ | ​ | ​ | ​ | ​
Net income per share | ​ | ​ | ​ | ​ | ​ | ​
Basic | ​ | $ | 1.52 | ​ | $ | 1.36
Diluted | ​ | $ | 1.50 | ​ | $ | 1.36
| (1) | For the nine months ended October 31, 2023 and 2022, the weighted average numbers of shares determined on a dilutive basis exclude the effects of antidilutive stock options and restricted stock units covering an aggregate of 881,056 and 1,103,334 shares of common stock, respectively. |

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