XML 26 R10.htm IDEA: XBRL DOCUMENT v3.20.4
Revenue (Notes)
12 Months Ended
Dec. 31, 2020
Revenue from Contract with Customer [Abstract]  
Revenue REVENUESales includes revenue from contracts with customers for designing, engineering, manufacturing and installation of solar racking systems and greenhouse structures; extraction systems; roof and foundation ventilation products; centralized mail systems and electronic package solutions; rain dispersion products and roofing accessories; expansion joints and structural bearings.
Refer to Note 20 "Segment Information" for additional information related to revenue recognized by timing of transfer of control by reportable segment.

Payment terms and conditions vary by contract, although terms generally include a requirement of payment within a range from 30 to 60 days, or in certain cases, up front deposits. In circumstances where the timing of revenue recognition differs from the timing of invoicing, the Company has determined that the Company's contracts generally do not include a significant financing component. Taxes collected from customers, which are subsequently remitted to governmental authorities, are excluded from sales.

As of December 31, 2020, the Company's remaining performance obligations are part of contracts that have an original expected duration of one year or less. Additionally, as of December 31, 2020 and 2019, there were no assets recognized related to incremental costs of obtaining a contract with a customer as the benefits of these costs are not expected to exceed one year.

Contract assets consist of costs in excess of billings. Contract liabilities consist of billings in excess of cost and unearned revenue, respectively. The following table presents the ending and beginning balances of costs in excess of billings, billings in excess of cost and unearned revenue, respectively, as of December 31, (in thousands):
202020192018
Costs in excess of billings$26,915 $20,607 $22,634 
Billings in excess of cost(34,702)(47,598)(17,857)
Unearned revenue(21,325)(15,389)(10,847)

Revenue recognized that was included in billings in excess of cost and unearned revenue at the beginning of the periods, respectively, during the years ended December 31, (in thousands):
202020192018
Revenue recognized in the period from:
Amounts included in billings in excess of cost
at the beginning of the period
$45,536 $17,371 $10,097 
Amounts included in unearned revenue
at the beginning of the period
$12,229 $10,090 $2,988 

At December 31, 2020, costs in excess of billings, billings in excess of cost, and unearned revenue included approximately $6.8 million, $12.4 million and $9.0 million, respectively, from acquisitions during the year ended December 31, 2020. The increase in contract liabilities as of December 31, 2019 compared to December 31, 2018 was primarily due to the timing of significant advanced and up-fronts payments in the Renewable Energy and Conservation segment near the end of December 31, 2019 from contracts with customers for which the performance obligations had not been satisfied.