XML 36 R29.htm IDEA: XBRL DOCUMENT
v3.26.1

Basic and Diluted Net Income (Loss) Per Share (Tables) | 3 Months Ended
--- | ---
Apr. 30, 2026
Earnings Per Share [Abstract] |
Computation of Basic and Diluted Net Income (Loss) Per Share | The following table sets forth the computation of basic and diluted net income (loss) per share of common stock (in thousands, except share and per share data):
|  | Three Months Ended
|  | April 30, 2026 |  | April 30, 2025
Numerator |  |  |  |  |  |
Net income (loss) |  | $ | 2,582 |  | $ | (141)
Denominator |  |  |  |  |  |
Basic weighted average common shares |  |  | 27,495,292 |  |  | 27,445,911
Potentially dilutive shares from equity plans |  |  | 602,888 |  |  | —
Diluted weighted-average common shares |  |  | 28,098,180 |  |  | 27,445,911
Basic net income (loss) per share |  | $ | 0.09 |  | $ | (0.01)
Diluted net income (loss) per share |  | $ | 0.09 |  | $ | (0.01)

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