v3.26.1
Earnings per Share (Tables)
6 Months Ended
Jun. 30, 2026
Earnings Per Share [Abstract]  
Schedule of Basic and Diluted Earnings Per Share
Basic and diluted earnings per share are calculated as follows:
Three Months Ended June 30,Six Months Ended June 30,
(in thousands, except share and per share data)2026202520262025
Net income$8,536 $6,877 $10,881 $16,644 
Net income attributable to common stockholders
$8,536 $6,877 $10,881 $16,644 
Basic weighted-average common shares outstanding (1)
48,419,607 46,571,524 47,930,598 46,037,084 
Weighted average effect of dilutive securities:
Restricted stock units976,417 1,321,648 1,019,512 1,431,371 
Diluted weighted-average common shares outstanding49,396,024 47,893,172 48,950,110 47,468,455 
Earnings per share:
Basic$0.18 $0.15 $0.23 $0.36 
Diluted$0.17 $0.14 $0.22 $0.35 
(1) The outstanding and exercisable warrants issued with an exercise price of $0.01 are included in the Basic weighted-average common shares outstanding. See Note 10, Stockholders' Equity for additional information.
Schedule of Antidilutive Securities Excluded from Calculation of Diluted Weighted-Average Common Shares Outstanding
The following common share equivalent securities have been excluded from the calculation of diluted weighted-average common shares outstanding because the effect is anti-dilutive for the periods presented:
Three Months Ended June 30,Six Months Ended June 30,
2026202520262025
Stock options1,404,257 1,700,321 1,417,883 1,768,313 
Restricted stock units582,623 1,241,225 684,437 1,248,514 
Total anti-dilutive common share equivalents1,986,880 2,941,546 2,102,320 3,016,827