v3.26.1
Net (Loss) Income Per Share (Tables)
6 Months Ended
Jun. 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 June 30,Six months ended June 30,
2026202520262025
Numerator:
Net (loss) income$(1,229)$2,490 $(11,551)$3,045 
Denominator:
Weighted average shares of common stock outstanding, basic23,280,65228,479,97723,710,47129,623,352
Plus: dilutive effect of stock options— 1,772,789—1,970,711
Plus: dilutive effect of RSUs— 172,127—213,792
Plus: dilutive effect of ESPP— 8,626— 11,962
Weighted average common shares outstanding, diluted23,280,65230,433,51923,710,47131,819,817
Net (loss) income per share, basic$(0.05)$0.09 $(0.49)$0.10 
Net (loss) income per share, diluted$(0.05)$0.08 $(0.49)$0.10 
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 June 30,Six months ended June 30,
2026202520262025
Stock options2,298,375 26,909 2,377,546 13,455 
RSUs4,464,412 1,529,118 4,532,766 1,309,617 
ESPP57,370 — 66,189 — 
Common stock warrant4,121,034 4,121,034 4,121,034 4,121,034 
Total shares excluded from diluted net (loss) income per share10,941,191 5,677,061 11,097,535 5,444,106