v3.22.4
Revenue Disaggregation, Contract Assets and Contract liabilities (Tables)
12 Months Ended
Dec. 31, 2022
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]  
Schedule of Disaggregation by Revenue

The Company disaggregates its sales with customers by revenue recognition method for its only segment, as the Company believes these factors affect the nature, amount, timing, and uncertainty of the Company’s revenue and cash flows.

 

   2022   2021   2020 
   Years ended December 31, 
   2022   2021   2020 
Fixed price contracts  $98,299   $77,417   $103,423 
Product sales   618,271    419,368    273,184 
Total revenues  $716,570   $496,785   $376,607 
Schedule of Contract Assets and Liabilities

The table below presents the components of net contract assets (liabilities).

 

  

December 31,

2022

  

December 31,

2021

 
Contract assets — current  $12,610   $18,667 
Contract assets — non-current   8,875    11,853 
Contract liabilities — current   (49,601)   (45,213)
Contract liabilities — non-current   (11)   (78)
Net contract liabilities  $(28,127)  $(14,771)
Contract Assets [Member]  
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]  
Schedule of Contract Assets and Liabilities

The components of contract assets are presented in the table below.

 

  

December 31,

2022

  

December 31,

2021

 
Unbilled contract receivables, gross  $5,738   $8,174 
Retainage   15,747    22,346 
Total contract assets   21,485    30,520 
Less: current portion   12,610    18,667 
Contract assets – non-current  $8,875   $11,853 
Contract Liabilities [Member]  
Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]  
Schedule of Contract Assets and Liabilities

The components of contract liabilities are presented in the table below.

 

  

December 31,

2022

  

December 31,

2021

 
Billings in excess of costs  $14,724   $12,854 
Advances from customers on uncompleted contracts   34,888    32,437 
Total contract liabilities   49,612    45,291 
Less: current portion   49,601    45,213 
Contract liabilities – non-current  $11   $78