Willdan Group, Inc. (WLDN)

Every figure below is the company's own, as filed. Nothing is estimated and nothing is smoothed — a period the filing does not support is left blank rather than drawn. Quarters are the company's own, counted from its financial year ending 01-02. Amounts in USD.

Revenue Quarterly

0 80M 160M 240M Q3 '17: 58.7M Q4 '17: 57.4M Q1 '18: 68.4M Q2 '18: 71.8M Q3 '18: 69M Q4 '18: 64.2M Q1 '19: 54.6M Q2 '19: 59.8M Q3 '19: 71.4M Q4 '19: 86.4M Q1 '20: 91.8M Q2 '20: 104.4M Q3 '20: 117.5M Q4 '20: 129.4M Q1 '21: 106M Q2 '21: 83.5M Q3 '21: 104.5M Q4 '21: 96.9M Q1 '22: 79.1M Q2 '22: 84.2M Q3 '22: 98.3M Q4 '22: 92.2M Q1 '23: 91.8M Q2 '23: 102.6M Q3 '23: 121.4M Q4 '23: 113.3M Q1 '24: 102.6M Q2 '24: 119.1M Q3 '24: 132.7M Q4 '24: 155.7M Q1 '25: 122.5M Q2 '25: 141M Q3 '25: 158.3M Q4 '25: 144.1M Q1 '26: 152.4M Q2 '26: 173.5M Q3 '26: 182M Q4 '26: 173.7M Q1 '27: 155.1M Q2 '27: 231M Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

Gross Profit Quarterly

0 30M 60M 90M Q2 '11: 9.6M Q2 '12: 10.3M Q1 '24: 41.3M Q2 '24: 40.6M Q3 '24: 43.4M Q4 '24: 54.4M Q1 '25: 47.4M Q2 '25: 48.8M Q3 '25: 51.6M Q4 '25: 55M Q1 '26: 57.7M Q2 '26: 68.3M Q3 '26: 67.1M Q4 '26: 62.6M Q1 '27: 63.2M Q2 '27: 87.5M Q2 '12 Q2 '24 Q4 '24 Q2 '25 Q4 '25 Q2 '26 Q4 '26 Q2 '27

Operating Income Quarterly

-14M -7M 0 7M 14M 21M Q3 '17: 3.1M Q4 '17: 2.7M Q1 '18: 2M Q2 '18: 4.6M Q3 '18: 4.2M Q4 '18: 3M Q1 '19: 2M Q2 '19: 4.2M Q3 '19: 4.9M Q4 '19: 1.7M Q1 '20: -234K Q2 '20: 2.8M Q3 '20: 1.3M Q4 '20: 5.5M Q1 '21: -8.3M Q2 '21: -3.8M Q3 '21: 1.6M Q4 '21: -5.7M Q1 '22: -4.2M Q2 '22: -7.1M Q3 '22: 1.4M Q4 '22: 1.1M Q1 '23: -5.6M Q2 '23: -5.3M Q3 '23: -755K Q4 '23: 4.6M Q1 '24: 4M Q2 '24: 2.5M Q3 '24: 3.8M Q4 '24: 11.7M Q1 '25: 5.4M Q2 '25: 6.4M Q3 '25: 8.7M Q4 '25: 10.9M Q1 '26: 7M Q2 '26: 11.8M Q3 '26: 14.9M Q4 '26: 10.4M Q1 '27: 7.3M Q2 '27: 19.7M Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

Net Income Quarterly

-9M 0 9M 18M 27M Q3 '17: 2.5M Q4 '17: 1.6M Q1 '18: 2.6M Q2 '18: 3.3M Q3 '18: 2.9M Q4 '18: 3.3M Q1 '19: 2.2M Q2 '19: 3.3M Q3 '19: 3.3M Q4 '19: 1.2M Q1 '20: -417K Q2 '20: 1.6M Q3 '20: 416K Q4 '20: 3.2M Q1 '21: -8.2M Q2 '21: -5M Q3 '21: 2.6M Q4 '21: -4M Q1 '22: -3.8M Q2 '22: -4.6M Q3 '22: 840K Q4 '22: -890K Q1 '23: -3.8M Q2 '23: -4.3M Q3 '23: 76K Q4 '23: -425K Q1 '24: 932K Q2 '24: 397K Q3 '24: 1.6M Q4 '24: 8M Q1 '25: 2.9M Q2 '25: 4.6M Q3 '25: 7.3M Q4 '25: 7.7M Q1 '26: 4.7M Q2 '26: 15.4M Q3 '26: 13.7M Q4 '26: 18.7M Q1 '27: 8.5M Q2 '27: 24.3M Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

Cost of Revenue Quarterly

0 50M 100M 150M Q3 '17: 42.6M Q4 '17: 39.3M Q1 '18: 50.7M Q2 '18: 53M Q3 '18: 48.7M Q4 '18: 44.2M Q1 '19: 35.1M Q2 '19: 36.7M Q3 '19: 48.1M Q4 '19: 59.5M Q1 '20: 65.9M Q2 '20: 73.2M Q3 '20: 82.8M Q4 '20: 86.2M Q1 '21: 75.3M Q2 '21: 54M Q3 '21: 69.9M Q4 '21: 62.4M Q1 '22: 47M Q2 '22: 53.3M Q3 '22: 60.2M Q4 '22: 57.5M Q1 '23: 60.5M Q2 '23: 71.1M Q3 '23: 83.9M Q4 '23: 70.1M Q1 '24: 61.3M Q2 '24: 78.4M Q3 '24: 89.3M Q4 '24: 101.3M Q1 '25: 75.1M Q2 '25: 92.2M Q3 '25: 106.7M Q4 '25: 89.1M Q1 '26: 94.7M Q2 '26: 105.1M Q3 '26: 114.9M Q4 '26: 111.1M Q1 '27: 92M Q2 '27: 143.6M Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

Operating Cash Flow Quarterly

-30M -15M 0 15M 30M 45M Q3 '17: 9.5M Q4 '17: 4.9M Q1 '18: -1.4M Q2 '18: 8.5M Q3 '18: -5M Q4 '18: 9M Q1 '19: -6.7M Q2 '19: 10.8M Q3 '19: 7.5M Q4 '19: -4M Q1 '20: 10.5M Q2 '20: 2M Q3 '20: -4.2M Q4 '20: 3.3M Q1 '21: 16.5M Q2 '21: 12.8M Q3 '21: -2.4M Q4 '21: 20.1M Q1 '22: 5.6M Q2 '22: -6.4M Q3 '22: -1M Q4 '22: 11.5M Q1 '23: -7.8M Q2 '23: 4.2M Q3 '23: 8.1M Q4 '23: 4.9M Q1 '24: 17.3M Q2 '24: 1.6M Q3 '24: 5.2M Q4 '24: 15.1M Q1 '25: 26.9M Q2 '25: 889K Q3 '25: 10.8M Q4 '25: 33.5M Q1 '26: 3.3M Q2 '26: 25.4M Q3 '26: 12.2M Q4 '26: 39.2M Q1 '27: -24.4M Q2 '27: 43.9M Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

Free Cash Flow Quarterly

-30M -15M 0 15M 30M 45M Q3 '17: 9.1M Q4 '17: 4.6M Q1 '18: -2M Q2 '18: 7.6M Q3 '18: -5.5M Q4 '18: 8.7M Q1 '19: -6.9M Q2 '19: 10.4M Q3 '19: 7.3M Q4 '19: -5.4M Q1 '20: 8.6M Q2 '20: 318K Q3 '20: -6.2M Q4 '20: 2.3M Q1 '21: 14.3M Q2 '21: 12M Q3 '21: -3.4M Q4 '21: 19M Q1 '22: 4.3M Q2 '22: -8.1M Q3 '22: -2.8M Q4 '22: 7.9M Q1 '23: -9.9M Q2 '23: 1.9M Q3 '23: 5.4M Q4 '23: 2.3M Q1 '24: 13.8M Q2 '24: -657K Q3 '24: 3.4M Q4 '24: 12.8M Q1 '25: 25M Q2 '25: -1.3M Q3 '25: 8.8M Q4 '25: 31.1M Q1 '26: 1M Q2 '26: 23.2M Q3 '26: 9.8M Q4 '26: 36.7M Q1 '27: -26.4M Q2 '27: 42.2M Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

Operating cash flow minus capital expenditure.

Shares Outstanding Quarterly

0 6M 12M 18M Q3 '17: 8.7M Q4 '17: 9M Q1 '18: 8.9M Q2 '18: 9.1M Q3 '18: 9.2M Q4 '18: 9.2M Q1 '19: 9.2M Q2 '19: 9.3M Q3 '19: 9.3M Q4 '19: 11.2M Q1 '20: 11M Q2 '20: 11.7M Q3 '20: 11.8M Q4 '20: 11.9M Q1 '21: 11.5M Q2 '21: 11.7M Q3 '21: 12.4M Q4 '21: 12M Q1 '22: 12.1M Q2 '22: 12.4M Q3 '22: 13.1M Q4 '22: 12.7M Q1 '23: 12.8M Q2 '23: 13M Q3 '23: 13.4M Q4 '23: 13.1M Q1 '24: 13.5M Q2 '24: 13.5M Q3 '24: 13.7M Q4 '24: 13.7M Q1 '25: 13.9M Q2 '25: 14.1M Q3 '25: 14.4M Q4 '25: 14.5M Q1 '26: 14.6M Q2 '26: 14.9M Q3 '26: 15.2M Q4 '26: 15.3M Q1 '27: 15.4M Q2 '27: 15.4M Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

Weighted average diluted, as the filer reports it for each period. An average cannot be added across periods, so this one is always shown per period the filer tagged rather than as a trailing year.

EPS TTM

-1.50 0.00 1.50 3.00 4.50 Q3 '17: 0.83 Q4 '17: 0.96 Q1 '18: 1.13 Q2 '18: 1.12 Q3 '18: 1.15 Q4 '18: 1.33 Q1 '19: 1.27 Q2 '19: 1.27 Q3 '19: 1.31 Q4 '19: 1.06 Q1 '20: 0.78 Q2 '20: 0.56 Q3 '20: 0.25 Q4 '20: 0.41 Q1 '21: -0.26 Q2 '21: -0.83 Q3 '21: -0.66 Q4 '21: -1.26 Q1 '22: -0.86 Q2 '22: -0.80 Q3 '22: -0.95 Q4 '22: -0.69 Q1 '23: -0.68 Q2 '23: -0.64 Q3 '23: -0.69 Q4 '23: -0.65 Q1 '24: -0.28 Q2 '24: 0.08 Q3 '24: 0.18 Q4 '24: 0.79 Q1 '25: 0.93 Q2 '25: 1.23 Q3 '25: 1.63 Q4 '25: 1.58 Q1 '26: 1.69 Q2 '26: 2.39 Q3 '26: 2.78 Q4 '26: 3.48 Q1 '27: 3.71 Q2 '27: 4.26 Q3 '18 Q4 '19 Q1 '21 Q2 '22 Q3 '23 Q4 '24 Q1 '26 Q2 '27

The filer's own published earnings a share for each quarter, four quarters added up. The company page divides trailing net income by the share count instead, which lands within about 1% of this and is not the same sum, so the two are named differently rather than presented as one figure.