| Net Income Per Share The computations for basic and diluted net income per share are as follows: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | | | | | | | | | (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 shares | 34,989 | | | 36,253 | | | 35,297 | | | 36,359 | | | Effect of potentially dilutive shares: | | | | | | | | | Stock options | 20 | | | 172 | | | 30 | | | 191 | | | Restricted stock units | 21 | | | 94 | | | 23 | | | 99 | | | Employee stock purchase plan | — | | | — | | | 3 | | | 2 | | | Diluted weighted average shares | 35,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 | |
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, | | 2026 | | 2025 | | 2026 | | 2025 | | | | | | | | | | (in thousands) | | (in thousands) | | Stock options | 1,133 | | 832 | | 1,077 | | 823 | | Restricted stock units | 745 | | 192 | | 678 | | 206 | | Employee stock purchase plan | 30 | | 24 | | 16 | | 12 | | Total anti-dilutive shares | 1,908 | | 1,048 | | 1,771 | | 1,041 |
|