WLDN · XBRL financial data
Willdan Group 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 (WLDN's year ends in early January)
| In thousands of dollars | Jan 1, 2021 | Dec 31, 2021 | Dec 30, 2022 | Dec 29, 2023 | Dec 27, 2024 | Jan 2, 2026 |
|---|---|---|---|---|---|---|
| Revenue from contracts with customers | 390,980 | 353,755 | 429,138 | 510,095 | 565,798 | 681,552 |
| Cost of revenue | 261,587 | 217,881 | 285,559 | 330,328 | 363,016 | 425,870 |
| Gross profit | — | 135,874 | 143,579 | 179,767 | 202,782 | 255,682 |
| Total operating expenses | 145,620 | 144,565 | 150,642 | 157,693 | 171,429 | 211,535 |
| Operating income (loss) | (16,227) | (8,691) | (7,063) | 22,074 | 31,353 | 44,147 |
| Interest expense | 5,068 | 3,869 | — | — | — | — |
| Other income (expense) | 1,626 | 156 | 939 | 1,930 | 3,127 | 1,595 |
| Income tax expense (benefit) | (5,173) | (3,987) | (3,004) | 3,665 | 4,109 | (12,563) |
| Net income (loss) | (14,496) | (8,417) | (8,448) | 10,926 | 22,570 | 52,557 |
| Earnings per share, basic USD per share | (1.23) | (0.68) | (0.65) | 0.82 | 1.63 | 3.63 |
| Earnings per share, diluted USD per share | (1.23) | (0.68) | (0.65) | 0.80 | 1.58 | 3.49 |
| Weighted average shares, basic thousands of shares | 11,793 | 12,458 | 13,013 | 13,394 | 13,818 | 14,461 |
| Weighted average shares, diluted thousands of shares | 11,793 | 12,458 | 13,013 | 13,606 | 14,245 | 15,071 |
Balance sheet
CSVFiscal years (WLDN's year ends in early January)
Cash flows
CSVFiscal years (WLDN's year ends in early January)
| In thousands of dollars | Jan 1, 2021 | Dec 31, 2021 | Dec 30, 2022 | Dec 29, 2023 | Dec 27, 2024 | Jan 2, 2026 |
|---|---|---|---|---|---|---|
| Net income (loss) | (14,496) | (8,417) | (8,448) | 10,926 | 22,570 | 52,557 |
| Stock-based compensation | 16,113 | 16,563 | 8,373 | 5,323 | 7,388 | 11,825 |
| Depreciation and amortization | 18,743 | 17,146 | 17,489 | 16,431 | 14,745 | 18,686 |
| Net cash from operating activities | 47,025 | 9,804 | 9,433 | 39,214 | 72,073 | 80,084 |
| Purchases of property and equipment | 5,076 | 8,500 | 9,602 | 9,925 | 8,413 | 9,387 |
| Net cash from investing activities | (5,059) | (8,454) | (9,527) | (11,457) | (15,743) | (45,632) |
| Net cash from financing activities | (19,013) | (18,534) | 8,358 | (23,845) | (5,569) | (42,691) |
| Net change in cash | 22,953 | (17,184) | 8,264 | 3,912 | 50,761 | (8,239) |
Compare with peers
SIC 8711 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 8711 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 (8711) 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-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 ($K) | Revenue, quarter ($K) | Operating cash flow, quarter ($K) | Shares outstanding | Runway | Quarter |
|---|---|---|---|---|---|---|
| Willdan Group | 34,870 | 231,028 | 43,880* | 15.2M | — | 10-QJul 3, 2026 |
| Vse | 75,360 | 449,137 | 27,557* | 28.1M | — | 10-QJun 30, 2026 |
| Mistras Groupadded: same SIC | 18,987 | 204,621 | 11,718* | 31.9M | — | 10-QSep 30, 2026 |
| Tetra Techadded: same SIC | 230,835 | 1,308,555 | 228,942* | 256.0M | — | 10-QJun 28, 2026 |
| Aecomadded: same SIC | 1,012,932 | 3,586,067 | not reported | 128.7M | — | 10-QJul 3, 2026 |
| Acorn Energyadded: same SIC | 4,478 | 2,489 | 224* | 2.5M | — | 10-QJun 30, 2026 |
| HyOrcadded: same SIC | 54 | 24 | (414)* | 758.0M | 0.1 quarters | 10-QJun 30, 2026 |
| OFA Groupadded: same SIC | 178 | 15 | (1,332) | not reported | 0.1 quarters | 10-QJun 30, 2026 |
| Julong Holdingadded: same SIC | 62,247 | year only | year only | 21.4M | — | 20-FSep 30, 2025 |
Not investment advice. Not affiliated with the U.S. SEC.
