XML 37 R27.htm IDEA: XBRL DOCUMENT v3.26.1
Revenues, Trade Accounts Receivable, Contract Assets and Contract Liabilities (Tables)
3 Months Ended
Mar. 31, 2026
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 nature, amount, timing and uncertainty of the Company’s revenue and cash flows.

 

   2026   2025 
   Three months ended 
   March 31, 
   2026   2025 
Fixed price contracts  $76,108   $52,974 
Product sales   172,904    169,314 
Total Revenues  $249,012   $222,288 
Schedule of Geographic Information

The following table presents revenues broken down by geographical location:

 

   2026   2025 
   Three months ended
March 31,
 
   2026   2025 
Colombia  $7,519   $6,414 
United States   237,140    212,454 
Panama   -    455 
Other   4,353    2,965 
Total Revenues  $249,012   $222,288 
Schedule of Revenues Distribution By End Market

The following table presents revenues broken down by market:

 

   2026   2025 
   Three months ended 
   March 31, 
   2026   2025 
Residential  $88,470   $88,929 
Commercial   160,542    133,359 
Total Revenues  $249,012   $222,288 
Schedule of Trade Accounts Receivable

Trade accounts receivable consists of the following:

 

   March 31,
2026
   December 31,
2025
 
Short-term trade accounts receivable  $269,227   $243,768 
Less: Allowance for credit losses   (4,847)   (4,320)
Total short-term trade accounts receivable   264,380    239,448 
Long term trade accounts   1,771    1,730 
Total trade accounts receivable  $266,151   $241,178 
Schedule of Changes in Allowance for Doubtful Accounts Receivable

The changes in the allowance for credit losses for the three months ended March 31, 2026, are:

 

   Three months
ended
March 31,
2026
 
Balance at beginning of period  $4,320 
Provisions for credit losses   1,088 
Deductions and write-offs, net of foreign currency adjustment   (561)
Balance at end of period  $4,847 
Schedule of Contract Assets and Liabilities

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

 

   March 31,
2026
   December 31,
2025
 
Contract assets — current  $29,301   $31,809 
Contract assets — non-current   25,009    20,506 
Contract liabilities — current   (161,005)   (149,442)
Contract liabilities — non-current   (1,632)   (1,988)
Net contract liability  $(108,327)  $(99,115)
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:

 

   March 31,
2026
   December 31,
2025
 
Unbilled contract receivables, gross  $6,806   $9,084 
Retainage   47,504    43,231 
Total contract assets   54,310    52,315 
Less: current portion   29,301    31,809 
Contract Assets – non-current  $25,009   $20,506 
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:

 

   March 31,
2026
   December 31,
2025
 
Billings in excess of costs  $111,804   $104,376 
Advances from customers on uncompleted contracts   50,833    47,054 
Total contract liabilities   162,637    151,430 
Less: current portion   161,005    149,442 
Contract liabilities – non-current  $1,632   $1,988