XML 38 R28.htm IDEA: XBRL DOCUMENT v3.21.2
Revenue from Contracts with Customers (Tables)
6 Months Ended
Jun. 30, 2021
Revenue from Contract with Customer [Abstract]  
Summary of Disaggregation of Revenue
The following table presents our revenue disaggregated by line of business and reportable segment for the three months ended June 30, 2021:
U.S. RegionsU.S. FederalCanadaNon-Solar DGAll OtherTotal
Project revenue$92,601 $77,075 $7,307 $9,241 $10,031 $196,255 
O&M revenue5,303 11,742 — 2,462 89 19,596 
Energy assets10,046 1,371 1,571 23,852 101 36,941 
Integrated-PV— — — — 10,721 10,721 
Other1,520 12 1,996 16 6,863 10,407 
Total revenues$109,470 $90,200 $10,874 $35,571 $27,805 $273,920 
The following table presents our revenue disaggregated by line of business and reportable segment for the three months ended June 30, 2020:
U.S. RegionsU.S. FederalCanadaNon-Solar DGAll OtherTotal
Project revenue$76,040 $72,220 $6,167 $3,004 $2,499 $159,930 
O&M revenue4,283 10,755 17 2,120 133 17,308 
Energy assets8,080 1,505 1,344 17,820 — 28,749 
Integrated-PV— — — — 8,530 8,530 
Other1,171 11 1,507 185 5,645 8,519 
Total revenues$89,574 $84,491 $9,035 $23,129 $16,807 $223,036 
The following table presents our revenue disaggregated by line of business and reportable segment for the six months ended June 30, 2021:
U.S. RegionsU.S. FederalCanadaNon-Solar DGAll OtherTotal
Project revenue$163,759 $167,164 $16,308 $13,895 $15,822 $376,948 
O&M revenue9,613 23,182 26 5,099 160 38,080 
Energy assets18,856 2,035 2,318 46,783 236 70,228 
Integrated-PV— — — — 19,875 19,875 
Other2,515 33 3,865 162 14,416 20,991 
Total revenues$194,743 $192,414 $22,517 $65,939 $50,509 $526,122 
The following table presents our revenue disaggregated by line of business and reportable segment for the six months ended June 30, 2020:
U.S. RegionsU.S. FederalCanadaNon-Solar DGAll OtherTotal
Project revenue$147,533 $128,334 $15,031 $5,375 $8,086 $304,359 
O&M revenue8,635 22,381 26 4,135 193 35,370 
Energy assets16,934 2,224 2,007 35,806 — 56,971 
Integrated-PV— — — — 19,999 19,999 
Other2,312 297 3,363 537 12,241 18,750 
Total revenues$175,414 $153,236 $20,427 $45,853 $40,519 $435,449 
The following table presents information related to our revenue recognized over time:
Three Months EndedSix Months Ended
June 30, 2021June 30, 2020June 30, 2021June 30, 2020
Percentage of revenue recognized over time94%94%94%93%
The remainder is for products and services transferred at a point in time, at which point revenue is recognized.
We attribute revenues to customers based on the location of the customer. The following table presents information related to our revenues by geographic area:
Three Months Ended June 30,Six Months Ended June 30,
2021202020212020
United States$252,536 $211,218 $486,545 $407,157 
Canada9,973 8,458 20,826 19,011 
Other11,411 3,360 18,751 9,281 
Total revenues$273,920 $223,036 $526,122 $435,449 
Summary of Contract with Customer, Asset and Liability
The following tables provide information about receivables, contract assets and contract liabilities from contracts with customers:
 June 30, 2021December 31, 2020
Accounts receivable, net$115,462 $125,010 
Accounts receivable retainage, net$36,485 $30,189 
Contract Assets:
Costs and estimated earnings in excess of billings $195,027 $185,960 
Contract Liabilities:
Billings in excess of cost and estimated earnings$26,561 $33,984 
Billings in excess of cost and estimated earnings, non-current (1)
6,082 6,631 
Total contract liabilities$32,643 $40,615 
June 30, 2020December 31, 2019
Accounts receivable, net$86,017 $95,863 
Accounts receivable retainage, net$19,119 $16,976 
Contract Assets:
Costs and estimated earnings in excess of billings$195,391 $202,243 
Contract Liabilities:
Billings in excess of cost and estimated earnings$34,896 $26,618 
Billings in excess of cost and estimated earnings, non-current (1)
5,035 5,560 
Total contract liabilities$39,931 $32,178 
(1) Performance obligations that are expected to be completed beyond the next twelve months and are included in other liabilities in the condensed consolidated balance sheets.