XML 39 R31.htm IDEA: XBRL DOCUMENT
v3.26.1

Net Income (Loss) per Share (Tables) | 6 Months Ended
--- | ---
Jun. 30, 2026
Earnings Per Share [Abstract] |
Basic and Diluted Net Income (Loss) Per Share Attributable to Common Stockholders | Basic and diluted net income (loss) per share attributable to common stockholders was calculated as follows (in thousands, except share and per share data):
| Three Months Ended June 30, |  |  | Six Months Ended June 30, |
| 2026 |  |  | 2025 |  |  | 2026 |  |  | 2025 |
Basic Earnings Per Share: |  |  |  |  |  |  |  |  |  |  |
Numerator: |  |  |  |  |  |  |  |  |  |  |
Net income (loss) | $ | 4,581 |  |  | $ | (19,855 | ) |  | $ | (15,332 | ) |  | $ | 12,827 |
Income (loss) attributable to common stockholders - basic | $ | 4,581 |  |  | $ | (19,855 | ) |  | $ | (15,332 | ) |  | $ | 12,827 |
Denominator: |  |  |  |  |  |  |  |  |  |  |
Weighted-average shares outstanding - basic |  | 9,706,193 |  |  |  | 8,743,733 |  |  |  | 9,644,704 |  |  |  | 8,723,589 |
Net income (loss) per share attributable to common stockholders - basic | $ | 0.47 |  |  | $ | (2.27 | ) |  | $ | (1.59 | ) |  | $ | 1.47 |
Diluted Earnings Per Share: |  |  |  |  |  |  |  |  |  |  |
Numerator: |  |  |  |  |  |  |  |  |  |  |
Net income (loss) | $ | 4,581 |  |  | $ | (19,855 | ) |  | $ | (15,332 | ) |  | $ | 12,827 |
Income (loss) attributable to common stockholders - diluted | $ | 4,581 |  |  | $ | (19,855 | ) |  | $ | (15,332 | ) |  | $ | 12,827 |
Denominator: |  |  |  |  |  |  |  |  |  |  |
Weighted-average shares outstanding - basic |  | 9,706,193 |  |  |  | 8,743,733 |  |  |  | 9,644,704 |  |  |  | 8,723,589 |
Dilutive impact from: |  |  |  |  |  |  |  |  |  |  |
Stock options to purchase common stock |  | — |  |  |  | — |  |  |  | — |  |  |  | — |
Unvested restricted stock units |  | 40,945 |  |  |  | — |  |  |  | — |  |  |  | 8,586 |
Shares issuable under employee stock purchase plan |  | — |  |  |  | — |  |  |  | — |  |  |  | 1 |
Weighted-average shares outstanding - diluted |  | 9,747,138 |  |  |  | 8,743,733 |  |  |  | 9,644,704 |  |  |  | 8,732,176 |
Net income (loss) per share applicable to common stockholders - diluted | $ | 0.47 |  |  | $ | (2.27 | ) |  | $ | (1.59 | ) |  | $ | 1.47 |
Anti-dilutive potential common stock equivalents excluded from the calculation of net income (loss) per share: |  |  |  |  |  |  |  |  |  |  |
Stock options to purchase common stock |  | 1,548,690 |  |  |  | 1,200,467 |  |  |  | 1,548,690 |  |  |  | 1,200,467 |
Unvested restricted stock units |  | 161,748 |  |  |  | 51,199 |  |  |  | 161,748 |  |  |  | 51,199 |
Shares issuable under employee stock purchase plan |  | 1,464 |  |  |  | 19,991 |  |  |  | 922 |  |  |  | 12,701 |
Warrants to purchase common stock |  | 32,379 |  |  |  | 32,379 |  |  |  | 32,379 |  |  |  | 32,379 |

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 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 -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1 + Details
Name: | us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration