Revenue - Disaggregated Revenues (Details) - USD ($) $ in Thousands | 3 Months Ended |
Mar. 31, 2022 | Mar. 31, 2021 |
Disaggregation of Revenue [Line Items] | | |
Revenue | $ 161,662 | $ 153,735 |
United States | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 114,804 | 105,823 |
Other Americas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 18,800 | 20,059 |
Europe | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 26,320 | 26,036 |
Asia-Pacific | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 1,738 | 1,817 |
Oil & Gas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 94,223 | 87,212 |
Aerospace & Defense | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 20,070 | 16,175 |
Industrials | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 15,037 | 13,995 |
Power generation & Transmission | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 7,229 | 8,271 |
Other Process Industries | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 13,812 | 10,777 |
Infrastructure, Research & Engineering | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 5,442 | 8,069 |
Petrochemical | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 3,123 | 5,536 |
Other | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 2,726 | 3,700 |
Operating segments | Services | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 132,946 | 124,298 |
Operating segments | Services | United States | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 113,935 | 104,546 |
Operating segments | Services | Other Americas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 18,052 | 18,878 |
Operating segments | Services | Europe | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 744 | 294 |
Operating segments | Services | Asia-Pacific | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 215 | 580 |
Operating segments | Services | Oil & Gas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 86,613 | 79,220 |
Operating segments | Services | Aerospace & Defense | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 15,022 | 11,823 |
Operating segments | Services | Industrials | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 9,007 | 8,819 |
Operating segments | Services | Power generation & Transmission | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 3,822 | 5,534 |
Operating segments | Services | Other Process Industries | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 10,293 | 7,856 |
Operating segments | Services | Infrastructure, Research & Engineering | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 2,506 | 3,169 |
Operating segments | Services | Petrochemical | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 3,045 | 5,464 |
Operating segments | Services | Other | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 2,638 | 2,413 |
Operating segments | International | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 28,138 | 27,648 |
Operating segments | International | United States | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 173 | 208 |
Operating segments | International | Other Americas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 1,341 | 1,177 |
Operating segments | International | Europe | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 25,920 | 25,894 |
Operating segments | International | Asia-Pacific | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 704 | 369 |
Operating segments | International | Oil & Gas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 7,572 | 7,936 |
Operating segments | International | Aerospace & Defense | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 4,940 | 4,317 |
Operating segments | International | Industrials | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 5,528 | 4,849 |
Operating segments | International | Power generation & Transmission | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 2,562 | 1,978 |
Operating segments | International | Other Process Industries | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 3,518 | 2,912 |
Operating segments | International | Infrastructure, Research & Engineering | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 2,039 | 3,756 |
Operating segments | International | Petrochemical | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 78 | 72 |
Operating segments | International | Other | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 1,901 | 1,828 |
Operating segments | Products | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 2,936 | 2,988 |
Operating segments | Products | United States | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 1,351 | 1,460 |
Operating segments | Products | Other Americas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 16 | 67 |
Operating segments | Products | Europe | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 580 | 460 |
Operating segments | Products | Asia-Pacific | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 989 | 1,001 |
Operating segments | Products | Oil & Gas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 38 | 56 |
Operating segments | Products | Aerospace & Defense | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 108 | 35 |
Operating segments | Products | Industrials | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 502 | 327 |
Operating segments | Products | Power generation & Transmission | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 845 | 759 |
Operating segments | Products | Other Process Industries | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 1 | 9 |
Operating segments | Products | Infrastructure, Research & Engineering | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 897 | 1,144 |
Operating segments | Products | Petrochemical | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | 0 |
Operating segments | Products | Other | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 545 | 658 |
Corp/Elim | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | (2,358) | (1,199) |
Corp/Elim | United States | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | (655) | (391) |
Corp/Elim | Other Americas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | (609) | (63) |
Corp/Elim | Europe | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | (924) | (612) |
Corp/Elim | Asia-Pacific | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | (170) | (133) |
Corp/Elim | Oil & Gas | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | 0 |
Corp/Elim | Aerospace & Defense | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | 0 |
Corp/Elim | Industrials | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | 0 |
Corp/Elim | Power generation & Transmission | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | 0 |
Corp/Elim | Other Process Industries | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | 0 |
Corp/Elim | Infrastructure, Research & Engineering | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | 0 |
Corp/Elim | Petrochemical | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | 0 | |
Corp/Elim | Other | | |
Disaggregation of Revenue [Line Items] | | |
Revenue | $ (2,358) | $ (1,199) |