v3.26.1
Revenue from Contracts with Customers
6 Months Ended
Jun. 30, 2026
Revenue from Contract with Customer [Abstract]  
Revenue from Contracts with Customers Revenue from Contracts with Customers
Disaggregated Revenue
The Company disaggregates revenue from contracts with customers by revenue type for both its ESS and PCS segments, as it believes this best depicts how the nature, amount, timing and uncertainty of its revenue and cash flows are affected by economic factors.
The following tables present revenue from contracts with customers:
20262025
ESSPCSTotalESSPCSTotal
(in thousands)
Three Months Ended June 30,
Project and other manufacturing contracts revenue$5,395 $4,698 $10,093 $29,102 $4,037 $33,139 
Sale of products7,508 2,986 10,494 12,986 12,849 25,835 
Product revenue(a)
12,903 7,684 20,587 42,088 16,886 58,974 
Service revenue53,815 35,257 89,072 56,722 35,610 92,332 
Spare parts revenue30,942 30,221 61,163 26,737 25,414 52,151 
Total revenue$97,660 $73,162 $170,822 $125,547 $77,910 $203,457 
Six Months Ended June 30,
Project and other manufacturing contracts revenue$14,416 $7,969 $22,385 $48,276 $9,480 $57,756 
Sale of products15,651 15,344 30,995 29,923 26,043 55,966 
Product revenue(a)
30,067 23,313 53,380 78,199 35,523 113,722 
Service revenue97,968 63,113 161,081 98,120 77,720 175,840 
Spare parts revenue70,315 57,367 127,682 56,769 55,556 112,325 
Total revenue$198,350 $143,793 $342,143 $233,088 $168,799 $401,887 
(a).Product revenue includes related party revenue.
The following table presents the timing of revenue recognition:
20262025
ESSPCSTotalESSPCSTotal
(in thousands)
Three Months Ended June 30,
Transferred overtime$65,013 $39,955 $104,968 $89,340 $39,647 $128,987 
Transferred at point in time32,647 33,207 65,854 36,207 38,263 74,470 
Total revenue$97,660 $73,162 $170,822 $125,547 $77,910 $203,457 
Six Months Ended June 30,
Transferred overtime$125,033 $71,082 $196,115 $162,326 $87,200 $249,526 
Transferred at point in time73,317 72,711 146,028 70,762 81,599 152,361 
Total revenue$198,350 $143,793 $342,143 $233,088 $168,799 $401,887 
Contract assets consisted of the following:
June 30,
2026
(in thousands)
Balance as of January 1, 2026$114,918 
Additions140,722 
Transfers to accounts receivable(151,018)
Balance as of June 30, 2026
$104,622 
Contract liabilities consisted of the following:
June 30,
2026
(in thousands)
Balance as of January 1, 2026$35,249 
Additions88,333 
Revenue recognized(80,802)
Balance as of June 30, 2026
$42,780 
Revenue recognized during the six months ended June 30, 2026 and 2025 that was included in the contract liabilities balance at the beginning of such periods was $20.9 million and $33.7 million, respectively.
Transaction Price Allocated to the Remaining Performance Obligations
As of June 30, 2026, the aggregate amount of the transaction price allocated to the unsatisfied or partially unsatisfied performance obligations was $414.4 million. As of June 30, 2026, the Company expected to recognize substantially all of the revenue from the total remaining performance obligations over the next 12 months. Contract modifications could affect both the timing to complete as well as the amount to be received as the Company fulfills the related remaining performance obligations.