Earnings per Share
The following table shows the computation of basic and diluted earnings per share as follows (in thousands, except per share amounts):
 Year Ended December 31,
202520242023
Net income114,442 106,171 113,234 
Basic weighted-average common shares outstanding168,049 171,438 172,249 
Effect of dilutive stock options1,318 1,173 1,150 
Diluted weighted-average common and common-equivalent shares outstanding169,367 172,611 173,399 
Earnings per share
Basic0.68 0.62 0.66 
Diluted0.68 0.62 0.65 
The computation of diluted weighted-average common shares outstanding excludes the following weighted average anti-dilutive stock-based awards outstanding as follows (in thousands):
202520242023
Stock options10,238 8,497 6,854 
Restricted stock units17 — — 
Performance restricted stock units — — 
Total weighted average anti-dilutive stock-based awards outstanding10,255 8,497 6,854 

About Earnings Per Share Disclosures

The earnings per share disclosure breaks down the calculation from net income to both basic and diluted EPS, revealing the full impact of a company's capital structure on per-share economics. The reconciliation between basic and diluted share counts exposes how many stock options, RSUs, convertible securities, and warrants are potentially dilutive to existing shareholders.

Key signals: a widening gap between basic and diluted shares indicates growing dilution from equity compensation or convertible instruments. Anti-dilutive securities excluded from the diluted calculation deserve attention — they represent latent dilution that will materialize if the stock price rises. Watch for the effect of share buybacks on per-share metrics: EPS growth driven primarily by repurchases rather than income growth signals weakening fundamentals. Compare year-over-year changes in the diluted share count against equity compensation expense to assess whether management is effectively managing dilution.