| Schedule of computation of basic and diluted net income (loss) per share |
The computation of basic and diluted net income (loss) per share is determined using net income (loss) applicable to common shareholders as the numerator and the weighted average number of shares outstanding as the denominator as follows (in thousands, except per share amounts): | | | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended | | Nine Months Ended | | | July 31, | | July 31, | | | 2026 | | 2025 | | 2026 | | 2025 | | | Basic | | Diluted | | Basic | | Diluted | | Basic | | Diluted | | Basic | | Diluted | Net income (loss) | | $ | 2,314 | | $ | 2,314 | | $ | (3,693) | | $ | (3,693) | | $ | (3,526) | | $ | (3,526) | | $ | (12,076) | | $ | (12,076) | Undistributed earnings allocated to participating shares | | | (69) | | | (69) | | | — | | | — | | | — | | | — | | | — | | | — | Net income (loss) applicable to common shareholders | | $ | 2,245 | | $ | 2,245 | | $ | (3,693) | | $ | (3,693) | | $ | (3,526) | | $ | (3,526) | | $ | (12,076) | | $ | (12,076) | | | | | | | | | | | | | | | | | | | | | | | | | | Weighted average shares outstanding | | | 6,476 | | | 6,476 | | | 6,463 | | | 6,463 | | | 6,456 | | | 6,456 | | | 6,474 | | | 6,474 | Contingently issuable securities | | | — | | | 21 | | | — | | | — | | | — | | | — | | | — | | | — | | | | 6,476 | | | 6,497 | | | 6,463 | | | 6,463 | | | 6,456 | | | 6,456 | | | 6,474 | | | 6,474 | Income (loss) per share | | $ | 0.35 | | $ | 0.35 | | $ | (0.58) | | $ | (0.58) | | $ | (0.55) | | $ | (0.55) | | $ | (1.87) | | $ | (1.87) |
|