Revenue Recognition
Disaggregation of revenue
Based on Topic 606 provisions, the Company disaggregates its revenue from contracts with customers based on product type. Revenue by product type is disaggregated between system solutions and components. System solutions are contracts under which the Company provides multiple products typically in connection
with the design and specification of an entire EBOS system. Components represents sales of individual components.
The following table presents the Company’s revenue disaggregated by product type (in thousands): | | | | | | | | | | | | | | | | | |
| Year Ended December 31, |
| 2025 | | 2024 | | 2023 |
| System solutions | $ | 374,189 | | | $ | 306,145 | | | $ | 398,384 | |
| Components | 101,142 | | | 93,063 | | | 90,555 | |
| Total revenue | $ | 475,331 | | | $ | 399,208 | | | $ | 488,939 | |
Contract Balances
The timing of revenue recognition, billings and cash collections results in billed accounts receivable, unbilled receivables, retainage, and deferred revenue on the consolidated balance sheets, recorded on a contract-by-contract basis at the end of each reporting period.
The Company’s contract balances consist of the following (in thousands):
| | | | | | | | | | | | | | | | | |
| | | December 31, |
| Location on the Consolidated Balance Sheets | | 2025 | | 2024 |
| Billed accounts receivable | Accounts receivable, net | | $ | 119,521 | | | $ | 70,882 | |
| Retainage | Accounts receivable, net | | $ | 9,272 | | | $ | 7,299 | |
| Contract assets | Other assets | | $ | — | | | $ | 4,251 | |
| Contract liabilities | Accrued expenses and other | | $ | 1,811 | | | $ | — | |
| Unbilled receivables | Unbilled receivables | | $ | 22,133 | | | $ | 20,834 | |
| Deferred revenue | Deferred revenue | | $ | 37,031 | | | $ | 18,737 | |
| Accrued rebates | Accrued expenses and other | | $ | 4,851 | | | $ | 3,058 | |
The majority of the Company’s contract amounts are billed as work progresses in accordance with agreed-upon contractual terms, which generally coincide with the shipment of one or more phases of the project. Billing sometimes occurs subsequent to revenue recognition, resulting in unbilled receivables. The changes in unbilled receivables relate to fluctuations in the timing of billings for the Company’s revenue recognized over-time.
Certain contracts contain retainage provisions. Retainage represents a contract asset for the portion of the contract price earned by the Company for work performed but held for payment by the customer as a form of security until the Company obtains specified milestones. The Company typically bills retainage amounts as work is performed. Retainage provisions are not considered a significant financing component because they are intended to protect the customer in the event that some or all of the obligations under the contract are not completed. The changes in retainage relate to fluctuations in the timing of retainage billings and achievement of specified milestones.
For certain contracts, we provide customers with incentives upon entering into multi-year agreements or volume specific commitments. Any up-front incentives to customers that are not made in exchange for distinct goods and services are capitalized as a contract asset within other assets, which are subsequently recognized as a reduction to revenue over the term of the customer arrangements.
The Company also receives deferred revenue in the form of customer deposits. The customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. The changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. During the year ended December 31, 2025, $13.5 million, or 72% of deferred revenue recorded as of December 31, 2024, was recognized in revenue. During the year ended December 31, 2024, $20.6 million, or 93% of deferred revenue recorded as of December 31, 2023, was recognized in revenue.
Accrued rebates are recorded based on sales volumes from agreed upon rebate terms. Rebates are typically paid within
three to four months.