UFPT · XBRL financial data
UFP Technologies 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 (UFPT'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 | — | — | — | 400,072 | 504,421 | 602,797 |
| Cost of goods and services sold | 134,689 | 155,206 | 263,532 | 287,847 | 357,728 | 432,387 |
| Gross profit | 44,684 | 51,114 | 90,260 | 112,225 | 146,693 | 170,410 |
| Research and development | 8,200 | 8,500 | 9,300 | 7,200 | 10,400 | 8,600 |
| Selling, general and administrative | 27,493 | 29,480 | 45,796 | 50,889 | 62,218 | 77,439 |
| Operating income (loss) | 16,732 | 21,218 | 55,400 | 57,664 | 80,897 | 92,338 |
| Interest income | 0 | 49 | — | — | — | — |
| Interest expense | 83 | 88 | 2,763 | 3,645 | 8,061 | 9,804 |
| Other income (expense) | (366) | 26 | 81 | (117) | 189 | (21) |
| Income tax expense (benefit) | 2,914 | 5,319 | 10,929 | 8,978 | 14,044 | 14,200 |
| Net income (loss) | 13,369 | 15,886 | 41,789 | 44,924 | 58,981 | 68,313 |
| Earnings per share, basic USD per share | 1.79 | 2.11 | 5.52 | 5.89 | 7.69 | 8.87 |
| Earnings per share, diluted USD per share | 1.77 | 2.09 | 5.45 | 5.83 | 7.58 | 8.75 |
| Weighted average shares, basic thousands of shares | 7,484 | 7,524 | 7,564 | 7,624 | 7,668 | 7,705 |
| Weighted average shares, diluted thousands of shares | 7,568 | 7,615 | 7,663 | 7,701 | 7,785 | 7,804 |
Balance sheet
CSVFiscal years (UFPT's year ends in late December)
Cash flows
CSVFiscal years (UFPT'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) | 13,369 | 15,886 | 41,789 | 44,924 | 58,981 | 68,313 |
| Stock-based compensation | 1,807 | 2,428 | 3,208 | 4,641 | 6,842 | 8,854 |
| Depreciation and amortization | 8,268 | 8,410 | 11,886 | 11,407 | 14,715 | 19,150 |
| Net cash from operating activities | 25,037 | 14,293 | 17,744 | 41,334 | 66,593 | 91,905 |
| Purchases of property and equipment | 4,368 | 5,395 | 13,780 | 10,490 | 9,656 | — |
| Net cash from investing activities | (4,261) | (101,459) | 1,291 | (10,488) | (210,164) | (27,597) |
| Proceeds from long-term debt | 0 | 40,000 | 0 | 0 | 125,000 | 0 |
| Repayments of long-term debt | 0 | 0 | 4,000 | 4,000 | 35,125 | 12,500 |
| Net cash from financing activities | (285) | 74,049 | (25,894) | (30,024) | 152,393 | (58,156) |
| Net change in cash | 20,491 | (13,117) | (6,666) | 812 | 8,187 | 6,851 |
Compare with peers
SIC 3841 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 3841 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 |
|---|---|---|---|---|---|---|
| Ufp Technologies | 9,045 | 173,964 | 15,612* | 7.7M | — | 10-QJun 30, 2026 |
| Enovis | 12,563 | 582,782 | 75,032* | 57.7M | — | 10-QJul 3, 2026 |
| Lemaitre Vascular | 26,625 | not reported | 15,965* | 22.9M | — | 10-QJun 30, 2026 |
| AtriCure | 167,786 | 153,604 | 22,192* | 50.9M | — | 10-QJun 30, 2026 |
| Haemonetics | 223,384 | 339,380 | 52,323 | 45.5M | — | 10-QJun 27, 2026 |
| Teleflex | 300,159 | 570,332 | not reported | 42.4M | — | 10-QJun 30, 2026 |
| Artivion | 77,316 | 125,757 | (1,266)* | 48.8M | 61.1 quarters | 10-QJun 30, 2026 |
| LivaNova | 516,619 | 390,587 | 66,588* | 55.1M | — | 10-QJun 30, 2026 |
| Envista Holdings | 1,125,600 | 730,500 | 119,200* | 160.6M | — | 10-QJul 3, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.