| Net Income Per Share The components and computation of basic and diluted net income per share were as follows: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | (in thousands, except per share amounts) | 2024 | | 2023 | | 2024 | | 2023 | | Numerator | | | | | | | | | Net income | $ | 18,032 | | | $ | 14,682 | | | $ | 36,035 | | | $ | 29,971 | | | Denominator | | | | | | | | | Weighted average common shares outstanding, basic | 37,078 | | | 36,593 | | | 37,063 | | | 36,511 | | | Options to purchase common stock and ESPP | 157 | | | 274 | | | 167 | | | 291 | | | PSUs, RSUs, RSAs, and DSUs | 448 | | | 559 | | | 460 | | | 525 | | | Weighted average common shares outstanding, diluted | 37,683 | | | 37,426 | | | 37,690 | | | 37,327 | | | Net income per share | | | | | | | | | Basic | $ | 0.49 | | | $ | 0.40 | | | $ | 0.97 | | | $ | 0.82 | | | Diluted | $ | 0.48 | | | $ | 0.39 | | | $ | 0.96 | | | $ | 0.80 | |
The number of outstanding potential common shares that were excluded from the calculation of diluted net income per share as they were anti-dilutive was as follows: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | (in thousands) | 2024 | | 2023 | | 2024 | | 2023 | | Anti-dilutive shares | 276 | | | 37 | | | 227 | | | 63 | |
|