ESS Tech (GWH) Operating Expenses (2020 - 2026)
ESS Tech's Operating Expenses came in at $7.71 million for Q2 2026, up 19.5% from $6.46 million a year earlier and up 14.4% from the prior quarter.
ESS Tech (GWH) Operating Expenses (2020 - 2026) Analysis & Trends
Over the trailing twelve months to Jun 30, 2026, ESS Tech reported Operating Expenses of $27.74 million, down 27.1% year-over-year; for FY2025, it was $29.74 million, down 33.1% from FY2024.
- Operating Expenses has declined in each of the last three years, though with a five-year compound annual growth rate of 11.3% (FY2020 to FY2025).
- Going back by year, Operating Expenses was $44.44 million in FY2024 (-39.1%), $72.95 million in FY2023 (-31.4%), $106.39 million in FY2022 (+75.5%) and $60.6 million in FY2021 (+248.4%).
- The five-year range for quarterly Operating Expenses is $5.09 million (Q3 2025) to $31.41 million (Q4 2022).
- Year-over-year, Operating Expenses increased in two of the last eight quarters, with an average decline of 16.9%.
- The fastest year-over-year change in Operating Expenses over five years came in Q1 2022 (growth of 167.8%), and the weakest in Q3 2023 (a decline of 66.0%).
- Business Quant data shows GWH's Operating Expenses at $6.74 million (Q1 2026), $8.19 million (Q4 2025) and $5.09 million (Q3 2025) in the three quarters before Q2 2026.
Peer Comparison
| # | Company | Market Cap | Enterprise Value | Gross Profit (Qtr) | Opex (Qtr) |
|---|---|---|---|---|---|
| 1 | GE Vernova | 252.99 Bn | 214.06 Bn | 2.36 Bn | 1.71 Bn |
| 2 | Bloom Energy | 81.25 Bn | 73.07 Bn | 355.57 Mn | 173.34 Mn |
| 3 | First Solar | 18.82 Bn | 9.78 Bn | 605.00 Mn | 154.62 Mn |
| 4 | BWX Technologies | 12.55 Bn | 10.85 Bn | 202.31 Mn | 811.92 Mn |
| 5 | Generac Holdings | 12.21 Bn | 11.04 Bn | 521.81 Mn | 311.38 Mn |
| 6 | Nextpower | 11.82 Bn | 7.71 Bn | 335.85 Mn | 144.95 Mn |
| 7 | EnerSys | 6.67 Bn | 4.86 Bn | 313.36 Mn | 151.24 Mn |
| 8 | Enphase Energy | 4.36 Bn | -500.13 Mn | 175.01 Mn | 123.50 Mn |
| 9 | Mirion Technologies | 3.45 Bn | 1.34 Bn | 133.10 Mn | 115.20 Mn |
| 10 | ESS Tech | 5.59 Mn | 5.59 Mn | -7.42 Mn | 7.71 Mn |
Historic Data
| Date | Value |
|---|---|
| Jun 30, 2026 | 7.71 Mn |
| Mar 31, 2026 | 6.74 Mn |
| Dec 31, 2025 | 8.19 Mn |
| Sep 30, 2025 | 5.09 Mn |
| Jun 30, 2025 | 6.46 Mn |
| Mar 31, 2025 | 10.00 Mn |
| Dec 31, 2024 | 10.31 Mn |
| Sep 30, 2024 | 11.30 Mn |
| Jun 30, 2024 | 11.73 Mn |
| Mar 31, 2024 | 11.11 Mn |
| Dec 31, 2023 | 11.55 Mn |
| Sep 30, 2023 | 9.50 Mn |
| Jun 30, 2023 | 27.03 Mn |
| Mar 31, 2023 | 24.87 Mn |
| Dec 31, 2022 | 31.41 Mn |
| Sep 30, 2022 | 27.92 Mn |
| Jun 30, 2022 | 24.86 Mn |
| Mar 31, 2022 | 22.19 Mn |
| Dec 31, 2021 | 31.13 Mn |
| Sep 30, 2021 | 11.04 Mn |
ESS Tech Operating Expenses API
Pull this series into your own models, spreadsheets and apps with the Business Quant
Historical Metrics API. The request below matches the chart above — change the
frequency, period or values and it follows. Swap YOUR_API_KEY for your own key.
https://data.businessquant.com/historic?slug=operating-expenses&ticker=GWH&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "operating-expenses", "ticker": "GWH", "period": "max", "api_key": "YOUR_API_KEY"}
data = requests.get(url, params=params).json()
const res = await fetch("https://data.businessquant.com/historic?slug=operating-expenses&ticker=GWH&period=max&api_key=YOUR_API_KEY");
const data = await res.json();