v3.25.2
Revenue
3 Months Ended
Jun. 30, 2025
Revenue from Contract with Customer [Abstract]  
Revenue Revenue
Disaggregation of Revenue
We disaggregate our revenue from contracts with customers by geographic location as well as revenue recognized at a point-in-time and revenues recognized over time, as we believe these best depict the nature of our sales and the regions in which those sales are earned and managed.
Revenue recognized at a point-in-time occurs based on when control transfers to the customer and is generally related to our product sales. Revenue recognized over time occurs on our projects where engineering, manufactured materials, or installation services, or a combination of the three, are required. We recognize revenue related to such projects in a systematic way that reflects the transfer of goods or services, or a combination thereof, to the customer.
Disaggregation of revenues from contracts with customers for the three months ended June 30, 2025 and 2024 are as follows:
Three months ended June 30, 2025Three months ended June 30, 2024
Revenues recognized at point in timeRevenues recognized over timeTotalRevenues recognized at point in timeRevenues recognized over timeTotal
United States and Latin America$37,793 $12,251 $50,044 $44,408 $15,576 $59,984 
Canada23,388 11,766 35,154 21,608 16,737 38,345 
Europe, Middle East and Africa12,734 4,352 17,086 4,613 3,229 7,842 
Asia-Pacific4,383 2,231 6,614 6,137 2,818 8,955 
Total revenues$78,298 $30,600 $108,898 $76,766 $38,360 $115,126 

Performance Obligations
    We have elected the practical expedient to disclose only the value of performance obligations for contracts with an original expected length of one year or more, which was $27,114 as of June 30, 2025. We expect to recognize the remaining revenues associated with unsatisfied or partially satisfied performance obligations within the next 12 months.
Contract Assets and Liabilities
    As of June 30, 2025 and March 31, 2025, contract assets were $16,440 and $19,188, respectively. As of June 30, 2025 and March 31, 2025, contract liabilities were $19,331 and $19,604, respectively. We typically recognize revenue associated with our contract liabilities within 12 months.