Note 11 - Stock-based Compensation (Tables)
|
9 Months Ended |
Apr. 30, 2026 |
| Notes Tables |
|
| Share-Based Payment Arrangement, Option, Activity [Table Text Block] |
| | Number of Stock | | | Weighted Average | |
| | Options | | | Exercise Price | |
Balance, July 31, 2025 | | | 4,594,207 | | | $ | 2.71 | |
Exercised | | | (1,146,020 | ) | | | 2.49 | |
Forfeited | | | (12,875 | ) | | | 3.70 | |
Balance, April 30, 2026 | | | 3,435,312 | | | $ | 2.78 | |
|
| Cash Proceeds Received and Tax Benefit from Share-Based Payment Awards [Table Text Block] |
| | Three Months Ended April 30, | | | Nine Months Ended April 30, | |
| | 2026 | | | 2025 | | | 2026 | | | 2025 | |
Number of Options Exercised on a Cash Basis | | | 2,100 | | | | 1,250 | | | | 353,917 | | | | 49,963 | |
Number of Options Exercised on a Non-Cash Basis | | | 102,200 | | | | 28,500 | | | | 792,103 | | | | 217,014 | |
Total Number of Options Exercised | | | 104,300 | | | | 29,750 | | | | 1,146,020 | | | | 266,977 | |
| | | | | | | | | | | | | | | | |
Number of Shares Issued on a Cash Basis | | | 2,100 | | | | 1,250 | | | | 353,917 | | | | 49,963 | |
Number of Shares Issued on a Non-Cash Basis | | | 83,614 | | | | 14,178 | | | | 623,570 | | | | 124,567 | |
Total Number of Shares Issued Upon Exercise of Options | | | 85,714 | | | | 15,428 | | | | 977,487 | | | | 174,530 | |
| | | | | | | | | | | | | | | | |
Cash Received from Exercise of Stock Options | | $ | 11 | | | $ | 5 | | | $ | 922 | | | $ | 134 | |
Total Intrinsic Value of Options Exercised | | $ | 1,379 | | | $ | 101 | | | $ | 10,671 | | | $ | 1,211 | |
|
| Disclosure of Share-Based Compensation Arrangements by Share-Based Payment Award [Table Text Block] |
| | Number of Unvested Stock Options | | | Weighted Average Grant-Date Fair Value | |
Balance, July 31, 2025 | | | 359,619 | | | $ | 3.80 | |
Vested | | | (153,967 | ) | | | 3.96 | |
Forfeited | | | (875 | ) | | | 3.62 | |
Balance, April 30, 2026 | | | 204,777 | | | $ | 3.69 | |
|
| Share-Based Payment Arrangement, Option, Exercise Price Range [Table Text Block] |
| | Options Outstanding | | | Options Exercisable | |
| | | | | | | | | | Weighted | | | | | | | | | | | Weighted | |
| | | | | | | | | | Average | | | | | | | | | | | Average | |
Range of | | | | | | Weighted | | | Remaining | | | | | | | Weighted | | | Remaining | |
Exercise | | Outstanding at | | | Average | | | Contractual | | | Exercisable at | | | Average | | | Contractual | |
Prices | | April 30, 2026 | | | Exercise Price | | | Term (Years) | | | April 30, 2026 | | | Exercise Price | | | Term (Years) | |
$0.91 to $0.99 | | | 847,750 | | | | 0.92 | | | | 4.03 | | | | 847,750 | | | | 0.92 | | | | 4.03 | |
$1.00 to $1.99 | | | 475,000 | | | | 1.10 | | | | 4.21 | | | | 475,000 | | | | 1.10 | | | | 4.21 | |
$2.00 to $2.99 | | | 434,649 | | | | 2.28 | | | | 5.17 | | | | 434,649 | | | | 2.28 | | | | 5.17 | |
$3.00 to $3.99 | | | 1,209,255 | | | | 3.63 | | | | 6.37 | | | | 1,159,132 | | | | 3.62 | | | | 6.33 | |
$4.00 to $4.99 | | | 14,000 | | | | 4.36 | | | | 8.48 | | | | 9,000 | | | | 4.44 | | | | 8.23 | |
$5.00 to $5.99 | | | 313,768 | | | | 5.49 | | | | 8.23 | | | | 219,963 | | | | 5.48 | | | | 8.23 | |
$6.00 to $6.99 | | | 64,558 | | | | 6.51 | | | | 8.09 | | | | 58,455 | | | | 6.54 | | | | 8.06 | |
$7.00 to $7.99 | | | 10,000 | | | | 7.63 | | | | 7.73 | | | | 10,000 | | | | 7.63 | | | | 7.73 | |
$8.00 to $8.68 | | | 66,332 | | | | 8.68 | | | | 9.25 | | | | 16,586 | | | | 8.68 | | | | 9.25 | |
| | | 3,435,312 | | | $ | 2.78 | | | | 5.61 | | | | 3,230,535 | | | $ | 2.58 | | | | 5.44 | |
|
| Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block] |
| | Number of RSUs | | | Weighted Average Grant-Date Fair Value | |
| | | | | | | | |
| | | | | | | | |
Balance, July 31, 2025 | | | 1,203,197 | | | $ | 6.60 | |
Granted | | | 196,502 | | | | 12.51 | |
Forfeited | | | (3,474 | ) | | | 11.98 | |
Vested | | | (23,480 | ) | | | 7.33 | |
Balance, April 30, 2026 | | | 1,372,745 | | | $ | 7.42 | |
|
| Share-Based Payment Arrangement, Cost by Plan [Table Text Block] |
| | Three Months Ended | | | Nine Months Ended | |
| | April 30, | | | April 30, | |
| | 2026 | | | 2025 | | | 2026 | | | 2025 | |
Stock-Based Compensation for Consultants | | | | | | | | | | | | | | | | |
Common stock issued to consultants | | $ | - | | | $ | 18 | | | $ | - | | | $ | 106 | |
Amortization of stock option expenses | | | 4 | | | | 24 | | | | 24 | | | | 121 | |
Amortization of RSU expenses | | | 198 | | | | 1 | | | | 278 | | | | 33 | |
| | | 202 | | | | 43 | | | | 302 | | | | 260 | |
Stock-Based Compensation for Management | | | | | | | | | | | | | | | | |
Amortization of stock option expenses | | | 76 | | | | 115 | | | | 367 | | | | 494 | |
Amortization of RSU and PRSU expenses | | | 1,326 | | | | 957 | | | | 4,048 | | | | 2,902 | |
| | | 1,402 | | | | 1,072 | | | | 4,415 | | | | 3,396 | |
Stock-Based Compensation for Employees | | | | | | | | | | | | | | | | |
Amortization of stock option expenses | | | 28 | | | | 151 | | | | 167 | | | | 858 | |
Amortization of RSU expenses | | | 586 | | | | 72 | | | | 1,157 | | | | 199 | |
| | | 614 | | | | 223 | | | | 1,324 | | | | 1,057 | |
| | $ | 2,218 | | | $ | 1,338 | | | $ | 6,041 | | | $ | 4,713 | |
|