v3.26.1
Net Income Per Share (Tables)
6 Months Ended
Jun. 30, 2026
Earnings Per Share [Abstract]  
Schedule of Earnings Per Share, Basic and Diluted
The computations for basic and diluted net income per share are as follows:
Three Months Ended
June 30,
Six Months Ended
June 30,
2026202520262025
(in thousands, except per share data)(in thousands, except per share data)
Numerator:
Net income$52,405 $47,290 $103,048 $94,824 
Denominator:
Basic weighted average shares34,989 36,253 35,297 36,359 
Effect of potentially dilutive shares:
Stock options20 172 30 191 
Restricted stock units21 94 23 99 
Employee stock purchase plan— — 
Diluted weighted average shares35,030 36,519 35,353 36,651 
Net income per share:
Basic$1.50 $1.30 $2.92 $2.61 
Diluted$1.50 $1.29 $2.91 $2.59 
Schedule of Potentially Dilutive Shares Excluded from Diluted Net Income Per Share Calculation
Potentially dilutive shares not included in the calculation of diluted net income per share because doing so would be anti-dilutive are as follows:
Three Months Ended
June 30,
Six Months Ended
June 30,
2026202520262025
(in thousands)(in thousands)
Stock options1,1338321,077823
Restricted stock units745192678206
Employee stock purchase plan30241612
Total anti-dilutive shares1,9081,0481,7711,041