XML 18 R4.htm IDEA: XBRL DOCUMENT v3.23.1
CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)
shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
Income Statement [Abstract]      
Revenues $ 242,238 $ 222,012 $ 194,101
Cost of revenues 179,055 162,568 142,562
Gross profit 63,183 59,444 51,539
Selling, general and administrative expenses:      
Operating expenses 50,984 44,716 38,136
Revaluation of contingent consideration liability 0 (2,882) 0
Total selling, general and administrative expenses 50,984 41,834 38,136
Income from operations 12,199 17,610 13,403
Interest income (expense), net (358) (675) (866)
Other income (expense), net 650 (49) 96
Income before income taxes 12,491 16,886 12,633
Income tax expense 3,779 4,665 2,772
Net income $ 8,712 $ 12,221 $ 9,861
Earnings Per Share:      
Basic $ 0.75 $ 1.07 $ 0.87
Diluted $ 0.72 $ 1.02 $ 0.83
Weighted average common shares outstanding:      
Basic 11,588 11,436 11,292
Diluted 12,077 12,007 11,950