VTSI · XBRL financial data
VirTra 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 (VTSI'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 | — | — | — | 748 | 0 | 186 |
| Revenue from contracts with customers | 19,088 | 24,434 | 28,302 | 38,043 | 26,351 | 22,402 |
| Cost of goods and services sold | 7,187 | 13,029 | 12,047 | 11,378 | 6,938 | 7,200 |
| Gross profit | 11,900 | 11,405 | 16,255 | 26,665 | 19,413 | 15,203 |
| Research and development | 1,603 | 1,866 | 2,607 | 2,794 | 3,003 | 2,384 |
| General and administrative | 9,071 | 8,085 | 11,054 | 14,235 | 14,413 | 12,382 |
| Total operating expenses | 10,674 | 9,951 | 13,661 | 17,030 | 17,416 | 14,765 |
| Operating income (loss) | 1,226 | 1,454 | 2,594 | 9,636 | 1,996 | 437 |
| Other income (expense) | 33 | — | — | — | — | — |
| Income tax expense (benefit) | (219) | 246 | 572 | 1,819 | 887 | (111) |
| Net income (loss) | 1,478 | 2,540 | 1,956 | 8,403 | 1,364 | 258 |
| Earnings per share, basic USD per share | 0.19 | 0.25 | 0.18 | 0.77 | 0.12 | 0.02 |
| Earnings per share, diluted USD per share | 0.19 | 0.25 | 0.18 | 0.77 | 0.12 | 0.02 |
| Weighted average shares, basic thousands of shares | 7,757 | 10,007 | 10,864 | 10,958 | 11,163 | 11,272 |
| Weighted average shares, diluted thousands of shares | 7,836 | 10,061 | 10,874 | 10,963 | 11,163 | 11,272 |
Balance sheet
CSVFiscal years (VTSI'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 |
|---|---|---|---|---|---|---|
| Cash and cash equivalents | 6,842 | 19,709 | 13,484 | 18,850 | 18,041 | 18,595 |
| Accounts receivable | 1,378 | 3,897 | 3,003 | 15,724 | 8,005 | 5,502 |
| Inventory | 3,516 | 5,015 | 9,592 | 12,405 | 14,583 | 13,060 |
| Prepaid and other current assets | 382 | 941 | 531 | 907 | 1,273 | 2,622 |
| Total current assets | 17,527 | 33,508 | 34,096 | 48,995 | 44,473 | 41,022 |
| Property and equipment, net | 1,382 | 12,865 | 15,267 | 15,487 | 16,205 | 16,268 |
| Right-of-use asset | 1,095 | 784 | 1,213 | 717 | 437 | 269 |
| Total assets | 22,753 | 49,575 | 53,814 | 69,634 | 65,453 | 65,137 |
| Accounts payable | 346 | 789 | 1,251 | 2,282 | 957 | 784 |
| Total current liabilities | 7,258 | 7,563 | 9,757 | 15,755 | 9,647 | 10,228 |
| Lease liability, non-current | 853 | 505 | 720 | 432 | 265 | 89 |
| Total liabilities | 11,095 | 18,347 | 20,133 | 27,012 | 19,762 | 19,544 |
| Retained earnings (accumulated deficit) | (2,236) | 304 | 2,260 | 10,663 | 12,775 | 12,535 |
| Total stockholders' equity | 11,659 | 31,229 | 33,682 | 42,622 | 45,691 | 45,592 |
| Total liabilities and equity | 22,753 | 49,575 | 53,814 | 69,634 | 65,453 | 65,137 |
| Common shares outstanding (cover page) thousands of shares | 7,775 | 10,877 | 10,925 | 11,110 | 11,260 | 11,304 |
Cash flows
CSVFiscal years (VTSI'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) | 1,478 | 2,540 | 1,956 | 8,403 | 1,364 | 258 |
| Stock-based compensation | — | 224 | 456 | 482 | 777 | 141 |
| Depreciation and amortization | 380 | 589 | 887 | 929 | 1,137 | 1,762 |
| Net cash from operating activities | 2,246 | (126) | (2,693) | 6,683 | 1,257 | 4,588 |
| Purchases of property and equipment | — | 3,449 | 3,221 | 1,128 | 1,846 | 1,515 |
| Net cash from investing activities | 1,853 | (3,736) | (3,341) | (1,128) | (1,846) | (3,781) |
| Repayments of long-term debt | — | 78 | 231 | 243 | 241 | 253 |
| Net cash from financing activities | 1,328 | 16,728 | (190) | (188) | (221) | (253) |
| Net change in cash | 5,427 | 12,867 | (6,225) | 5,366 | (809) | 554 |
Compare with peers
SIC 3990 and related industry codes, similar size; rows marked “added: same SIC” fill a short list. Each row is the latest quarter reported.
How peers are chosen
- SIC 3990 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.
- Fewer than three companies fall in that range, so the list adds same-SIC (3990) companies nearest in public float, each marked “added: same SIC”.
- 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-K, the year less the first three quarters; 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 |
|---|---|---|---|---|---|---|
| VirTra | 14,313 | 5,763 | (2,140)* | 11.3M | 6.7 quarters | 10-QJun 30, 2026 |
| Oil-Dri Corp of Americaadded: same SIC | 73,700 | 129,292* | 26,898* | not reported | — | 10-KJul 31, 2026 |
| Daktronicsadded: same SIC | 154,585 | 234,565 | 31,433 | 48.1M | — | 10-QAug 1, 2026 |
| Hillenbrandadded: same SIC | 173,100 | 550,200 | not reported | 70.7M | — | 10-QDec 31, 2025 |
| Trans Luxadded: same SIC | 371 | 4,110* | (903)* | 13.5M | 0.4 quarters | 10-KDec 31, 2024 |
| Bradyadded: same SIC | 187,149 | 436,904* | 79,228* | not reported | — | 10-KJul 31, 2026 |
| Amcoradded: same SIC | 1,115,000 | 6,398,000* | 1,595,000* | 462.3M | — | 10-KJun 30, 2026 |
| Basaniteadded: same SIC | 0 | 1.5 | (109)* | 267.6M | — | 10-QSep 30, 2025 |
| DAISadded: same SIC | 20 | 713 | (32)* | 68.0M | 0.6 quarters | 10-QSep 30, 2023 |
Not investment advice. Not affiliated with the U.S. SEC.
