v3.26.1
Equity-based compensation - Schedule of Stock Option Activity (Details)
$ / shares in Units, $ in Thousands
3 Months Ended
Apr. 30, 2026
USD ($)
$ / shares
shares
Number of options  
Beginning balance (in shares) | shares 660,216
Granted (in shares) | shares 0
Exercised (in shares) | shares (15,959)
Forfeited and expired (in shares) | shares (1,288)
Ending balance (in shares) | shares 642,969
Exercisable (in shares) | shares 642,969
Weighted- average exercise price  
Beginning balance (in dollars per share) | $ / shares $ 7.84
Granted (in dollars per share) | $ / shares 0
Exercised (in dollars per share) | $ / shares 7.66
Forfeited and expired (in dollars per share) | $ / shares 9.14
Ending balance (in dollars per share) | $ / shares 7.84
Exercisable (in dollars per share) | $ / shares $ 7.84
Weighted-average remaining contractual life of options outstanding and expected to vest (in years) 2 years 7 months 2 days
Weighted-average remaining contractual life of options exercisable (in years) 2 years 7 months 2 days
Aggregate intrinsic value outstanding and expected to vest | $ $ 1,131
Aggregate intrinsic value exercisable | $ $ 1,131