Condensed Consolidated Statements of Changes in Stockholders' Equity (Unaudited) - USD ($)
|
Common Stock [Member] |
Additional Paid-in Capital [Member] |
Treasury Stock, Common [Member] |
Retained Earnings [Member] |
AOCI Attributable to Parent [Member] |
Total |
Balance (in shares) at Nov. 30, 2023 |
24,168,014
|
|
|
|
|
|
Balance at Nov. 30, 2023 |
$ 24,000
|
$ 130,426,000
|
$ (17,500,000)
|
$ (69,575,000)
|
$ (1,056,000)
|
$ 42,319,000
|
Balance (in shares) at Nov. 30, 2023 |
|
|
(2,165,987)
|
|
|
|
Stock-based compensation |
$ 0
|
1,796,000
|
$ 0
|
0
|
0
|
1,796,000
|
Issuance of common stock pursuant to exercise of stock options (in shares) |
207,432
|
|
0
|
|
|
|
Issuance of common stock pursuant to exercise of stock options |
$ 0
|
128,000
|
$ 0
|
0
|
0
|
128,000
|
Issuance of common stock pursuant to vesting of restricted stock units (in shares) |
589,341
|
|
0
|
|
|
|
Issuance of common stock pursuant to vesting of restricted stock units |
$ 0
|
(800,000)
|
$ 0
|
0
|
0
|
(800,000)
|
Repurchase of common stock (in shares) |
0
|
|
(21,905)
|
|
|
|
Repurchase of common stock |
$ 0
|
0
|
$ (253,000)
|
0
|
0
|
(253,000)
|
Net income for the period |
0
|
0
|
0
|
2,094,000
|
0
|
2,094,000
|
Foreign exchange translation adjustment |
$ 0
|
0
|
0
|
0
|
29,000
|
29,000
|
Balance (in shares) at May. 31, 2024 |
24,964,787
|
|
|
|
|
|
Balance at May. 31, 2024 |
$ 24,000
|
131,550,000
|
$ (17,753,000)
|
(67,481,000)
|
(1,027,000)
|
45,313,000
|
Balance (in shares) at May. 31, 2024 |
|
|
(2,187,892)
|
|
|
|
Balance (in shares) at Feb. 29, 2024 |
24,375,754
|
|
|
|
|
|
Balance at Feb. 29, 2024 |
$ 24,000
|
131,374,000
|
$ (17,500,000)
|
(69,558,000)
|
(1,171,000)
|
43,169,000
|
Balance (in shares) at Feb. 29, 2024 |
|
|
(2,165,987)
|
|
|
|
Stock-based compensation |
$ 0
|
858,000
|
$ 0
|
0
|
0
|
858,000
|
Issuance of common stock pursuant to exercise of stock options (in shares) |
39,465
|
|
0
|
|
|
|
Issuance of common stock pursuant to exercise of stock options |
$ 0
|
118,000
|
$ 0
|
0
|
0
|
118,000
|
Issuance of common stock pursuant to vesting of restricted stock units (in shares) |
549,568
|
|
0
|
|
|
|
Issuance of common stock pursuant to vesting of restricted stock units |
$ 0
|
(800,000)
|
$ 0
|
0
|
0
|
(800,000)
|
Repurchase of common stock (in shares) |
0
|
|
(21,905)
|
|
|
|
Repurchase of common stock |
$ 0
|
0
|
$ (253,000)
|
0
|
0
|
(253,000)
|
Net income for the period |
0
|
0
|
0
|
2,077,000
|
0
|
2,077,000
|
Foreign exchange translation adjustment |
$ 0
|
0
|
0
|
0
|
144,000
|
144,000
|
Balance (in shares) at May. 31, 2024 |
24,964,787
|
|
|
|
|
|
Balance at May. 31, 2024 |
$ 24,000
|
131,550,000
|
$ (17,753,000)
|
(67,481,000)
|
(1,027,000)
|
45,313,000
|
Balance (in shares) at May. 31, 2024 |
|
|
(2,187,892)
|
|
|
|
Balance (in shares) at Feb. 29, 2024 |
24,375,754
|
|
|
|
|
|
Balance at Feb. 29, 2024 |
$ 24,000
|
131,374,000
|
$ (17,500,000)
|
(69,558,000)
|
(1,171,000)
|
$ 43,169,000
|
Balance (in shares) at Feb. 29, 2024 |
|
|
(2,165,987)
|
|
|
|
Repurchase of common stock (in shares) |
|
|
|
|
|
(353,157)
|
Repurchase of common stock |
|
|
|
|
|
$ (3,807,931)
|
Balance (in shares) at May. 31, 2025 |
25,197,613
|
|
|
|
|
|
Balance at May. 31, 2025 |
$ 25,000
|
134,739,000
|
$ (21,308,000)
|
(52,694,000)
|
(626,000)
|
60,136,000
|
Balance (in shares) at May. 31, 2025 |
|
|
(2,519,144)
|
|
|
|
Balance (in shares) at Nov. 30, 2024 |
25,010,976
|
|
|
|
|
|
Balance at Nov. 30, 2024 |
$ 25,000
|
133,029,000
|
$ (21,253,000)
|
(56,783,000)
|
(649,000)
|
$ 54,369,000
|
Balance (in shares) at Nov. 30, 2024 |
|
|
(2,515,217)
|
|
|
(2,515,217)
|
Stock-based compensation |
$ 0
|
1,562,000
|
$ 0
|
0
|
0
|
$ 1,562,000
|
Issuance of common stock pursuant to exercise of stock options (in shares) |
87,271
|
|
0
|
|
|
115,050
|
Issuance of common stock pursuant to exercise of stock options |
$ 0
|
234,000
|
$ 0
|
0
|
0
|
$ 234,000
|
Issuance of common stock pursuant to vesting of restricted stock units (in shares) |
99,366
|
|
0
|
|
|
|
Issuance of common stock pursuant to vesting of restricted stock units |
$ 0
|
(86,000)
|
$ 0
|
0
|
0
|
(86,000)
|
Repurchase of common stock (in shares) |
0
|
|
(3,927)
|
|
|
|
Repurchase of common stock |
$ 0
|
0
|
$ (55,000)
|
0
|
0
|
(55,000)
|
Net income for the period |
0
|
0
|
0
|
4,089,000
|
0
|
4,089,000
|
Unrealized gain on marketable securities |
0
|
0
|
0
|
0
|
77,000
|
77,000
|
Foreign exchange translation adjustment |
$ 0
|
0
|
0
|
0
|
(54,000)
|
(54,000)
|
Balance (in shares) at May. 31, 2025 |
25,197,613
|
|
|
|
|
|
Balance at May. 31, 2025 |
$ 25,000
|
134,739,000
|
$ (21,308,000)
|
(52,694,000)
|
(626,000)
|
60,136,000
|
Balance (in shares) at May. 31, 2025 |
|
|
(2,519,144)
|
|
|
|
Balance (in shares) at Feb. 28, 2025 |
25,182,452
|
|
|
|
|
|
Balance at Feb. 28, 2025 |
$ 25,000
|
133,895,000
|
$ (21,253,000)
|
(55,121,000)
|
(719,000)
|
$ 56,827,000
|
Balance (in shares) at Feb. 28, 2025 |
|
|
(2,515,217)
|
|
|
|
Repurchase of common stock (in shares) |
|
|
|
|
|
(3,927)
|
Repurchase of common stock |
|
|
|
|
|
$ (54,940)
|
Balance at Mar. 31, 2025 |
|
|
|
|
|
$ 60,136,000
|
Balance (in shares) at Mar. 31, 2025 |
|
|
|
|
|
(2,519,144)
|
Balance (in shares) at Feb. 28, 2025 |
25,182,452
|
|
|
|
|
|
Balance at Feb. 28, 2025 |
$ 25,000
|
133,895,000
|
$ (21,253,000)
|
(55,121,000)
|
(719,000)
|
$ 56,827,000
|
Balance (in shares) at Feb. 28, 2025 |
|
|
(2,515,217)
|
|
|
|
Stock-based compensation |
$ 0
|
722,000
|
$ 0
|
0
|
0
|
722,000
|
Issuance of common stock pursuant to exercise of stock options (in shares) |
12,720
|
|
0
|
|
|
|
Issuance of common stock pursuant to exercise of stock options |
$ 0
|
141,000
|
$ 0
|
0
|
0
|
141,000
|
Issuance of common stock pursuant to vesting of restricted stock units (in shares) |
2,441
|
|
0
|
|
|
|
Issuance of common stock pursuant to vesting of restricted stock units |
$ 0
|
(19,000)
|
$ 0
|
0
|
0
|
(19,000)
|
Repurchase of common stock (in shares) |
0
|
|
(3,927)
|
|
|
|
Repurchase of common stock |
$ 0
|
0
|
$ (55,000)
|
0
|
0
|
(55,000)
|
Net income for the period |
0
|
0
|
0
|
2,427,000
|
0
|
2,427,000
|
Unrealized gain on marketable securities |
0
|
0
|
0
|
0
|
17,000
|
17,000
|
Foreign exchange translation adjustment |
$ 0
|
0
|
0
|
0
|
76,000
|
76,000
|
Balance (in shares) at May. 31, 2025 |
25,197,613
|
|
|
|
|
|
Balance at May. 31, 2025 |
$ 25,000
|
$ 134,739,000
|
$ (21,308,000)
|
$ (52,694,000)
|
$ (626,000)
|
$ 60,136,000
|
Balance (in shares) at May. 31, 2025 |
|
|
(2,519,144)
|
|
|
|