v3.26.3
Net (Loss) Income Per Share (Tables)
9 Months Ended
Sep. 30, 2026
Earnings Per Share [Abstract]  
Schedule of Earnings Per Share, Basic and Diluted
Basic and diluted net (loss) income per share is calculated as follows (in thousands, except share and per share amounts):
Three months ended September 30,Nine months ended September 30,
2026202520262025
Numerator:
Net (loss) income$(3,503)$1,533 $(15,054)$4,578 
Denominator:
Weighted average shares of common stock outstanding, basic23,349,04027,995,70823,588,67029,074,842
Plus: dilutive effect of stock options— 1,261,485—1,734,302
Plus: dilutive effect of RSUs— 112,574—180,052
Plus: dilutive effect of ESPP— 7,070— 10,331
Weighted average common shares outstanding, diluted23,349,04029,376,83723,588,67030,999,527
Net (loss) income per share, basic$(0.15)$0.05 $(0.64)$0.16 
Net (loss) income per share, diluted$(0.15)$0.05 $(0.64)$0.15 
Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share
The following potentially dilutive common shares, presented based on amounts outstanding, were excluded from the computation of diluted net (loss) income per share because their effect would have been antidilutive for the periods presented:
Three months ended September 30,Nine months ended September 30,
2026202520262025
Stock options2,018,131 261,011 2,257,741 95,973 
RSUs4,263,739 1,780,443 4,443,090 1,466,559 
ESPP54,082 — 62,154 — 
Common stock warrant4,121,034 4,121,034 4,121,034 4,121,034 
Total shares excluded from diluted net (loss) income per share10,456,986 6,162,488 10,884,019 5,683,566