TNC · XBRL financial data
Tennant financial statements, every fiscal year
The same tables from 7 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 (TNC's year ends in late December)
| In millions 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 | 1,001 | 1,091 | 1,092 | 1,244 | 1,287 | 1,204 |
| Cost of goods and services sold | 593 | 653 | 671 | 716 | 737 | 719 |
| Gross profit | 408 | 438 | 421 | 528 | 550 | 484 |
| Research and development | 30 | 32 | 31 | 37 | 44 | 41 |
| Selling, general and administrative | 314 | 322 | 306 | 353 | 392 | 375 |
| Total operating expenses | 344 | — | — | — | — | — |
| Operating income (loss) | 64 | 94 | 87 | 139 | 114 | 68 |
| Interest income | 3 | — | — | — | — | — |
| Interest expense | 21 | 7 | — | — | — | — |
| Other income (expense) | 0 | (0) | 1 | (2) | (1) | 0 |
| Income tax expense (benefit) | 7 | 9 | 13 | 14 | 21 | 14 |
| Net income (loss) | 34 | 65 | 66 | 110 | 84 | 44 |
| Earnings per share, basic USD per share | 1.84 | 3.51 | 3.58 | 5.92 | 4.46 | 2.38 |
| Earnings per share, diluted USD per share | 1.81 | 3.44 | 3.55 | 5.83 | 4.38 | 2.36 |
| Weighted average shares, basic millions of shares | 18 | 18 | 18 | 19 | 19 | 18 |
| Weighted average shares, diluted millions of shares | 19 | 19 | 19 | 19 | 19 | 19 |
Balance sheet
CSVFiscal years (TNC's year ends in late December)
| In millions of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Cash and cash equivalents | 141 | 124 | 77 | 117 | 100 | 106 |
| Accounts receivable | 195 | 211 | 252 | 248 | 259 | 257 |
| Inventory | 128 | 161 | 207 | 176 | 184 | 199 |
| Prepaid and other current assets | 25 | 31 | 40 | 29 | 34 | 38 |
| Total current assets | 494 | 527 | 575 | 569 | 577 | 600 |
| Property and equipment, net | 186 | 173 | 180 | — | — | — |
| Right-of-use asset | 45 | 41 | 32 | 42 | 55 | 57 |
| Goodwill | 208 | 193 | 182 | 187 | 186 | 209 |
| Total assets | 1,083 | 1,062 | 1,085 | 1,113 | 1,190 | 1,269 |
| Accounts payable | 106 | 122 | 126 | 111 | 127 | 128 |
| Total current liabilities | 254 | 290 | 262 | 274 | 292 | 293 |
| Lease liability, non-current | 29 | 25 | 17 | 27 | 36 | 36 |
| Total liabilities | 677 | 627 | 613 | 535 | 568 | 666 |
| Retained earnings | 363 | 411 | 458 | 547 | 610 | 628 |
| Total stockholders' equity | 405 | 434 | 471 | 577 | 621 | 602 |
| Total liabilities and equity | 1,083 | 1,062 | 1,085 | 1,113 | 1,190 | 1,269 |
| Common shares outstanding (cover page) millions of shares | 19 | 19 | 19 | 19 | 19 | 18 |
Cash flows
CSVFiscal years (TNC's year ends in late December)
| In millions of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Net income (loss) | 34 | 65 | 66 | 110 | 84 | 44 |
| Stock-based compensation | 6 | 10 | 8 | 12 | 12 | 10 |
| Net cash from operating activities | 134 | 69 | (25) | 188 | 90 | 65 |
| Purchases of property and equipment | 30 | 19 | 25 | 23 | 21 | 22 |
| Net cash from investing activities | (30) | 2 | (25) | (23) | (78) | (23) |
| Proceeds from issuing common stock | 5 | 5 | (1) | 19 | 20 | (3) |
| Share repurchases | 0 | 15 | 5 | 22 | 20 | 89 |
| Dividends paid | 16 | 18 | 19 | 20 | 21 | 22 |
| Proceeds from long-term debt | 126 | 316 | 52 | 20 | 41 | 85 |
| Net cash from financing activities | (43) | (85) | 8 | (123) | (25) | (39) |
| Net change in cash | 66 | (17) | (46) | 40 | (17) | 7 |
Compare with peers
SIC 3580 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 3580 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-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.
- A cell reading “year only” links to a 10-K that gives only the full year: without all three earlier quarters there is no fourth quarter to work out, and the year total is never shown as a quarter.
| Company | Cash ($M) | Revenue, quarter ($M) | Operating cash flow, quarter ($M) | Shares outstanding | Runway | Quarter |
|---|---|---|---|---|---|---|
| Tennant | 75 | 322 | 12* | 17.0M | — | 10-QSep 30, 2026 |
| Midera Food Processing | 51 | 245 | not reported | 45.2M | — | 10-QJul 4, 2026 |
| Alliance Laundry Holdings | 159 | 477 | 66* | 198.8M | — | 10-QJun 30, 2026 |
| Standex International | 117 | 233 | 16 | 12.1M | — | 10-QSep 30, 2026 |
| Hayward Holdings | 236 | 260 | 54* | 208.4M | — | 10-QSep 26, 2026 |
| AAON | 0 | not reported | 21* | 82.5M | — | 10-QJun 30, 2026 |
| EvoAir Holdings | 0.3 | year only | (0.4)* | 27.2M | 0.7 quarters | 10-KAug 31, 2026 |
| MIDDLEBY | 159 | 876 | 98* | 45.2M | — | 10-QJul 4, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.
