Consolidated Statements of Stockholders' Equity - USD ($) $ in Thousands | Common Stock [Member] | Additional Paid-in Capital [Member] | Accumulated Deficit [Member] | Accumulated Other Comprehensive Income (Loss) [Member] | Total |
Beginning balance at Dec. 31, 2021 | $ 5 | $ 126,920 | $ (4,713) | $ 12 | $ 122,224 |
Beginning balance (in shares) at Dec. 31, 2021 | 51,963,377 | | | | |
Issuance of restricted shares (in shares) | 592,396 | | | | |
Cancellation of restricted shares (in shares) | (258,038) | | | | |
Stock based compensation | | 1,617 | | | 1,617 |
Tax withholdings related to net share settlements of stock based compensation awards | | (724) | | | (724) |
Tax withholdings related to net share settlements of stock based compensation awards (in shares) | (118,783) | | | | |
Repurchases of common stock | | | (15,545) | | (15,545) |
Repurchases of common stock (in shares) | (4,094,592) | | | | |
Foreign currency translation adjustments | | | | (87) | (87) |
Net income | | | 14,250 | | 14,250 |
Balance at Sep. 30, 2022 | $ 5 | 127,813 | (6,008) | (75) | 121,735 |
Balance (in shares) at Sep. 30, 2022 | 48,084,360 | | | | |
Beginning balance at Jun. 30, 2022 | $ 5 | 127,298 | 5,714 | (29) | 132,988 |
Beginning balance (in shares) at Jun. 30, 2022 | 52,270,922 | | | | |
Cancellation of restricted shares (in shares) | (77,292) | | | | |
Stock based compensation | | 563 | | | 563 |
Tax withholdings related to net share settlements of stock based compensation awards | | (48) | | | (48) |
Tax withholdings related to net share settlements of stock based compensation awards (in shares) | (14,678) | | | | |
Repurchases of common stock | | | (15,545) | | (15,545) |
Repurchases of common stock (in shares) | (4,094,592) | | | | |
Foreign currency translation adjustments | | | | (46) | (46) |
Net income | | | 3,823 | | 3,823 |
Balance at Sep. 30, 2022 | $ 5 | 127,813 | (6,008) | (75) | 121,735 |
Balance (in shares) at Sep. 30, 2022 | 48,084,360 | | | | |
Beginning balance at Dec. 31, 2022 | $ 4 | 127,997 | (19,180) | (52) | $ 108,769 |
Beginning balance (in shares) at Dec. 31, 2022 | 44,377,445 | | | | 44,377,445 |
Issuance of restricted shares (in shares) | 611,154 | | | | |
Issuance of common stock upon exercise of options | | 4 | | | $ 4 |
Issuance of common stock upon exercise of options (in shares) | 1,790 | | | | |
Cancellation of restricted shares (in shares) | (329,536) | | | | |
Stock based compensation | | 1,072 | | | 1,072 |
Tax withholdings related to net share settlements of stock based compensation awards | | (491) | | | (491) |
Tax withholdings related to net share settlements of stock based compensation awards (in shares) | (99,299) | | | | |
Foreign currency translation adjustments | | | | (34) | (34) |
Net income | | | 9,435 | | 9,435 |
Balance at Sep. 30, 2023 | $ 4 | 128,582 | (9,745) | (86) | $ 118,755 |
Balance (in shares) at Sep. 30, 2023 | 44,561,554 | | | | 44,561,554 |
Beginning balance at Jun. 30, 2023 | $ 4 | 128,257 | (11,589) | (83) | $ 116,589 |
Beginning balance (in shares) at Jun. 30, 2023 | 44,567,055 | | | | |
Issuance of common stock upon exercise of options | | 4 | | | 4 |
Issuance of common stock upon exercise of options (in shares) | 1,790 | | | | |
Stock based compensation | | 366 | | | 366 |
Tax withholdings related to net share settlements of stock based compensation awards | | (45) | | | (45) |
Tax withholdings related to net share settlements of stock based compensation awards (in shares) | (7,291) | | | | |
Foreign currency translation adjustments | | | | (3) | (3) |
Net income | | | 1,844 | | 1,844 |
Balance at Sep. 30, 2023 | $ 4 | $ 128,582 | $ (9,745) | $ (86) | $ 118,755 |
Balance (in shares) at Sep. 30, 2023 | 44,561,554 | | | | 44,561,554 |