XML 36 R26.htm IDEA: XBRL DOCUMENT v3.25.2
Revenues, Trade Accounts Receivable, Contract Assets and Contract Liabilities (Tables)
6 Months Ended
Jun. 30, 2025
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.

 

   2025   2024   2025   2024 
   Three months ended   Six months ended 
   June 30,   June 30, 
   2025   2024   2025   2024 
Fixed price contracts  $61,228   $31,422   $114,202   $64,054 
Product sales   194,318    188,232    363,632    348,227 
Total Revenues  $255,546   $219,654   $477,834   $412,281 
Schedule of Geographic Information

The following table presents revenues broken down by geographical location:

 

   2025   2024   2025   2024 
   Three months ended
June 30,
   Six months ended
June 30,
 
   2025   2024   2025   2024 
Colombia  $6,621   $5,830   $13,035   $11,069 
United States   242,347    209,698    454,801    393,701 
Panama   54    434    509    528 
Other   6,524    3,692    9,489    6,983 
Total Revenues  $255,546   $219,654   $477,834   $412,281 
Schedule of Revenues Distribution By End Market

The following table presents revenues broken down by market:

 

   2025   2024   2025   2024 
   Three months ended   Six months ended 
   June 30,   June 30, 
   2025   2024   2025   2024 
Residential  $109,598   $95,749   $198,527   $168,903 
Commercial   145,948    123,905    279,307    243,378 
Total Revenues  $255,546   $219,654   $477,834   $412,281 
Schedule of Trade Accounts Receivable

Trade accounts receivable consists of the following:

 

   June 30,
2025
   December 31,
2024
 
Trade accounts receivable   230,327    205,730 
Less: Allowance for credit losses   (2,738)   (2,815)
Total  $227,589   $202,915 
Schedule of Changes in Allowance for Doubtful Accounts Receivable

The changes in the allowance for credit losses for the six months ended June 30, 2025, are:

 

   Six months
ended
June 30,
2025
 
Balance at beginning of period  $2,815 
Provisions for credit losses   987 
Deductions and write-offs, net of foreign currency adjustment   (1,064)
Balance at end of period  $2,738 
Schedule of Contract Assets and Liabilities

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

 

   June 30,
2025
   December 31,
2024
 
Contract assets — current  $30,768   $22,920 
Contract assets — non-current   12,405    15,208 
Contract liabilities — current   (128,306)   (97,979)
Contract liabilities — non-current   (140)   - 
Net contract liability  $(85,273)  $(59,851)
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:

 

   June 30,
2025
   December 31,
2024
 
Unbilled contract receivables, gross  $5,807   $6,584 
Retainage   37,366    31,544 
Total contract assets   43,173    38,128 
Less: current portion   30,768    22,920 
Contract Assets – non-current  $12,405   $15,208 
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:

 

   June 30,
2025
   December 31,
2024
 
Billings in excess of costs  $81,324   $58,708 
Advances from customers on uncompleted contracts   47,122    39,271 
Total contract liabilities   128,446    97,979 
Less: current portion   128,306    97,979 
Contract liabilities – non-current  $140   $-