v3.26.1
Net income (loss) per share attributable to common stockholders - Schedule of Earnings Per Share, Basic and Diluted (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended
Jul. 31, 2026
Apr. 30, 2026
Jul. 31, 2025
Apr. 30, 2025
Jul. 31, 2026
Jul. 31, 2025
Numerator:            
Net income (loss) $ 1,918 $ 2,963 $ 654 $ (3,914) $ 4,881 $ (3,260)
Denominator:            
Weighted-average shares of common stock outstanding, basic (in shares) 61,878,316   59,591,545   61,419,374 59,261,722
Basic net income (loss) per share attributable to common stockholders (in dollars per share) $ 0.03   $ 0.01   $ 0.08 $ (0.06)
Numerator:            
Net income (loss) $ 1,918 $ 2,963 $ 654 $ (3,914) $ 4,881 $ (3,260)
Denominator:            
Number of shares used for basic net income (loss) per computation (in shares) 61,878,316   59,591,545   61,419,374 59,261,722
Weighted-average shares of common stock outstanding, diluted (in shares) 62,463,449   61,685,811   62,259,892 59,261,722
Diluted net income (loss) per share attributable to common stockholders (in dollars per share) $ 0.03   $ 0.01   $ 0.08 $ (0.06)
RSUs            
Denominator:            
Incremental common shares attributable to dilutive effect of share-based payment arrangements (in shares) 235,742   763,941   264,400 0
Stock options            
Denominator:            
Incremental common shares attributable to dilutive effect of share-based payment arrangements (in shares) 153,307   625,292   175,129 0
PSUs            
Denominator:            
Incremental common shares attributable to dilutive effect of share-based payment arrangements (in shares) 0   575,071   0 0
Liability awards            
Denominator:            
Incremental common shares attributable to dilutive effect of share-based payment arrangements (in shares) 132,399   92,500   369,147 0
ESPP            
Denominator:            
Incremental common shares attributable to dilutive effect of share-based payment arrangements (in shares) 63,685   37,462   31,842 0