| Schedule of Sales by Major Product Line |
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, | | | 2026 | | 2025 | | 2026 | | 2025 | | Rail Products | | $ | 34,569 | | | $ | 47,570 | | | $ | 75,848 | | | $ | 76,889 | | | Global Friction Management | | 24,134 | | | 20,431 | | | 45,841 | | | 35,994 | | | Technology Services and Solutions | | 13,309 | | | 7,972 | | | 25,099 | | | 17,105 | | | Rail, Technologies, and Services | | 72,012 | | | 75,973 | | | 146,788 | | | 129,988 | | | Precast Concrete Products | | 47,123 | | | 46,174 | | | 80,168 | | | 74,378 | | | Steel Products | | 19,415 | | | 21,411 | | | 32,738 | | | 36,984 | | | Infrastructure Solutions | | 66,538 | | | 67,585 | | | 112,906 | | | 111,362 | | | Total net sales | | $ | 138,550 | | | $ | 143,558 | | | $ | 259,694 | | | $ | 241,350 | |
|
| Schedule of Disaggregation of Revenue |
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 Services | | Infrastructure Solutions | | Total | | Point in time | | $ | 57,994 | | | $ | 40,843 | | | $ | 98,837 | | | Over time | | 14,018 | | | 25,695 | | | 39,713 | | | Total net sales | | $ | 72,012 | | | $ | 66,538 | | | $ | 138,550 | | | | | | | | | | | Three Months Ended June 30, 2025 | | | Rail, Technologies, and Services | | Infrastructure Solutions | | Total | | Point in time | | $ | 66,173 | | | $ | 41,185 | | | $ | 107,358 | | | Over time | | 9,800 | | | 26,400 | | | 36,200 | | | Total net sales | | $ | 75,973 | | | $ | 67,585 | | | $ | 143,558 | |
| | | | | | | | | | | | | | | | | | | | | | | Six Months Ended June 30, 2026 | | | Rail, Technologies, and Services | | Infrastructure Solutions | | Total | | Point in time | | $ | 121,259 | | | $ | 72,055 | | | $ | 193,314 | | | Over time | | 25,529 | | | 40,851 | | | 66,380 | | | Total net sales | | $ | 146,788 | | | $ | 112,906 | | | $ | 259,694 | |
| | | | | | | | | | | | | | | | | | | | | | | Six Months Ended June 30, 2025 | | | Rail, Technologies, and Services | | Infrastructure Solutions | | Total | | Point in time | | $ | 111,098 | | | $ | 69,812 | | | $ | 180,910 | | | Over time | | 18,890 | | | 41,550 | | | 60,440 | | | Total net sales | | $ | 129,988 | | | $ | 111,362 | | | $ | 241,350 | |
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, | | | 2026 | | 2025 | | 2026 | | 2025 | | Over time input method | | $ | 11,320 | | | $ | 6,884 | | | 8.2 | % | | 4.8 | % | | Over time output method | | 28,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, | | | | | 2026 | | 2025 | | 2026 | | | | 2025 | | | | Over time input method | | $ | 21,173 | | | $ | 14,627 | | | 8.2 | % | | | | 6.1 | % | | | | Over time output method | | 45,207 | | | 45,813 | | | 17.4 | | | | | 19.0 | | | | | Total over time sales | | $ | 66,380 | | | $ | 60,440 | | | 25.6 | % | | | | 25.1 | % | | |
|
| Schedule of Contract with Customer, Contract Asset, Contract Liability |
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 | |
|