v3.26.1
Note 17 - (Loss) Earnings Per Share (Tables)
6 Months Ended
May 31, 2026
Notes Tables  
Schedule of Earnings Per Share, Basic, by Common Class, Including Two Class Method [Table Text Block]
  

For the Three Months Ended

  

For the Six Months Ended

 
  

May 31,

  

May 31,

 
  

2026

  

2025

  

2026

  

2025

 

Net (loss) income

 $(10,088) $2,427  $(9,287) $4,089 
                 

Weighted-average number of shares used in computing net (loss) income per share, basic

  22,686,895   22,668,546   22,677,477   22,628,270 

Net (loss) income per share - basic

 $(0.44) $0.11  $(0.41) $0.18 

Weighted-average number of shares used in computing net (loss) income per share, diluted

  22,686,895   23,951,297   22,677,477   24,021,948 

Net (loss) income per share - diluted

 $(0.44) $0.10  $(0.41) $0.17 
Schedule of Weighted Average Number of Shares [Table Text Block]
  

For the Three Months Ended

  

For the Six Months Ended

 
  

May 31,

  

May 31,

 
  

2025

  

2025

 

Weighted-average common shares outstanding- basic

  22,668,546   22,628,270 

Assumed conversion of:

        

Dilutive stock options

  588,289   659,644 

Dilutive RSUs

  694,462   734,034 

Weighted-average common share outstanding- diluted

  23,951,297   24,021,948 
Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]
  

For the Three Months Ended

  

For the Six Months Ended

 
  

May 31,

  

May 31,

 
  

2026

  

2025

  

2026

  

2025

 

Options

  1,083,835      1,083,835   - 

RSUs

  1,084,167   64,972   1,084,167   64,972 

Total

  2,168,002   64,972   2,168,002   64,972