XML 44 R34.htm IDEA: XBRL DOCUMENT
v3.23.2

Net Income Per Share (Tables) | 6 Months Ended
--- | ---
Jun. 30, 2023
Net Income Per Share |
Schedule of net income used in the calculation of basic and diluted net income per share | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three months ended June 30, | ​ | Six months ended June 30,
​ |  | 2023 |  | 2022 |  | 2023 |  | 2022
Net income | ​ | $ | 430,589 | ​ | $ | 10,582,988 | ​ | $ | 3,960,416 | ​ | $ | 16,388,876
Schedule of weighted-average shares used in calculation of net income per share | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three months ended June 30, | ​ | Six months ended June 30,
​ |  | 2023 |  | 2022 |  | 2023 |  | 2022
Basic weighted-average number of shares outstanding | ​ | 22,749,322 | ​ | 23,576,746 | ​ | 22,869,440 | ​ | 23,627,015
Dilutive stock options | ​ | 2,027 | ​ | 25,405 | ​ | 5,394 | ​ | 19,630
Unvested time-based restricted shares |  | 23,892 |  | 103,258 |  | 22,338 |  | 39,340
Unvested performance-based restricted shares |  | 8,746 |  | 116,714 |  | 7,750 |  | 110,181
Diluted weighted average shares outstanding |  | 22,783,987 |  | 23,822,123 |  | 22,904,922 |  | 23,796,166
Schedule of anti-dilutive shares | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three months ended June 30, | ​ | Six months ended June 30,
​ |  | 2023 |  | 2022 |  | 2023 |  | 2022
Anti-dilutive options | ​ | 67,973 | ​ | 72,095 | ​ | 64,606 | ​ | 77,870
Anti-dilutive unvested time-based restricted shares | ​ | 274,318 | ​ | 146,740 | ​ | 275,872 | ​ | 169,127
Anti-dilutive unvested performance-based restricted shares | ​ | 7,087 | ​ | 34,786 | ​ | 8,083 | ​ | 41,319
Total Anti-dilutive shares |  | 349,378 |  | 253,621 |  | 348,561 |  | 288,316

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 Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -Subparagraph (c) -URI https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257 + Details
Name: | us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Publisher FASB -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -Subparagraph (a) -URI https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257 + Details
Name: | us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit). + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -URI https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257 + Details
Name: | us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration