v3.26.1
Revenue
6 Months Ended
Jun. 30, 2026
Revenue from Contract with Customer [Abstract]  
Revenue Revenue
The following table summarizes the Company’s sales by major product and service line for the periods presented:

Three Months Ended
June 30,
Six Months Ended
June 30,
2026202520262025
Rail Products$34,569 $47,570 $75,848 $76,889 
Global Friction Management24,134 20,431 45,841 35,994 
Technology Services and Solutions13,309 7,972 25,099 17,105 
Rail, Technologies, and Services72,012 75,973 146,788 129,988 
Precast Concrete Products47,123 46,174 80,168 74,378 
Steel Products19,415 21,411 32,738 36,984 
Infrastructure Solutions66,538 67,585 112,906 111,362 
Total net sales$138,550 $143,558 $259,694 $241,350 

The majority of the Company’s revenue is from products transferred and services rendered to customers at a point in time. The Company recognizes revenue at the point in time at which the customer obtains control of the product or service, which is generally when the product title passes to the customer upon shipment or the service has been rendered to the customer. In limited cases, title does not transfer and revenue is not recognized until the customer has received the products at a designated physical location.

Net sales by the timing of the transfer of goods and services were as follows for the periods presented:

Three Months Ended June 30, 2026
Rail, Technologies, and ServicesInfrastructure SolutionsTotal
Point in time$57,994 $40,843 $98,837 
Over time14,018 25,695 39,713 
Total net sales$72,012 $66,538 $138,550 
Three Months Ended June 30, 2025
Rail, Technologies, and ServicesInfrastructure SolutionsTotal
Point in time$66,173 $41,185 $107,358 
Over time9,800 26,400 36,200 
Total net sales$75,973 $67,585 $143,558 
Six Months Ended June 30, 2026
Rail, Technologies, and ServicesInfrastructure SolutionsTotal
Point in time$121,259 $72,055 $193,314 
Over time25,529 40,851 66,380 
Total net sales$146,788 $112,906 $259,694 
Six Months Ended June 30, 2025
Rail, Technologies, and ServicesInfrastructure SolutionsTotal
Point in time$111,098 $69,812 $180,910 
Over time18,890 41,550 60,440 
Total net sales$129,988 $111,362 $241,350 

The Company’s performance obligations under long-term agreements with its customers are generally satisfied over time. Over time revenue is primarily comprised of transit infrastructure and technology services and solutions projects within the Rail segment, precast concrete buildings within the Precast Concrete Products division in the Infrastructure segment, and long-term bridge projects within the Steel Products division in the Infrastructure segment. Revenue under these long-term agreements is generally recognized over time
using an input measure based upon the proportion of actual costs incurred to estimated total project costs or an output method, specifically units delivered, based upon certain customer acceptance and delivery requirements. The use of an input or output measure to recognize revenue is determined based on what is most appropriate given the nature of the work performed and terms of the associated agreement.

Accounting for these long-term agreements involves the use of various techniques to estimate total revenues and costs. The Company estimates profit on these long-term agreements as the difference between total estimated revenues and expected costs to complete a contract and recognizes that profit over the life of the contract. Contract estimates are based on various assumptions to project the outcome of future events that may span several years. These assumptions include, among other things, labor productivity, cost and availability of materials, and timing of funding by customers. The nature of these long-term agreements may give rise to several types of variable consideration, such as claims and awards. Contract estimates may include additional revenue for submitted contract modifications, including at times unapproved change orders, if there exists an enforceable right to the modification, the amount can be reasonably estimated, and its realization is probable. These estimates are based on historical collection experience, anticipated performance, and the Company’s best judgment at that time. These amounts are generally included in the contract’s transaction price and are allocated over the remaining performance obligations. As a result of management's reviews of contract-related estimates, the Company makes adjustments to contract estimates that impact our revenue and profit totals. Changes in estimates are primarily attributed to updated considerations, including economic conditions and historic contract patterns, resulting in changes to anticipated revenue from existing contracts. There were no such changes in actual or expected values during the three and six months ended June 30, 2026. During the three and six months ended June 30, 2025, reductions to net sales stemming from changes in actual and expected values of certain commercial contracts and settlements of such contracts were $1,647. The Company’s estimates related to these long-term agreements are further described in “Note 3. Revenue” of the Notes to the Company’s Consolidated Financial Statements contained in its Annual Report on Form 10-K for the year ended December 31, 2025.

Revenue recognized over time was as follows for the periods presented:

Three Months Ended
June 30,
Percentage of Total Net Sales
Three Months Ended June 30,
2026202520262025
Over time input method$11,320 $6,884 8.2 %4.8 %
Over time output method28,393 29,316 20.5 20.4 
Total over time sales$39,713 $36,200 28.7 %25.2 %

Six Months Ended
June 30,
Percentage of Total Net Sales
Six Months Ended June 30,
2026202520262025
Over time input method$21,173 $14,627 8.2 %6.1 %
Over time output method45,207 45,813 17.4 19.0 
Total over time sales$66,380 $60,440 25.6 %25.1 %

The timing of revenue recognition, billings, and cash collections results in billed receivables, costs in excess of billings (included in “Contract assets - net”), and billings in excess of costs (contract liabilities), included in “Deferred revenue” within the Condensed Consolidated Balance Sheets.

The following table sets forth the Company’s contract assets:

Contract Assets
Balance as of December 31, 2025$6,395 
Revenue recognized but not yet billed
1,754 
Transfers from contract asset balance to accounts receivable (4,373)
Balance as of June 30, 2026$3,776 

The following table sets forth the Company’s contract liabilities:
Contract Liabilities
Balance as of December 31, 2025$973 
Revenue recognized from contract liabilities(687)
Increase in billings in excess of cost, excluding revenue recognized 1,443 
Balance as of June 30, 2026
$1,729 

The Company has established policies regarding allowance for credit losses associated with contract assets, which includes standalone reserve assessments for its long term, complex contracts as needed as well as detailed regular review and updates to contract margins, progress, and value. A standard reserve threshold is applied to contract assets related to short term, less complex contracts. Management also regularly reviews collection patterns and future expected collections and makes necessary revisions to allowance for credit losses related to contract assets.

As of June 30, 2026, the Company had approximately $246,113 of remaining performance obligations, which is also referred to as backlog. Approximately 5.8% of the June 30, 2026 backlog was related to projects that are anticipated to extend beyond June 30, 2027.