v3.26.1
Note 4 - Revenue Recognition (Tables)
3 Months Ended
Apr. 30, 2026
Notes Tables  
Disaggregation of Revenue [Table Text Block]
  

Three Months Ended April 30,

 
  

2026

  

2025

 
  

Sales

  

% of Total

  

Sales

  

% of Total

 

Products

 $3,082   6% $3,640   8%
                 

Specialty Piping Systems and Coating

                

Revenue recognized under input method

  14,382   29%  12,060   26%

Revenue recognized under output method

  32,801   65%  31,047   66%

Total

 $50,265   100% $46,747   100%
Schedule of Assumptions for Long-Duration Contracts by Product and Guarantee [Table Text Block]
  

April 30, 2026

  

January 31, 2026

 

Costs incurred on uncompleted contracts

 $19,438  $17,562 

Estimated earnings

  12,759   12,721 

Earned revenue

  32,197   30,283 

Less billings to date

  28,958   27,784 

Costs in excess of billings, net

 $3,239  $2,499 

Balance sheet classification

        

Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts

 $4,117  $4,652 

Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts

  (878)  (2,153)

Costs in excess of billings, net

 $3,239  $2,499