XML 24 R11.htm IDEA: XBRL DOCUMENT
v3.25.2

Note 4 - Revenue Recognition | 6 Months Ended
--- | ---
Jul. 31, 2025
Notes to Financial Statements |
Revenue from Contract with Customer [Text Block] | Note 4 - Revenue recognition The Company accounts for its revenues under Accounting Standards Codification ("ASC") 606, Revenue from Contracts with Customers. Revenue from contracts with customers The Company defines a contract as an agreement that has approval and commitment from both parties, defined rights and identifiable payment terms, which ensures the contract has commercial substance and that collectability is reasonably assured. The Company’s standard revenue transactions are classified into two main categories:
| 1) | Specialty Piping Systems and Coating - which include all bundled products in which the Company engineers, and manufactures pre-insulated specialty piping systems mainly relating to the district heating and cooling and oil & gas markets.
| 2) | Products - which include cables, leak detection products, heat trace products, material/goods not bundled with piping or flowline systems, and field services not bundled into a project contract.
In accordance with ASC 606-10-25-27 through 29, the Company recognizes specialty piping and coating systems revenue over time as the manufacturing process progresses because one of the following conditions exists:
| 1) | the customer owns the material that is being coated, so the customer controls the asset and thus the work-in-process; or
| 2) | the customer controls the work-in-process due to the custom nature of the pre-insulated, fabricated system being manufactured, which has no alternative future use, and there is a right to payment for work performed to date plus profit margin.
Products revenue is recognized when goods are shipped or services are performed (ASC 606-10-25-30). A breakdown of the Company's revenues by revenue class for the three and six months ended July 31, 2025 and 2024 are as follows:
|  | Three Months Ended July 31, |  |  | Six Months Ended July 31, |
|  | 2025 |  |  | 2024 |  |  | 2025 |  |  | 2024 |
|  | Sales |  |  | % of Total |  |  | Sales |  |  | % of Total |  |  | Sales |  |  | % of Total |  |  | Sales |  |  | % of Total |
Products |  | $ | 3,451 |  |  |  | 7 | % |  | $ | 2,795 |  |  |  | 7 | % |  | $ | 7,091 |  |  |  | 8 | % |  | $ | 6,048 |  |  |  | 8 | %
Specialty Piping Systems and Coating |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
Revenue recognized under input method |  |  | 12,965 |  |  |  | 27 | % |  |  | 12,613 |  |  |  | 34 | % |  |  | 25,025 |  |  |  | 26 | % |  |  | 22,752 |  |  |  | 32 | %
Revenue recognized under output method |  |  | 31,486 |  |  |  | 66 | % |  |  | 22,105 |  |  |  | 59 | % |  |  | 62,532 |  |  |  | 66 | % |  |  | 43,034 |  |  |  | 60 | %
Total |  | $ | 47,902 |  |  |  | 100 | % |  | $ | 37,513 |  |  |  | 100 | % |  | $ | 94,648 |  |  |  | 100 | % |  | $ | 71,834 |  |  |  | 100 | %
The input method as noted in ASC 606-10-55-20 is used by certain operating entities to measure revenue by the costs incurred to date relative to the estimated costs to satisfy the contract over time. Generally, these contracts are considered a single performance obligation satisfied over time and due to the custom nature of the goods and services, the "over time" method is the most faithful depiction of the Company’s performance as it measures the value of the goods and services transferred to the customer. Costs include all material, labor, and other direct costs incurred to satisfy the performance obligations of the contract. Revenue recognition begins when projects costs are incurred. The output method as noted in ASC 606-10-55-17 is used by all other operating entities to measure revenue by the direct measurement of the outputs produced relative to the remaining goods promised under the contract. Due to the types of end customers, generally these contracts require formal inspection protocols or specific export documentation for units produced, or produced and shipped, therefore, the output method is the most faithful depiction of the Company’s performance under the contract. Depending on the conditions of the contract, revenue may be recognized based on units produced, inspected and held by the Company prior to shipment or on units produced, inspected and shipped. Contract assets and liabilities Contract assets represent revenue recognized in excess of amounts billed for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Contract liabilities represent billings in excess of costs for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Both customer billings and the satisfaction (or partial satisfaction) of the performance obligation(s) occur throughout the manufacturing process and impact the period end balances in these accounts. In addition, contract assets include receivables or amounts that are billable beyond the passage of time. The following table shows the reconciliation of costs in excess of billings and billings in excess of costs:
|  | July 31, 2025 |  |  | January 31, 2025 |
Costs incurred on uncompleted contracts |  | $ | 16,079 |  |  | $ | 11,621 |
Estimated earnings |  |  | 10,842 |  |  |  | 9,366 |
Earned revenue |  |  | 26,921 |  |  |  | 20,987 |
Less billings to date |  |  | 24,993 |  |  |  | 19,302 |
Costs in excess of billings, net |  | $ | 1,928 |  |  | $ | 1,685 |
Balance sheet classification |  |  |  |  |  |  |  |
Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts |  | $ | 3,569 |  |  | $ | 2,934 |
Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts |  |  | (1,641 | ) |  |  | (1,249 | )
Costs in excess of billings, net |  | $ | 1,928 |  |  | $ | 1,685 |
The Company anticipates that substantially all costs incurred on uncompleted contracts as of July 31, 2025 will be billed and collected within one year. Unbilled accounts receivable The Company has recorded $27.7 million and $18.9 million of unbilled accounts receivable on the consolidated balance sheets as of July 31, 2025 and January 31, 2025, respectively, from revenues generated by certain of its subsidiaries. The Company has fulfilled all performance obligations and has recorded revenue under the respective contracts. The deliverables under these contracts have been accepted by the customer and billings will be made once the customer takes possession of or arranges shipping for the products. The Company anticipates that substantially all of the amounts included in unbilled accounts receivable as of July 31, 2025 will be billed within one year.

X
- References No definition available. + Details
Name: | us-gaap_DisclosureTextBlockAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 7 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 9 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 10 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 15 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-15 Reference 5: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12 Reference 7: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (e) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12 Reference 10: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 13 -Subparagraph (b)(2) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13 Reference 11: http://www.xbrl.org/2003/role/disclosureRef -Name Accounting Standards Codification -Topic 606 -Publisher FASB -URI https://asc.fasb.org/606/tableOfContent + Details
Name: | us-gaap_RevenueFromContractWithCustomerTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration