XML 31 R20.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Net Income Per Common Share | 12 Months Ended
--- | ---
Dec. 31, 2023
Net Income Per Common Share |
Net Income Per Common Share | 13. Net Income Per Common Share The following table sets forth the computation of basic and diluted net income per share (in thousands, except share and per share amounts): Basic EPS ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | Year Ended December 31,
​ |  |  | 2023 |  | 2022
Numerator: |  |  | ​ |  |  | ​ |
Net income | ​ | ​ | $ | 9,052 | ​ | $ | 6,129
Denominator: | ​ | ​ |  |  | ​ |  |
Weighted-average shares of common stock outstanding, basic | ​ | ​ |  | 20,748,302 | ​ |  | 20,130,336
Net income per common share, basic | ​ | ​ | $ | 0.44 | ​ | $ | 0.30
​ ​ Diluted EPS ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | Year Ended December 31,
​ |  |  | 2023 |  | 2022
Numerator: |  |  | ​ |  |  | ​ |
Net income | ​ | ​ | $ | 9,052 | ​ | $ | 6,129
Less: warrant liability fair value gain recognized | ​ | ​ | ​ | (25) | ​ | ​ | (23)
Net income attributable to common stockholders, diluted | ​ | ​ | $ | 9,027 | ​ | $ | 6,106
Denominator: | ​ | ​ |  |  | ​ |  |
Weighted-average shares of common stock outstanding, basic | ​ | ​ |  | 20,748,302 | ​ |  | 20,130,336
Dilutive effect of stock options and RSUs | ​ | ​ | ​ | 619,002 | ​ | ​ | 645,589
Weighted-average shares of common stock outstanding, diluted | ​ | ​ |  | 21,367,304 | ​ |  | 20,775,925
Net income per common share, diluted | ​ | ​ | $ | 0.42 | ​ | $ | 0.29
​ The following outstanding shares of potentially dilutive securities outstanding have been excluded from the computation of diluted net income per common share for the periods presented as their inclusion would be anti-dilutive: ​
​ | ​ | ​ | ​
​ | Year Ended December 31,
​ | 2023 |  | 2022
Options to purchase common stock | 613,652 |  | 841,845
RSUs | 330,082 | ​ | 4,147
Common stock warrants | 18,461 |  | 18,461
ESPP | — | ​ | —
Total | 962,195 |  | 864,453
​

X
- References No definition available. + Details
Name: | us-gaap_EarningsPerShareAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The entire disclosure for earnings per share. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -Name Accounting Standards Codification -Publisher FASB -URI https://asc.fasb.org//260/tableOfContent Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482662/260-10-50-2 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 3 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482662/260-10-50-3 + Details
Name: | us-gaap_EarningsPerShareTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration