Quarterly report [Sections 13 or 15(d)]

Earnings (Loss) Per Share

v3.25.2
Earnings (Loss) Per Share
6 Months Ended
Jun. 30, 2025
Earnings Per Share [Abstract]  
Earnings (Loss) Per Share Earnings (Loss) Per Share
Basic income (loss) per share is computed by dividing net loss by the weighted average number of common shares outstanding during the period. Diluted income (loss) per share assumes the issuance of potentially dilutive shares of common
stock during the period. The following table reconciles the numerators and denominators of the basic and diluted loss per share computations:
  Three Months Ended June 30, Six Months Ended June 30,
Numerator (in thousands):
2025 2024 2025 2024
Net income (loss) $ 2,599 $ 717 $ 2,332 $ (395)
Denominator:
Weighted average common shares outstanding:
Basic 20,806,967 21,299,089 20,965,114 21,262,429
Dilutive effect of common stock equivalents 249,493 412,109 323,256
Diluted 21,056,460 21,711,198 21,288,370 21,262,429
Net income (loss) per share:
Basic $ 0.12 $ 0.03 $ 0.11 $ (0.02)
Diluted $ 0.12 $ 0.03 $ 0.11 $ (0.02)
For the three months ended June 30, 2025 and 2024, respectively, 2,644,684 and 1,917,188 of outstanding options and unvested restricted stock units with an exercise price above the current market value of the Company's common stock that were not included in the calculation because they would have an anti-dilutive effect. For the six months ended June 30, 2025, there were 2,447,499 of outstanding options and unvested restricted stock units with an exercise price above the market value for the Company’s common stock that were not included in the calculation because they would have an anti-dilutive effect. For the six months ended June 30, 2024, all outstanding options and restricted stock units were anti-dilutive due to the Company's net losses for the period and therefore not included in the calculation.
Share Repurchase Program
On May 16, 2024, our Board of Directors approved a stock repurchase program (the “Share Repurchase Program”) that authorizes the Company to repurchase up to $20.0 million of the Company’s outstanding common stock through June 30, 2026. The Share Repurchase Program superseded the previous authorization, which expired on June 30, 2024. Repurchases under the Share Repurchase Program are subject to market conditions, the periodic capital needs of the Company’s operating activities, and the continued satisfaction of all covenants under the Company’s existing 2021 Credit Agreement. Repurchases under the Share Repurchase Program may take place in the open market or in privately negotiated transactions and may be made under a Rule 10b5-1 plan. The Share Repurchase Program does not obligate the Company to repurchase shares and may be suspended, terminated, or modified at any time at the discretion of the Board. As of June 30, 2025, the Company had repurchased and retired approximately $7.6 million, or 1,150,112 shares, of the Company's outstanding common stock under the Share Repurchase Program.