| Net Income (Loss) Per Share The following table summarizes the calculation of basic and diluted net income per share (in thousands, except per share data): | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | Numerator: | | | | | | | | | Net income (loss) - Basic and Diluted | $ | 8,845 | | | $ | 1,446 | | | $ | 10,834 | | | $ | 3,035 | | | | | | | | | | | Denominator: | | | | | | | | | Weighted-average common shares outstanding - Basic | 10,259 | | | 10,069 | | | 10,371 | | | 10,051 | | | Effect of common share equivalents | 328 | | | 367 | | | 314 | | | 353 | | | Weighted-average common shares outstanding - Diluted | 10,587 | | | 10,436 | | | 10,685 | | | 10,404 | | | | | | | | | | | Net income (loss) per share: | | | | | | | | | Basic | $ | 0.86 | | | $ | 0.14 | | | $ | 1.04 | | | $ | 0.30 | | | Diluted | $ | 0.84 | | | $ | 0.14 | | | $ | 1.01 | | | $ | 0.29 | |
The following common share equivalents were excluded from the computation of diluted net income (loss) per share because their effect was anti-dilutive (in thousands): | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | Restricted stock units | 1 | | | — | | | 1 | | | — | | | Stock options | — | | | — | | | — | | | — | | | | | | | | | |
|