Share-Based Payment Arrangement [Text Block] | 5. Stock-based compensation includes expense charges for all stock-based awards to employees and directors. These awards include stock options, restricted stock, restricted stock units and performance stock units. Stock-based compensation expense related to internal labor is capitalized to software and patent costs based on direct labor hours charged to capitalized software and patent costs. Determining Fair Value Stock Options The Company estimates the fair value of stock options on the date of grant (measurement date) using the Black-Scholes option pricing model. The Company recognizes the fair value of stock option awards on a straight-line basis over the service period of the award. There were no stock options granted during the six June 30, 2023 six June 30, 2022 Restricted Stock Awards The fair value of restricted stock awards ("RSA") that vest upon meeting a service condition is based on the fair market value of the Company’s common stock on the date of the grant (measurement date) and is recognized on a straight-line basis over the service period of the award, which is generally three four one three Restricted Stock Units The fair value of restricted stock unit (“RSU”) awards that vest upon meeting a service condition is based on the fair market value of the Company’s common stock on the date of the grant (measurement date) and is recognized on a straight-line basis over the service period of the award, which is generally three four Performance Stock Units The fair value of performance stock unit (“PSU”) awards that vest upon meeting a service condition and a performance condition, such as the Company exceeding a future annual recurring revenue target, is determined based on the probability of achievement of the performance criteria as of each reporting date (measurement dates). The probability of achievement is subject to judgment, and could change from period to period, impacting the amount of expense to be recognized. The Company recognizes the fair value of the award, after adjusting for any changes in the probability of achievement, on a straight-line basis over the service period of the award, which is generally three The fair value of PSU awards that vest upon meeting a service condition and a market condition, such as the Company exceeding shareholder returns as compared to an index of peer companies, is determined on the date of grant (measurement date) using the Monte Carlo valuation model. The Company recognizes the fair value of the award on a straight-line basis over the service period of the award, which is generally three The following inputs are used in the Monte Carlo valuation model to estimate the fair value: Stock Price. Expected Volatility. Risk-Free Interest Rate. Monte Carlo valuation inputs: Three Months Ended June 30, Six Months Ended June 30, 2023 2022 2023 2022 Stock price $ — $ — $ 22.37 $ 32.02 Expected volatility — — 74.7 % 82.8 % Risk-free interest rate — — 4.3 % 1.8 % Stock-Based Compensation Three Months Ended June 30, Six Months Ended June 30, 2023 2022 2023 2022 Stock-based compensation: Cost of revenue $ 318 $ 265 $ 556 $ 466 Sales and marketing 563 1,149 1,324 1,893 Research, development and engineering 675 643 1,611 1,150 General and administrative 1,022 1,217 1,963 2,233 Stock-based compensation expense 2,578 3,274 5,454 5,742 Capitalized to software and patent costs 14 44 27 80 Total stock-based compensation $ 2,592 $ 3,318 $ 5,481 $ 5,822 The following table sets forth total unrecognized compensation costs related to non-vested stock-based awards granted under the Company’s stock incentive plan: June 30, December 31, 2023 2022 Total unrecognized compensation costs $ 20,052 $ 16,051 Total unrecognized compensation costs will be adjusted for any future forfeitures if and when they occur. The Company expects to recognize the total unrecognized compensation costs as of June 30, 2023 June 30, 2027 RSAs RSUs PSUs Weighted average period (in years) 1.04 1.74 2.14 As of June 30, 2023 1,374 Stock Option Activity The following table presents the outstanding stock option activity: Weighted Weighted Average Average Aggregate Number of Exercise Grant Date Intrinsic Three Months Ended June 30, 2023: Options Price Fair Value Value Outstanding at March 31, 2023 51 $ 39.14 $ 21.72 Granted — $ — $ — Exercised — $ — $ — Forfeited or expired — $ — $ — Outstanding at June 30, 2023 51 $ 39.14 $ 21.72 $ 9 Weighted Weighted Average Average Aggregate Number of Exercise Grant Date Intrinsic Six Months Ended June 30, 2023: Options Price Fair Value Value Outstanding at December 31, 2022 51 $ 39.14 $ 21.72 Granted — $ — $ — Exercised — $ — $ — Forfeited or expired — $ — $ — Outstanding at June 30, 2023 51 $ 39.14 $ 21.72 $ 9 Exercisable at June 30, 2023 51 $ 39.14 $ 21.72 $ 9 Unvested at June 30, 2023 — $ — $ — The aggregate intrinsic value is based on the closing price of $29.44 June 30, 2023 $29.44 Restricted Stock Awards Activity The following table presents the unvested RSA activity: Weighted Average Number of Grant Date Three Months Ended June 30, 2023: Shares Fair Value Unvested balance at March 31, 2023 150 $ 31.66 Granted 45 $ 22.10 Vested (49 ) $ (24.34 ) Forfeited (5 ) $ (33.78 ) Unvested balance at June 30, 2023 141 $ 31.04 Weighted Average Number of Grant Date Six Months Ended June 30, 2023: Shares Fair Value Unvested balance at December 31, 2022 196 $ 32.06 Granted 45 $ 22.10 Vested (95 ) $ (28.67 ) Forfeited (5 ) $ (34.30 ) Unvested balance at June 30, 2023 141 $ 31.04 The fair value of RSAs vested is as follows: Three Months Ended June 30, Six Months Ended June 30, 2023 2022 2023 2022 Fair value of RSAs vested $ 439 $ 1,175 $ 1,458 $ 2,778 Restricted Stock Units Activity The following table presents the unvested RSU activity: Weighted Average Number of Grant Date Three Months Ended June 30, 2023: Shares Fair Value Unvested balance at March 31, 2023 566 $ 23.53 Granted 11 $ 26.44 Vested (44 ) $ (23.84 ) Forfeited (9 ) $ (24.13 ) Unvested balance at June 30, 2023 524 $ 23.56 Weighted Average Number of Grant Date Six Months Ended June 30, 2023: Shares Fair Value Unvested balance at December 31, 2022 370 $ 24.77 Granted 280 $ 22.53 Vested (73 ) $ (24.48 ) Forfeited (53 ) $ (25.27 ) Unvested balance at June 30, 2023 524 $ 23.56 The fair value of RSU awards vested is as follows: Three Months Ended June 30, Six Months Ended June 30, 2023 2022 2023 2022 Fair value of RSU awards vested $ 1,203 $ 286 $ 1,827 $ 333 Performance Stock Units Activity The following table presents the unvested PSU activity: Weighted Average Number of Grant Date Three Months Ended June 30, 2023: Shares Fair Value Unvested balance at March 31, 2023 192 $ 29.01 Change in units based on performance expectations — $ — Granted — $ — Vested — $ — Forfeited — $ — Unvested balance at June 30, 2023 192 $ 29.01 Weighted Average Number of Grant Date Six Months Ended June 30, 2023: Shares Fair Value Unvested balance at December 31, 2022 67 $ 31.92 Change in units based on performance expectations (6 ) $ (32.02 ) Granted 134 $ 27.75 Vested (2 ) $ (32.02 ) Forfeited (1 ) $ (32.02 ) Unvested balance at June 30, 2023 192 $ 29.01 The fair value of PSU awards vested is as follows: Three Months Ended June 30, Six Months Ended June 30, 2023 2022 2023 2022 Fair value of PSU awards vested $ — $ — $ 54 $ — |