v3.25.1

Net income (loss) per share (Tables) | 12 Months Ended
--- | ---
Jan. 31, 2025
Earnings Per Share [Abstract] |
Schedule of Earnings Per Share, Basic and Diluted | The following table sets forth the computation of basic and diluted net income (loss) per share:
| Year ended January 31,
(in thousands, except per share data) | 2025 |  | 2024 |  | 2023
Numerator (basic and diluted): |  |  |  |  |
Net income (loss) | $ | 96,703 |  |  | $ | 55,712 |  |  | $ | (26,143) |
Denominator (basic): |  |  |  |  |
Weighted-average common shares outstanding | 86,870 |  |  | 85,564 |  |  | 84,442 |
Denominator (diluted): |  |  |  |  |
Weighted-average common shares outstanding | 86,870 |  |  | 85,564 |  |  | 84,442 |
Weighted-average dilutive effect of stock options and restricted stock units | 1,958 |  |  | 1,393 |  |  | — |
Diluted weighted-average common shares outstanding | 88,828 |  |  | 86,957 |  |  | 84,442 |
Net income (loss) per share: |  |  |  |  |
Basic | $ | 1.11 |  |  | $ | 0.65 |  |  | $ | (0.31) |
Diluted | $ | 1.09 |  |  | $ | 0.64 |  |  | $ | (0.31) |

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