XML 36 R30.htm IDEA: XBRL DOCUMENT v3.24.2
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Disaggregation of Revenue [Line Items]        
Revenues $ 216,658 $ 175,858 $ 412,938 $ 334,959
Revenue, remaining performance obligation, percentage 100.00% 100.00% 100.00% 100.00%
Revenue recognized over time        
Disaggregation of Revenue [Line Items]        
Revenues $ 14,345 $ 10,932 $ 27,078 $ 20,669
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark        
Disaggregation of Revenue [Line Items]        
Revenue, remaining performance obligation, percentage 6.60% 6.20% 6.60% 6.20%
Revenue recognized at a point in time        
Disaggregation of Revenue [Line Items]        
Revenues $ 202,313 $ 164,926 $ 385,860 $ 314,290
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark        
Disaggregation of Revenue [Line Items]        
Revenue, remaining performance obligation, percentage 93.40% 93.80% 93.40% 93.80%
United States        
Disaggregation of Revenue [Line Items]        
Revenues $ 193,963 $ 157,863 $ 371,153 $ 296,449
Asia        
Disaggregation of Revenue [Line Items]        
Revenues 2,735 3,369 5,648 6,561
Canada        
Disaggregation of Revenue [Line Items]        
Revenues 3,015 3,024 5,193 6,506
Europe        
Disaggregation of Revenue [Line Items]        
Revenues 9,410 8,612 18,819 18,144
Mexico        
Disaggregation of Revenue [Line Items]        
Revenues 1,431 452 2,052 1,487
Middle East        
Disaggregation of Revenue [Line Items]        
Revenues 5,463 2,022 9,074 4,700
Other        
Disaggregation of Revenue [Line Items]        
Revenues $ 641 $ 516 $ 999 $ 1,112