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 Q1 '11: 17M Q2 '11: 20.4M Q3 '11: 20.7M Q4 '11: 19.9M Q1 '12: 22.7M Q2 '12: 25.8M Q3 '12: 28.6M Q4 '12: 30M Q1 '13: 25.5M Q2 '13: 23.5M Q2 '13: 23.5M Q3 '13: 21.5M Q4 '13: 22.9M Q4 '13: 22.9M Q1 '14: 21.4M Q1 '14: 21.4M Q2 '14: 20.5M Q3 '14: 21.2M Q4 '14: 22.5M Q1 '15: 22.7M Q2 '15: 27M Q3 '15: 28.2M Q4 '15: 30.2M Q1 '16: 33.3M Q2 '16: 36.8M Q3 '16: 33.5M Q4 '16: 31.5M Q1 '17: 33.9M Q2 '17: 58.9M 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 Q2 '12 Q1 '14 Q1 '16 Q2 '18 Q3 '20 Q4 '22 Q1 '25 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

-21M -14M -7M 0 7M 14M 21M Q1 '11: 385K Q2 '11: 1.3M Q3 '11: 1.4M Q4 '11: 30K Q1 '12: -280K Q2 '12: 954K Q3 '12: 2.4M Q4 '12: 347K Q1 '13: -2.3M Q2 '13: -19.6M Q2 '13: -19.6M Q3 '13: 1.4M Q4 '13: 1.2M Q4 '13: 1.2M Q1 '14: 457K Q1 '14: 457K Q2 '14: 718K Q3 '14: 882K Q4 '14: 551K Q1 '15: 1.3M Q2 '15: 1.9M Q3 '15: 2.7M Q4 '15: 2.4M Q1 '16: 2.6M Q2 '16: 2.8M Q3 '16: 1.6M Q4 '16: 456K Q1 '17: 1.8M Q2 '17: 4M 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 Q2 '12 Q1 '14 Q1 '16 Q2 '18 Q3 '20 Q4 '22 Q1 '25 Q2 '27

Net Income Quarterly

-18M -9M 0 9M 18M 27M Q1 '11: 392K Q2 '11: 1.3M Q3 '11: 788K Q4 '11: 282K Q1 '12: -291K Q2 '12: 735K Q3 '12: 2.2M Q4 '12: -779K Q1 '13: -1.4M Q2 '13: -17M Q2 '13: -17M Q3 '13: 787K Q4 '13: 300K Q4 '13: 300K Q1 '14: 399K Q1 '14: 399K Q2 '14: 688K Q3 '14: 842K Q4 '14: 701K Q1 '15: 1.3M Q2 '15: 1.9M Q3 '15: 4.2M Q4 '15: 2M Q1 '16: 1.5M Q2 '16: 1.6M Q3 '16: 782K Q4 '16: 380K Q1 '17: 1.1M Q2 '17: 3.2M 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 Q2 '12 Q1 '14 Q1 '16 Q2 '18 Q3 '20 Q4 '22 Q1 '25 Q2 '27

Cost of Revenue Quarterly

0 50M 100M 150M Q1 '11: 8.3M Q2 '11: 10.8M Q3 '11: 11.5M Q4 '11: 11.5M Q1 '12: 13.6M Q2 '12: 15.5M Q3 '12: 16.9M Q4 '12: 18.8M Q1 '13: 17.2M Q2 '13: 17.1M Q3 '13: 11.3M Q4 '13: 13.4M Q1 '14: 12M Q2 '14: 11.4M Q3 '14: 12M Q4 '14: 13.5M Q1 '15: 13.2M Q2 '15: 16.3M Q3 '15: 16.5M Q4 '15: 17.9M Q1 '16: 19.8M Q2 '16: 22.9M Q3 '16: 21M Q4 '16: 18.4M Q1 '17: 20.3M Q2 '17: 41.1M 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 '11 Q4 '13 Q1 '16 Q2 '18 Q3 '20 Q4 '22 Q1 '25 Q2 '27

Operating Cash Flow Quarterly

-30M -15M 0 15M 30M 45M Q1 '12: 670K Q2 '12: 914K Q3 '12: 1.5M Q1 '13: -824K Q2 '13: 1.7M Q3 '13: 3.7M Q4 '13: 77K Q1 '14: 705K Q2 '14: 1.3M Q3 '14: 2.1M Q1 '15: 4.7M Q2 '15: -313K Q3 '15: 1.4M Q4 '15: 6.1M Q1 '16: -2.3M Q2 '16: 5.1M Q3 '16: 2.9M Q4 '16: 2.4M Q1 '17: -1.6M Q2 '17: 8.9M 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 Q1 '13 Q2 '15 Q2 '17 Q2 '19 Q2 '21 Q2 '23 Q2 '25 Q2 '27

Free Cash Flow Quarterly

-30M -15M 0 15M 30M 45M Q1 '12: 469K Q2 '12: 852K Q3 '12: 1.4M Q1 '13: -897K Q2 '13: 1.6M Q3 '13: 3.6M Q4 '13: -7K Q1 '14: 640K Q2 '14: 1.3M Q3 '14: 2M Q1 '15: 4.7M Q2 '15: -610K Q3 '15: 1.2M Q4 '15: 5.8M Q1 '16: -2.5M Q2 '16: 4M Q3 '16: 2.5M Q4 '16: 1.6M Q1 '17: -1.9M Q2 '17: 8.1M 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 Q1 '13 Q2 '15 Q2 '17 Q2 '19 Q2 '21 Q2 '23 Q2 '25 Q2 '27

Operating cash flow minus capital expenditure.

Shares Outstanding Quarterly

0 6M 12M 18M Q2 '11: 7.3M Q3 '11: 7.3M Q1 '12: 7.3M Q2 '12: 7.5M Q3 '12: 7.5M Q4 '12: 7.3M Q1 '13: 7.3M Q2 '13: 7.3M Q2 '13: 7.3M Q3 '13: 7.3M Q4 '13: 7.3M Q4 '13: 7.3M Q1 '14: 7.4M Q1 '14: 7.4M Q2 '14: 7.4M Q3 '14: 7.5M Q4 '14: 7.5M Q1 '15: 7.6M Q2 '15: 7.7M Q3 '15: 7.9M Q4 '15: 8M Q1 '16: 8.1M Q2 '16: 8.1M Q3 '16: 8.1M Q4 '16: 8.1M Q1 '17: 8.2M Q2 '17: 8.5M 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 Q2 '12 Q1 '14 Q1 '16 Q2 '18 Q3 '20 Q4 '22 Q1 '25 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

-3.00 -1.50 0.00 1.50 3.00 4.50 Q4 '11: 0.37 Q1 '12: 0.27 Q2 '12: 0.20 Q3 '12: 0.38 Q4 '12: 0.24 Q1 '13: 0.09 Q2 '13: -2.34 Q4 '14: 0.34 Q1 '15: 0.46 Q2 '15: 0.62 Q3 '15: 1.04 Q4 '15: 1.21 Q1 '16: 1.22 Q2 '16: 1.17 Q3 '16: 0.74 Q4 '16: 0.53 Q1 '17: 0.48 Q2 '17: 0.65 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 Q1 '12 Q2 '15 Q2 '17 Q2 '19 Q2 '21 Q2 '23 Q2 '25 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.