Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($) $ in Thousands | Total | Common Stock | Additional Paid-in Capital | Accumulated Deficit | Accumulated Other Comprehensive Loss |
Beginning balance at Dec. 31, 2018 | $ 17,147 | $ 55 | $ 114,618 | $ (97,377) | $ (149) |
Beginning balance, Shares at Dec. 31, 2018 | | 10,864,722 | | | |
Exercise of stock options | 219 | $ 1 | 218 | | |
Exercise of stock options, Shares | | 177,408 | | | |
Issuance of common stock upon secondary offering, net of costs | 10,554 | $ 1 | 10,553 | | |
Issuance of common stock upon secondary offering net of costs, Shares | | 250,000 | | | |
Issuance of common stock from RSUs vested, Shares | | 28,790 | | | |
Stock-based compensation | 754 | | 754 | | |
Other comprehensive income (loss) | (13) | | | | (13) |
Net income (loss) | (362) | | | (362) | |
Ending balance at Mar. 31, 2019 | 28,299 | $ 57 | 126,143 | (97,739) | (162) |
Ending balance, Shares at Mar. 31, 2019 | | 11,320,920 | | | |
Beginning balance at Dec. 31, 2018 | $ 17,147 | $ 55 | 114,618 | (97,377) | (149) |
Beginning balance, Shares at Dec. 31, 2018 | | 10,864,722 | | | |
Repurchase of common stock, Shares | 0 | | | | |
Net income (loss) | $ 25 | | | | |
Ending balance at Jun. 30, 2019 | 30,448 | $ 57 | 127,870 | (97,352) | (127) |
Ending balance, Shares at Jun. 30, 2019 | | 11,476,685 | | | |
Beginning balance at Mar. 31, 2019 | 28,299 | $ 57 | 126,143 | (97,739) | (162) |
Beginning balance, Shares at Mar. 31, 2019 | | 11,320,920 | | | |
Exercise of stock options | 129 | | 129 | | |
Exercise of stock options, Shares | | 65,960 | | | |
Issuance of common stock in connection with exercise of warrants | 51 | | 51 | | |
Issuance of common stock in connection with exercise of warrants, Shares | | 12,225 | | | |
Issuance of common stock from RSUs vested, Shares | | 24,072 | | | |
Issuance of common stock from ESPP purchase | 642 | | 642 | | |
Issuance of common stock from ESPP purchase, Shares | | 53,508 | | | |
Stock-based compensation | 905 | | 905 | | |
Other comprehensive income (loss) | 35 | | | | 35 |
Net income (loss) | 387 | | | 387 | |
Ending balance at Jun. 30, 2019 | 30,448 | $ 57 | 127,870 | (97,352) | (127) |
Ending balance, Shares at Jun. 30, 2019 | | 11,476,685 | | | |
Beginning balance at Dec. 31, 2019 | 27,251 | $ 57 | 122,907 | (95,579) | (134) |
Beginning balance, Shares at Dec. 31, 2019 | | 11,314,150 | | | |
Exercise of stock options | 57 | | 57 | | |
Exercise of stock options, Shares | | 17,543 | | | |
Issuance of common stock in connection with exercise of warrants, Shares | | 46,939 | | | |
Issuance of common stock from RSUs vested, Shares | | 20,297 | | | |
Stock-based compensation | 887 | | 887 | | |
Other comprehensive income (loss) | (227) | | | | (227) |
Net income (loss) | 13 | | | 13 | |
Ending balance at Mar. 31, 2020 | 27,981 | $ 57 | 123,851 | (95,566) | (361) |
Ending balance, Shares at Mar. 31, 2020 | | 11,398,929 | | | |
Beginning balance at Dec. 31, 2019 | 27,251 | $ 57 | 122,907 | (95,579) | (134) |
Beginning balance, Shares at Dec. 31, 2019 | | 11,314,150 | | | |
Repurchase of common stock | $ (1,600) | | | | |
Repurchase of common stock, Shares | (74,520) | | | | |
Net income (loss) | $ 879 | | | | |
Ending balance at Jun. 30, 2020 | 28,868 | $ 57 | 123,848 | (94,700) | (337) |
Ending balance, Shares at Jun. 30, 2020 | | 11,395,156 | | | |
Beginning balance at Mar. 31, 2020 | 27,981 | $ 57 | 123,851 | (95,566) | (361) |
Beginning balance, Shares at Mar. 31, 2020 | | 11,398,929 | | | |
Exercise of stock options | 41 | | 41 | | |
Exercise of stock options, Shares | | 26,562 | | | |
Issuance of common stock from RSUs vested, Shares | | 22,754 | | | |
Issuance of common stock from ESPP purchase | 408 | | 408 | | |
Issuance of common stock from ESPP purchase, Shares | | 21,431 | | | |
Repurchase of common stock | (1,615) | | (1,615) | | |
Repurchase of common stock, Shares | | (74,520) | | | |
Stock-based compensation | 1,163 | | 1,163 | | |
Other comprehensive income (loss) | 24 | | | | 24 |
Net income (loss) | 866 | | | 866 | |
Ending balance at Jun. 30, 2020 | $ 28,868 | $ 57 | $ 123,848 | $ (94,700) | $ (337) |
Ending balance, Shares at Jun. 30, 2020 | | 11,395,156 | | | |