Share-based compensation (Tables)
|
6 Months Ended |
Jun. 30, 2026 |
| Share-Based Payment Arrangements [Abstract] |
|
| Schedule of Expense Associated With Each Component |
Share-based compensation expense associated with each component is as follows for the three and six months ended June 30: | | | | | | | | | | | | | | | | | | | | | | | | | Three months ended June 30, | | Six months ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | $ | | $ | | $ | | $ | | Stock options | 535 | | | 718 | | | 991 | | | 953 | | | DSUs | 286 | | | 246 | | | 575 | | | 483 | | | RSUs | 1,483 | | | 750 | | | 1,972 | | | 1,043 | | | PSUs | 139 | | | — | | | 174 | | | — | | | ESPP | 13 | | | 19 | | | 28 | | | 43 | | | 2,456 | | | 1,733 | | | 3,740 | | | 2,522 | |
The following table presents share-based compensation expense by function for the three and six months ended June 30:
| | | | | | | | | | | | | | | | | | | | | | | | | Three months ended June 30, | | Six months ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | $ | | $ | | $ | | $ | | Cost of revenue | 154 | | | 150 | | | 244 | | | 164 | | | General and administrative | 1,304 | | | 1,096 | | | 1,946 | | | 1,595 | | | Sales and marketing | 672 | | | 73 | | | 997 | | | 154 | | | Research and development | 326 | | | 414 | | | 553 | | | 609 | | | 2,456 | | | 1,733 | | | 3,740 | | | 2,522 | |
|
| Schedule of Changes in Stock Options |
The changes in the number of stock options during the six months ended June 30, 2026 and 2025 were as follows: | | | | | | | | | | | | | | | | | | | | | | | | | 2026 | | 2025 | | Number of options | | Weighted average exercise price | | Number of options | | Weighted average exercise price | | # | | C$ | | # | | C$ | | Options outstanding – January 1 | 1,019,930 | | | 33.78 | | | 827,642 | | | 34.11 | | | Options granted | — | | | — | | | 330,727 | | | 43.21 | | | Options forfeited | (52,562) | | | 49.28 | | | (101,284) | | | 53.90 | | | Options exercised | (93,327) | | | 1.01 | | | (15,339) | | | 27.83 | | | Options expired | (11,957) | | | 54.82 | | | (9,444) | | | 56.14 | | | | | | | | | | Options outstanding – June 30 | 862,084 | | | 36.09 | | | 1,032,302 | | | 34.98 | | Options exercisable – June 30 | 557,997 | | | 31.18 | | | 537,377 | | | 22.87 | |
|
| Schedule of Number and Weighted Average Remaining Contractual Life of Stock Options Outstanding and Exercisable |
There were no options granted during the six months ended June 30, 2026; the weighted average fair value of share options granted during the six months ended June 30, 2025 was estimated at the date of grant using the Black-Scholes option pricing model using the following inputs:
| | | | | | | | | | | | | | | 2026 | | 2025 | | C$ | | C$ | | Weighted average stock price valuation | $ | — | | | $ | 43.21 | | | Weighted average exercise price | $ | — | | | $ | 43.21 | | | Risk-free interest rate | — | % | | 2.62 | % | | Expected life in years | nil | | 4.5 | | Expected dividend yield | — | % | | — | % | | Volatility | — | % | | 52 | % | | Weighted average fair value of options issued | $ | — | | | $ | 19.55 | |
The following table is a summary of the Company’s stock options outstanding as at June 30, 2026: | | | | | | | | | | | | | | | | | | | | | | | | | | | | Options outstanding | | Options exercisable | | Exercise price range | | Number outstanding | | Weighted average remaining contractual life (years) | | Exercise price range | | Number exercisable | | C$ | | # | | # | | C$ | | # | 0.0001 - 1.09 | | 142,052 | | | 0.24 | | 0.0001 - 1.09 | | 142,052 | | | | | | | | | | | 8.86 - 11.06 | | 18,500 | | | 4.72 | | 8.86 - 11.06 | | 18,500 | | 15.79 - 16.00 | | 83,628 | | | 2.32 | | 15.79 - 16.00 | | 83,628 | | 26.43 - 60.00 | | 572,014 | | | 3.46 | | 26.43 - 60.00 | | 284,389 | | 60.01 - 95.12 | | 45,890 | | | 2.84 | | 60.01 - 95.12 | | 29,428 | | | | 862,084 | | | 2.81 | | | | 557,997 | |
The following table is a summary of the Company’s stock options outstanding as at June 30, 2025: | | | | | | | | | | | | | | | | | | | | | | | | | | | | Options outstanding | | Options exercisable | | Exercise price range | | Number outstanding | | Weighted average remaining contractual life (years) | | Exercise price range | | Number exercisable | | C$ | | # | | # | | C$ | | # | 0.0001 - 1.09 | | 234,120 | | | 1.23 | | 0.0001 - 1.09 | | 234,120 | | | | | | | | | | | 8.86 - 11.06 | | 18,500 | | | 5.72 | | 8.86 - 11.06 | | 18,500 | | 15.79 - 16.00 | | 87,401 | | | 4.27 | | 15.79 - 16.00 | | 87,401 | | 26.43 - 60.00 | | 619,670 | | | 4.46 | | 26.43 - 60.00 | | 169,088 | | 60.01 - 95.12 | | 72,611 | | | 3.75 | | 60.01 - 95.12 | | 28,268 | | | | 1,032,302 | | | 3.68 | | | | 537,377 | |
|
| Schedule of Stock Options Outstanding and Exercisable by Range of Exercise Prices |
The following table is a summary of the Company’s stock options outstanding as at June 30, 2026: | | | | | | | | | | | | | | | | | | | | | | | | | | | | Options outstanding | | Options exercisable | | Exercise price range | | Number outstanding | | Weighted average remaining contractual life (years) | | Exercise price range | | Number exercisable | | C$ | | # | | # | | C$ | | # | 0.0001 - 1.09 | | 142,052 | | | 0.24 | | 0.0001 - 1.09 | | 142,052 | | | | | | | | | | | 8.86 - 11.06 | | 18,500 | | | 4.72 | | 8.86 - 11.06 | | 18,500 | | 15.79 - 16.00 | | 83,628 | | | 2.32 | | 15.79 - 16.00 | | 83,628 | | 26.43 - 60.00 | | 572,014 | | | 3.46 | | 26.43 - 60.00 | | 284,389 | | 60.01 - 95.12 | | 45,890 | | | 2.84 | | 60.01 - 95.12 | | 29,428 | | | | 862,084 | | | 2.81 | | | | 557,997 | |
The following table is a summary of the Company’s stock options outstanding as at June 30, 2025: | | | | | | | | | | | | | | | | | | | | | | | | | | | | Options outstanding | | Options exercisable | | Exercise price range | | Number outstanding | | Weighted average remaining contractual life (years) | | Exercise price range | | Number exercisable | | C$ | | # | | # | | C$ | | # | 0.0001 - 1.09 | | 234,120 | | | 1.23 | | 0.0001 - 1.09 | | 234,120 | | | | | | | | | | | 8.86 - 11.06 | | 18,500 | | | 5.72 | | 8.86 - 11.06 | | 18,500 | | 15.79 - 16.00 | | 87,401 | | | 4.27 | | 15.79 - 16.00 | | 87,401 | | 26.43 - 60.00 | | 619,670 | | | 4.46 | | 26.43 - 60.00 | | 169,088 | | 60.01 - 95.12 | | 72,611 | | | 3.75 | | 60.01 - 95.12 | | 28,268 | | | | 1,032,302 | | | 3.68 | | | | 537,377 | |
|
| Schedule of Number of DSUs and RSUs Granted |
The following table presents information on the Company’s DSUs for the years presented: | | | | | | | # | | | | | | | | | | | DSUs – December 31, 2025 | 173,592 | | Granted (at C$24.06 - C$30.43 per unit) | 12,792 | | | | | | DSUs - June 30, 2026 | 186,384 | |
RSUs
The following table presents information on the Company’s RSUs for the years presented: | | | | | | | # | | | | | | | | | RSUs – December 31, 2025 | 218,306 | | Granted (at C$23.50 - C$25.00 per unit) | 786,620 | | Released (at C$37.04 - $77.20 per unit) | (53,160) | | Forfeited (at C$24.35 - $77.20 per unit) | (26,492) | | RSUs - June 30, 2026 | 925,274 | |
PSUs
The following table presents information on the Company’s PSUs for the years presented:
| | | | | | | | | | | | | | | # | PSUs – December 31, 2025 | — | | Granted (at C$25.69 per unit) | 59,210 | | | | | | PSUs - June 30, 2026 | 59,210 | |
|