XML 36 R30.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Disaggregation of Revenue [Line Items]    
Revenues $ 196,280 $ 159,101
Revenue, remaining performance obligation, percentage 100.00% 100.00%
Revenue recognized over time    
Disaggregation of Revenue [Line Items]    
Revenues $ 12,733 $ 9,738
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark    
Disaggregation of Revenue [Line Items]    
Revenue, remaining performance obligation, percentage 6.50% 6.10%
Revenue recognized at a point in time    
Disaggregation of Revenue [Line Items]    
Revenues $ 183,547 $ 149,363
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark    
Disaggregation of Revenue [Line Items]    
Revenue, remaining performance obligation, percentage 93.50% 93.90%
United States    
Disaggregation of Revenue [Line Items]    
Revenues $ 177,190 $ 138,586
Asia    
Disaggregation of Revenue [Line Items]    
Revenues 2,913 3,192
Canada    
Disaggregation of Revenue [Line Items]    
Revenues 2,178 3,482
Europe    
Disaggregation of Revenue [Line Items]    
Revenues 9,409 9,532
Mexico    
Disaggregation of Revenue [Line Items]    
Revenues 621 1,035
Middle East    
Disaggregation of Revenue [Line Items]    
Revenues 3,611 2,678
Other    
Disaggregation of Revenue [Line Items]    
Revenues $ 358 $ 596