XML 39 R30.htm IDEA: XBRL DOCUMENT v3.23.2
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2023
Jun. 30, 2022
Jun. 30, 2023
Jun. 30, 2022
Disaggregation of Revenue [Line Items]        
Revenues $ 175,858 $ 137,833 $ 334,959 $ 270,235
Revenue, remaining performance obligation, percentage 100.00% 100.00% 100.00% 100.00%
Revenue recognized over time        
Disaggregation of Revenue [Line Items]        
Revenues $ 10,932 $ 8,522 $ 20,669 $ 16,230
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark        
Disaggregation of Revenue [Line Items]        
Revenue, remaining performance obligation, percentage 6.20% 6.20% 6.20% 6.00%
Revenue recognized at a point in time        
Disaggregation of Revenue [Line Items]        
Revenues $ 164,926 $ 129,311 $ 314,290 $ 254,005
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark        
Disaggregation of Revenue [Line Items]        
Revenue, remaining performance obligation, percentage 93.80% 93.80% 93.80% 94.00%
United States        
Disaggregation of Revenue [Line Items]        
Revenues $ 157,863 $ 120,823 $ 296,449 $ 233,577
Asia        
Disaggregation of Revenue [Line Items]        
Revenues 3,369 2,930 6,561 7,128
Canada        
Disaggregation of Revenue [Line Items]        
Revenues 3,024 2,945 6,506 5,908
Europe        
Disaggregation of Revenue [Line Items]        
Revenues 8,612 7,121 18,144 15,353
Mexico        
Disaggregation of Revenue [Line Items]        
Revenues 452 809 1,487 1,385
Middle East        
Disaggregation of Revenue [Line Items]        
Revenues 2,022 2,124 4,700 3,783
Other        
Disaggregation of Revenue [Line Items]        
Revenues $ 516 $ 1,081 $ 1,112 $ 3,101