XML 69 R57.htm IDEA: XBRL DOCUMENT v3.25.3
Segment reporting and concentrations - Significant income statement (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Segment reporting and concentrations        
Revenues $ 62,550 $ 52,224 $ 179,287 $ 111,281
Direct operating costs 37,046 30,893 107,508 70,964
Gross profit 25,504 21,331 71,779 40,317
Selling and administrative expenses 13,745 9,910 42,837 27,235
Segment operating income (loss) 11,759 11,421 28,942 13,082
Interest (income) expense, net (420) (26) (1,124) (55)
Income before provision for income taxes 12,179 11,447 30,066 13,137
DDS        
Segment reporting and concentrations        
Revenues 54,779 44,694 156,186 89,810
Direct operating costs 32,627 27,084 94,905 59,563
Gross profit 22,152 17,610 61,281 30,247
Selling and administrative expenses 10,246 6,996 32,275 18,988
Segment operating income (loss) 11,906 10,614 29,006 11,259
Interest (income) expense, net (420) (27) (1,125) (58)
Income before provision for income taxes 12,326 10,641 30,131 11,317
Synodex        
Segment reporting and concentrations        
Revenues 1,653 1,935 5,731 5,792
Direct operating costs 1,536 1,452 4,615 4,454
Gross profit 117 483 1,116 1,338
Selling and administrative expenses 161 102 587 365
Segment operating income (loss) (44) 381 529 973
Income before provision for income taxes (44) 381 529 973
Agility        
Segment reporting and concentrations        
Revenues 6,118 5,595 17,370 15,679
Direct operating costs 2,883 2,357 7,988 6,947
Gross profit 3,235 3,238 9,382 8,732
Selling and administrative expenses 3,338 2,812 9,975 7,882
Segment operating income (loss) (103) 426 (593) 850
Interest (income) expense, net   1 1 3
Income before provision for income taxes $ (103) $ 425 $ (594) $ 847