v3.26.3
Net (Loss) Income Per Share - Schedule of Earnings Per Share, Basic and Diluted (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2026
Jun. 30, 2026
Mar. 31, 2026
Sep. 30, 2025
Jun. 30, 2025
Mar. 31, 2025
Sep. 30, 2026
Sep. 30, 2025
Numerator:                
Net (loss) income $ (3,503) $ (1,229) $ (10,322) $ 1,533 $ 2,490 $ 555 $ (15,054) $ 4,578
Denominator:                
Basic (in shares) 23,349,040     27,995,708     23,588,670 29,074,842
Plus: dilutive effect of stock options (in shares) 0     1,261,485     0 1,734,302
Plus: dilutive effect of RSUs (in shares) 0     112,574     0 180,052
Plus: dilutive effect of ESPP (in shares) 0     7,070     0 10,331
Diluted (in shares) 23,349,040     29,376,837     23,588,670 30,999,527
Net (loss) income per share, basic (in usd per share) $ (0.15)     $ 0.05     $ (0.64) $ 0.16
Net (loss) income per share, diluted (in usd per share) $ (0.15)     $ 0.05     $ (0.64) $ 0.15