v3.25.2
Earnings (Loss) Per Share (Tables)
6 Months Ended
Jun. 30, 2025
Earnings Per Share [Abstract]  
Schedule of Computation of Basic and Diluted Earnings (Loss) Per Share
The following table shows the computation of basic and diluted earnings (loss) per share for the following three and six months ended June 30, 2025 and 2024 (in thousands, except per share data):
 Three Months Ended
June 30,
Six Months Ended
June 30,
 2025202420252024
Numerator:
Net income (loss)$4,523 $8,920 $(21,325)$6,386 
Denominator:
Weighted-average common shares outstanding, basic28,914 27,646 28,763 27,566 
Assumed exercise of stock options361 440 — 441 
Assumed vesting of RSUs186 546 — 427 
Assumed vesting of PSUs84 98 — 98 
Assumed issuance of shares under the ESPP— — 10 
Weighted-average common shares outstanding, diluted29,545 28,738 28,763 28,542 
Earnings (loss) per share:
Basic$0.16 $0.32 $(0.74)$0.23 
Diluted$0.15 $0.31 $(0.74)$0.22 
Schedule of Antidilutive Securities Excluded from Computation of Earnings (Loss) Per Share
The table below provides the weighted-average number of potential common shares associated with outstanding securities not included in our calculation of diluted earnings (loss) per share for the three and six months ended June 30, 2025 and 2024 because to do so would be antidilutive. With regard to the PSUs, we assume that the associated performance targets will be met at the target level of performance for purposes of calculating diluted earnings per common share until such time that it is probable that actual performance will be above or below target (in thousands):
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Stock options2,466 2,487 2,965 2,493 
RSUs and PSUs2,958 892 4,053 877 
ESPP123 216 150 233 
Total5,547 3,595 7,168 3,603