XML 36 R25.htm IDEA: XBRL DOCUMENT
v3.25.3

Note 4 - Revenue Recognition (Tables) | 9 Months Ended
--- | ---
Oct. 31, 2025
Notes Tables |
Disaggregation of Revenue [Table Text Block] |
|  | Three Months Ended October 31, |  |  | Nine Months Ended October 31, |
|  | 2025 |  |  | 2024 |  |  | 2025 |  |  | 2024 |
|  | Sales |  |  | % of Total |  |  | Sales |  |  | % of Total |  |  | Sales |  |  | % of Total |  |  | Sales |  |  | % of Total |
Products |  | $ | 4,423 |  |  |  | 7 | % |  | $ | 3,622 |  |  |  | 8 | % |  | $ | 11,515 |  |  |  | 7 | % |  | $ | 9,670 |  |  |  | 8 | %
Specialty Piping Systems and Coating |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
Revenue recognized under input method |  |  | 15,120 |  |  |  | 25 | % |  |  | 12,268 |  |  |  | 30 | % |  |  | 40,144 |  |  |  | 26 | % |  |  | 35,020 |  |  |  | 31 | %
Revenue recognized under output method |  |  | 41,605 |  |  |  | 68 | % |  |  | 25,673 |  |  |  | 62 | % |  |  | 104,137 |  |  |  | 67 | % |  |  | 68,707 |  |  |  | 61 | %
Total |  | $ | 61,148 |  |  |  | 100 | % |  | $ | 41,563 |  |  |  | 100 | % |  | $ | 155,796 |  |  |  | 100 | % |  | $ | 113,397 |  |  |  | 100 | %
Schedule of Assumptions for Long-Duration Contracts by Product and Guarantee [Table Text Block] |
|  | October 31, 2025 |  |  | January 31, 2025 |
Costs incurred on uncompleted contracts |  | $ | 15,793 |  |  | $ | 11,621 |
Estimated earnings |  |  | 9,188 |  |  |  | 9,366 |
Earned revenue |  |  | 24,981 |  |  |  | 20,987 |
Less billings to date |  |  | 22,646 |  |  |  | 19,302 |
Costs in excess of billings, net |  | $ | 2,335 |  |  | $ | 1,685 |
Balance sheet classification |  |  |  |  |  |  |  |
Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts |  | $ | 4,084 |  |  | $ | 2,934 |
Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts |  |  | (1,749 | ) |  |  | (1,249 | )
Costs in excess of billings, net |  | $ | 2,335 |  |  | $ | 1,685 |

X
- Definition Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 5 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5 + Details
Name: | us-gaap_DisaggregationOfRevenueTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the underlying assumptions and percentages or rates used in determining the fair value of guarantee obligations for each type of long-duration contract. + References Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef -Topic 944 -SubTopic 40 -Name Accounting Standards Codification -Section 50 -Paragraph 6 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480081/944-40-50-6 Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef -Topic 944 -SubTopic 40 -Name Accounting Standards Codification -Section 50 -Paragraph 7 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480081/944-40-50-7 Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef -Topic 944 -SubTopic 20 -Name Accounting Standards Codification -Section 55 -Paragraph 15 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479808/944-20-55-15 + Details
Name: | us-gaap_ScheduleOfAssumptionsForLongDurationContractsByProductAndGuaranteeTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

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