XGN · XBRL financial data
Exagen financial statements, every fiscal year
The same tables from 6 filings, lined up. Matched by XBRL tag: renamed lines keep their history.
How these numbers work
- Every number comes from the company's XBRL financial data filed with the SEC, and each one links to its filing.
- Lines are matched by XBRL tag, so a line renamed between filings keeps its history.
- * marks a quarter worked out from the filing totals: the 10-K year minus the first three quarters, or a year-to-date total minus the earlier one. Fourth-quarter earnings per share is fourth-quarter net income over the fourth-quarter weighted shares.
- 0 means a filing states zero; a dash (—) means no filing states that number.
- “year only” means the 10-K gives the full year but not the quarters needed to work out the fourth. A worked-out quarter of revenue, cost of revenue or operating cash flow more than twice the company's largest quarter of the two years before is shown this way too.
- Gross profit is shown as the company reports it; a worked-out quarter must equal revenue less cost of revenue for that quarter, or it is a dash.
- Operating income can be above gross profit when the company books other operating income between the two, shown on its own line.
- Shares outstanding come from each filing's cover page, as of the date printed there.
- Quarters are fiscal: Q2 FY27 is the second quarter of the company's fiscal 2027.
Income statement
CSVFiscal years (XGN's year ends in late December)
| In thousands of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Revenue from contracts with customers | 41,975 | 48,299 | 45,563 | 52,548 | 55,641 | 66,575 |
| Cost of goods and services sold | 16,559 | 20,588 | 24,214 | 23,092 | 22,529 | 27,776 |
| Gross profit | — | — | — | 29,456 | 33,112 | 38,799 |
| Research and development | 3,568 | 7,237 | 9,876 | 4,865 | 5,375 | 6,254 |
| Selling, general and administrative | 37,033 | 44,541 | 52,018 | 47,428 | 41,373 | 46,615 |
| Operating income (loss) | (15,185) | (24,067) | (46,051) | (22,837) | (13,636) | (14,070) |
| Interest income | — | — | — | 1,516 | 767 | 289 |
| Interest expense | 2,565 | 2,625 | 2,448 | 2,335 | 2,234 | 4,318 |
| Other income (expense) | 984 | 16 | — | — | — | — |
| Income tax expense (benefit) | (79) | 175 | (282) | 33 | 12 | 51 |
| Net income (loss) | (16,687) | (26,851) | (47,387) | (23,689) | (15,115) | (19,951) |
| Earnings per share, basic USD per share | (1.32) | (1.68) | (2.77) | (1.34) | (0.83) | (0.93) |
| Earnings per share, diluted USD per share | (1.32) | (1.68) | (2.77) | (1.34) | (0.83) | (0.93) |
| Weighted average shares, basic thousands of shares | 12,633 | 15,972 | 17,082 | 17,679 | 18,203 | 21,558 |
| Weighted average shares, diluted thousands of shares | 12,633 | 15,972 | 17,082 | 17,679 | 18,203 | 21,558 |
Balance sheet
CSVFiscal years (XGN's year ends in late December)
Cash flows
CSVFiscal years (XGN's year ends in late December)
| In thousands of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Net income (loss) | (16,687) | (26,851) | (47,387) | (23,689) | (15,115) | (19,951) |
| Stock-based compensation | 2,694 | 4,728 | 4,704 | 3,617 | 1,763 | 2,158 |
| Depreciation and amortization | 500 | 900 | 1,600 | 2,200 | 1,700 | 2,100 |
| Net cash from operating activities | (14,084) | (20,269) | (32,144) | (14,462) | (13,279) | (13,625) |
| Purchases of property and equipment | 455 | 2,370 | 4,318 | 828 | 515 | 641 |
| Net cash from investing activities | (455) | (2,420) | (4,318) | (804) | (515) | (626) |
| Proceeds from issuing common stock | 0 | 69,144 | 0 | — | 0 | 3,398 |
| Repayments of long-term debt | — | — | 0 | 10,000 | 0 | — |
| Net cash from financing activities | (97) | 64,683 | (489) | (10,632) | (663) | 24,435 |
| Net change in cash | (14,636) | 41,994 | (36,951) | (25,898) | (14,457) | 10,184 |
Compare with peers
SIC 8071 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 8071 and related industry codes with public float (or, where float is missing, quarterly revenue) between 0.2x and 5x the company's.
- Each row is the latest quarter the company has reported, named in the Quarter column; when that filing is a 10-K, it is the fourth quarter, never the full year.
- Runway shows only for companies burning cash with under $10B of public float.
- * marks a quarter worked out from the filing totals: for a 10-Q, the year-to-date total less the earlier one.
- A cell reading “not reported” means the filings give no figure for that quarter alone.
| Company | Cash ($K) | Revenue, quarter ($K) | Operating cash flow, quarter ($K) | Shares outstanding | Runway | Quarter |
|---|---|---|---|---|---|---|
| Exagen | 24,588 | 19,941 | 3,988* | 24.2M | — | 10-QJun 30, 2026 |
| Freenome | 437 | not reported | (130)* | not reported | 3.4 quarters | 10-QJun 30, 2026 |
| Fulgent Genetics | 26,305 | 85,389 | (23,758)* | 27.5M | 10.8 quarters | 10-QJun 30, 2026 |
| Sera Prognostics | 3,986 | 42 | (7,298)* | not reported | 5.9 quarters | 10-QSep 30, 2026 |
| Fortrea Holdings | 220,600 | 691,500 | 60,800* | 96.5M | — | 10-QSep 30, 2026 |
| Celcuity | 182,049 | not reported | (55,426)* | 48.9M | 13.6 quarters | 10-QJun 30, 2026 |
| Castle Biosciences | 62,116 | 103,546 | 15,201* | 30.5M | — | 10-QJun 30, 2026 |
| Personalis | 98,271 | 25,596 | (27,072)* | 108.4M | 6.7 quarters | 10-QSep 30, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.
