XML 22 R11.htm IDEA: XBRL DOCUMENT
v3.24.1.1.u2

Note 4 - Revenue Recognition | 3 Months Ended
--- | ---
Apr. 30, 2024
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) | Systems and Coating - which include all bundled products in which Perma-Pipe 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 exist:
| 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 months ended April 30, 2024 are as follows:
|  | Three Months Ended April 30, |
|  | 2024 |  |  | 2023 |
|  | Sales |  |  | % of Total |  |  | Sales |  |  | % of Total |
Products |  | $ | 3,253 |  |  |  | 9 | % |  | $ | 2,842 |  |  |  | 9 | %
Specialty Piping Systems and Coating |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
Revenue recognized under input method |  |  | 10,140 |  |  |  | 30 | % |  |  | 10,338 |  |  |  | 35 | %
Revenue recognized under output method |  |  | 20,928 |  |  |  | 61 | % |  |  | 16,477 |  |  |  | 56 | %
Total |  | $ | 34,321 |  |  |  | 100 | % |  | $ | 29,657 |  |  |  | 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 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. 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. Some of the Company’s operating entities invoice and collect milestones or other contractual obligations prior to the transfer of goods and services, but do not recognize revenue until the performance obligations are satisfied under the methods discussed above. Contract modifications that occur prior to the start of the manufacturing process will supersede the original contract and revenue is recognized using the modified contract value. Contract modifications that occur during the manufacturing process (changes in scope of work, job performance, material costs, and/or final contract settlements) are recognized in the period in which the revisions are known. Provisions are made for estimated losses on uncompleted contracts in the contract liabilities account in the period in which such losses are determined. The transaction price associated with the Company's contracts with customers are generally determined based on the fixed amount of consideration as specified in a contract. This may also include variable consideration in certain instances where it is considered probable that a significant reversal of cumulative revenue recognized will not occur. As a result, the amount of consideration ultimately received from the customer can fluctuate due to the variability of future events stated in a contract. Therefore, the aggregate amount of the transaction price includes the fixed consideration contained in a contract that is generally not subject to change and excludes sales and value added taxes, or amounts collected on behalf of third parties, along with any variable consideration. The total transaction price is then allocated to the performance obligations which is eventually recognized as revenue based on the project type and the method that is used to measure the transfer of promised goods and services to customers. Additionally, transaction prices relating to cost-plus contracts are determined by applying the applicable profit margin to costs incurred on contracts, whereas transaction prices relating to fixed price contracts are determined on a lump-sum basis. Further, standard payment terms are generally net 30 to 60 days, which is customer specific. 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. For additional information, see Note 3 in the Notes to Consolidated Financial Statements included in the Company's Annual Report on Form 10-K for the year ended January 31, 2024 as filed with the SEC on April 26, 2024, and Unbilled accounts receivable, as further described below. The following table shows the reconciliation of costs in excess of billings and billings in excess of costs:
|  | April 30, 2024 |  |  | January 31, 2024 |
Costs incurred on uncompleted contracts |  | $ | 15,980 |  |  | $ | 21,912 |
Estimated earnings |  |  | 10,441 |  |  |  | 11,270 |
Earned revenue |  |  | 26,421 |  |  |  | 33,182 |
Less billings to date |  |  | 25,010 |  |  |  | 30,580 |
Costs in excess of billings, net |  | $ | 1,411 |  |  | $ | 2,602 |
Balance sheet classification |  |  |  |  |  |  |  |
Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts |  | $ | 2,302 |  |  | $ | 3,097 |
Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts |  |  | (891 | ) |  |  | (495 | )
Costs in excess of billings, net |  | $ | 1,411 |  |  | $ | 2,602 |
The Company anticipates that substantially all costs incurred on uncompleted contracts as of April 30, 2024 will be billed and collected within one year. Unbilled accounts receivable The Company has recorded $15.7 million and $16.6 million of unbilled accounts receivable on the consolidated balance sheets as of April 30, 2024 and January 31, 2024, 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 April 30, 2024 will be billed within one year. Practical expedients Costs to obtain a contract are not considered to be incremental or material, and project duration generally does not span more than one year. Accordingly, the Company applies the practical expedient for these types of costs and as such, are expensed in the period incurred. As a result of the Company's contracts having a duration of less than one year, a practical expedient was applied regarding disclosure of the aggregate amount and future timing of performance obligations that are unsatisfied or partially satisfied as of the end of the reporting period.

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 9 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9 Reference 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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