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