XML 72 R51.htm IDEA: XBRL DOCUMENT v3.25.0.1
Revenue - Disaggregated Revenues by Segment (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2024
Dec. 31, 2023
Dec. 31, 2022
Disaggregation of Revenue [Line Items]      
Revenue $ 729,640 $ 705,473 $ 687,373
United States      
Disaggregation of Revenue [Line Items]      
Revenue 506,945 500,282 489,873
Other Americas      
Disaggregation of Revenue [Line Items]      
Revenue 90,013 86,939 89,254
Europe      
Disaggregation of Revenue [Line Items]      
Revenue 121,179 108,135 100,919
Asia-Pacific      
Disaggregation of Revenue [Line Items]      
Revenue 11,503 10,117 7,327
Oil & Gas      
Disaggregation of Revenue [Line Items]      
Revenue 418,923 415,995 387,752
Aerospace & Defense      
Disaggregation of Revenue [Line Items]      
Revenue 87,016 76,997 80,552
Industrials      
Disaggregation of Revenue [Line Items]      
Revenue 71,665 70,583 63,983
Power Generation and Transmission      
Disaggregation of Revenue [Line Items]      
Revenue 36,518 33,974 42,104
Other Process Industries      
Disaggregation of Revenue [Line Items]      
Revenue 49,845 47,603 54,827
Infrastructure, Research & Engineering      
Disaggregation of Revenue [Line Items]      
Revenue 33,161 29,108 27,223
Petrochemical      
Disaggregation of Revenue [Line Items]      
Revenue 15,571 14,432 15,896
Other      
Disaggregation of Revenue [Line Items]      
Revenue 16,941 16,781 15,036
Operating segments      
Disaggregation of Revenue [Line Items]      
Revenue 743,157 716,730 698,488
Operating segments | North America      
Disaggregation of Revenue [Line Items]      
Revenue 593,527 579,330 573,336
Operating segments | North America | United States      
Disaggregation of Revenue [Line Items]      
Revenue 502,005 495,764 485,551
Operating segments | North America | Other Americas      
Disaggregation of Revenue [Line Items]      
Revenue 85,139 77,880 83,877
Operating segments | North America | Europe      
Disaggregation of Revenue [Line Items]      
Revenue 2,590 3,655 2,811
Operating segments | North America | Asia-Pacific      
Disaggregation of Revenue [Line Items]      
Revenue 3,793 2,031 1,097
Operating segments | North America | Oil & Gas      
Disaggregation of Revenue [Line Items]      
Revenue 376,333 379,221 356,763
Operating segments | North America | Aerospace & Defense      
Disaggregation of Revenue [Line Items]      
Revenue 63,111 56,000 61,475
Operating segments | North America | Industrials      
Disaggregation of Revenue [Line Items]      
Revenue 44,310 42,518 38,197
Operating segments | North America | Power Generation and Transmission      
Disaggregation of Revenue [Line Items]      
Revenue 27,035 23,598 31,197
Operating segments | North America | Other Process Industries      
Disaggregation of Revenue [Line Items]      
Revenue 32,353 33,035 40,778
Operating segments | North America | Infrastructure, Research & Engineering      
Disaggregation of Revenue [Line Items]      
Revenue 19,155 16,620 15,283
Operating segments | North America | Petrochemical      
Disaggregation of Revenue [Line Items]      
Revenue 14,437 13,216 15,360
Operating segments | North America | Other      
Disaggregation of Revenue [Line Items]      
Revenue 16,793 15,122 14,283
Operating segments | International      
Disaggregation of Revenue [Line Items]      
Revenue 135,969 124,414 112,425
Operating segments | International | United States      
Disaggregation of Revenue [Line Items]      
Revenue 1,607 934 910
Operating segments | International | Other Americas      
Disaggregation of Revenue [Line Items]      
Revenue 9,144 12,906 9,076
Operating segments | International | Europe      
Disaggregation of Revenue [Line Items]      
Revenue 120,052 105,934 99,714
Operating segments | International | Asia-Pacific      
Disaggregation of Revenue [Line Items]      
Revenue 5,166 4,640 2,725
Operating segments | International | Oil & Gas      
Disaggregation of Revenue [Line Items]      
Revenue 42,315 36,615 30,654
Operating segments | International | Aerospace & Defense      
Disaggregation of Revenue [Line Items]      
Revenue 23,785 20,711 18,763
Operating segments | International | Industrials      
Disaggregation of Revenue [Line Items]      
Revenue 25,498 26,292 23,703
Operating segments | International | Power Generation and Transmission      
Disaggregation of Revenue [Line Items]      
Revenue 7,629 6,609 8,304
Operating segments | International | Other Process Industries      
Disaggregation of Revenue [Line Items]      
Revenue 17,190 14,456 14,021
Operating segments | International | Infrastructure, Research & Engineering      
Disaggregation of Revenue [Line Items]      
Revenue 10,606 9,320 7,946
Operating segments | International | Petrochemical      
Disaggregation of Revenue [Line Items]      
Revenue 1,134 1,216 536
Operating segments | International | Other      
Disaggregation of Revenue [Line Items]      
Revenue 7,812 9,195 8,498
Operating segments | Products      
Disaggregation of Revenue [Line Items]      
Revenue 13,661 12,986 12,727
Operating segments | Products | United States      
Disaggregation of Revenue [Line Items]      
Revenue 5,868 5,956 6,495
Operating segments | Products | Other Americas      
Disaggregation of Revenue [Line Items]      
Revenue 1,777 850 406
Operating segments | Products | Europe      
Disaggregation of Revenue [Line Items]      
Revenue 2,655 1,927 1,896
Operating segments | Products | Asia-Pacific      
Disaggregation of Revenue [Line Items]      
Revenue 3,361 4,253 3,930
Operating segments | Products | Oil & Gas      
Disaggregation of Revenue [Line Items]      
Revenue 275 159 335
Operating segments | Products | Aerospace & Defense      
Disaggregation of Revenue [Line Items]      
Revenue 120 286 314
Operating segments | Products | Industrials      
Disaggregation of Revenue [Line Items]      
Revenue 1,857 1,773 2,083
Operating segments | Products | Power Generation and Transmission      
Disaggregation of Revenue [Line Items]      
Revenue 1,854 3,767 2,603
Operating segments | Products | Other Process Industries      
Disaggregation of Revenue [Line Items]      
Revenue 302 112 28
Operating segments | Products | Infrastructure, Research & Engineering      
Disaggregation of Revenue [Line Items]      
Revenue 3,400 3,168 3,994
Operating segments | Products | Petrochemical      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Operating segments | Products | Other      
Disaggregation of Revenue [Line Items]      
Revenue 5,853 3,721 3,370
Corp/Elim      
Disaggregation of Revenue [Line Items]      
Revenue (13,517) (11,257) (11,115)
Corp/Elim | United States      
Disaggregation of Revenue [Line Items]      
Revenue (2,535) (2,372) (3,083)
Corp/Elim | Other Americas      
Disaggregation of Revenue [Line Items]      
Revenue (6,047) (4,697) (4,105)
Corp/Elim | Europe      
Disaggregation of Revenue [Line Items]      
Revenue (4,118) (3,381) (3,502)
Corp/Elim | Asia-Pacific      
Disaggregation of Revenue [Line Items]      
Revenue (817) (807) (425)
Corp/Elim | Oil & Gas      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Corp/Elim | Aerospace & Defense      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Corp/Elim | Industrials      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Corp/Elim | Power Generation and Transmission      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Corp/Elim | Other Process Industries      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Corp/Elim | Infrastructure, Research & Engineering      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Corp/Elim | Petrochemical      
Disaggregation of Revenue [Line Items]      
Revenue 0 0 0
Corp/Elim | Other      
Disaggregation of Revenue [Line Items]      
Revenue $ (13,517) $ (11,257) $ (11,115)