XML 36 R27.htm IDEA: XBRL DOCUMENT v3.23.1
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Disaggregation of Revenue [Line Items]    
Revenues $ 159,101 $ 132,402
Revenue, remaining performance obligation, percentage 100.00% 100.00%
Revenue recognized over time    
Disaggregation of Revenue [Line Items]    
Revenues $ 9,738 $ 7,708
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark    
Disaggregation of Revenue [Line Items]    
Revenue, remaining performance obligation, percentage 6.10% 5.80%
Revenue recognized at a point in time    
Disaggregation of Revenue [Line Items]    
Revenues $ 149,363 $ 124,694
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark    
Disaggregation of Revenue [Line Items]    
Revenue, remaining performance obligation, percentage 93.90% 94.20%
United States    
Disaggregation of Revenue [Line Items]    
Revenues $ 138,586 $ 112,755
Asia    
Disaggregation of Revenue [Line Items]    
Revenues 3,192 4,197
Canada    
Disaggregation of Revenue [Line Items]    
Revenues 3,482 2,963
Europe    
Disaggregation of Revenue [Line Items]    
Revenues 9,532 8,232
Mexico    
Disaggregation of Revenue [Line Items]    
Revenues 1,035 576
Middle East    
Disaggregation of Revenue [Line Items]    
Revenues 2,678 1,659
Other    
Disaggregation of Revenue [Line Items]    
Revenues $ 596 $ 2,020