Hera Group and Ascopiave finalise 92% acquisition of Asco TLC
Hera Custom Facet Publish Date
Custom Facet
Hera Custom Facet Publish Date
Search Bar
Asset Publisher
The year closed with a 4% increase in net profit attributable to shareholders and a 20% rise in investments. Value creation for all stakeholders and a solid capital structure once again confirm the Group’s ability to combine business growth with sustainable development. The proposed dividend increases to 16 euro cents per share, up 6.7%

Economic and financial highlights
- Revenues at €12,812.2 million (-0.6%)
- EBITDA at €1,537.2 million (-3.2%)
- Net profit attributable to shareholders at €464.3 million (+3.9% on a like-for-like basis compared with FY2024, which benefited from extraordinary items of €47.8 million)
- Gross operating investments of €1,028 million (+19.5%)
- Net financial debt slightly down to €3,944.4 million, with net debt/EBITDA at 2.57x
- ROI at 9.6% and ROE at 11.6%
- Proposed dividend increased to 16 euro cents per share (+6.7%)
Business highlights
- Around 4.4 million energy customers, with over 7.5 million citizens receiving at least one service from the Group
- Innovative initiatives continued to support the communities served in the ecological transition and strengthen the resilience of managed assets, in line with the Business Plan and the Net Zero target by 2050
- Shared-value EBITDA rose to €915.6 million (+7%), while shared-value investments amounted to €810.9 million (78% of total investments). 64% of investments are aligned with the European Taxonomy.
- Economic added value distributed across the areas served exceeded €2.1 billion
The Board of Directors of the Hera Group, chaired by Executive Chairman Cristian Fabbri, unanimously approved the Annual Financial Report as at 31 December 2025, including the Sustainability Reporting pursuant to Directive (EU) 2022/2464 (CSRD), containing the information necessary to understand the company’s impact on sustainability matters and how those matters affect its performance and results. In 2025, the Hera Group continued along its path of industrial growth, with investments up by almost 20%, increasing across all businesses and particularly in the environment and integrated water cycle areas. The Group’s commitment to combining business growth and sustainable development, fully in line with the strategic pillars set out in the Business Plan, was confirmed. The economic and balance sheet results in fact highlight the value creation capability underpinning the Group’s growth.
Cristian Fabbri, Executive Chairman of Hera Group:

“The positive results achieved in 2025 bring to a close the three-year term of office of the Board of Directors, a period marked by strong geopolitical instability and extreme weather events, which also had an impact on the businesses we manage. Despite this context, we accelerated industrial growth by investing almost €3 billion, 43% more than in the previous three-year period, improving the resilience of our assets and our contribution to environmental sustainability. We achieved significant results, confirming the validity of the direction taken by our Group and demonstrating that business growth, value creation and sustainable development can go hand in hand. Over these three years, EBITDA has grown by almost 20%, while net profit attributable to shareholders has grown continuously, up 44% overall. The cash flows generated enabled us to reduce debt and improve financial leverage. Total Shareholder Return increased overall by 77%, supported by 27% growth in dividends. At the same time, the economic value distributed to our stakeholders also increased significantly, exceeding €2.1 billion in 2025. In light of the positive results achieved and the financial strength of our Group, we will propose to the Shareholders’ Meeting the distribution of a dividend of 16 euro cents per share, up 6.7% on the last dividend paid. This increase will feed through to our dividend policy over the coming years, up to a dividend of 19 euro cents in 2029, as set out in our Business Plan.”
Orazio Iacono, CEO of the Hera Group:
"In 2025, against a complex macroeconomic backdrop, the Hera Group continued along its industrial development path, increasing investments by 20% to €1.028 billion, the highest level in Hera’s history. These investments were fully self-financed thanks to the significant cash generation achieved during the year and provide a solid foundation for the future development of our Group. At EBITDA level, which reached €1.537 billion, 2025 demonstrated our ability to turn the extraordinary opportunities of previous years into structural and sustainable growth. Net finance costs decreased compared with the previous year, confirming our ongoing commitment to the efficient rationalisation of financial resources. Accordingly, in 2025 as well, the Hera Group confirmed its ability to create value, reporting net profit attributable to shareholders of €464.3 million (+3.9%). In summary, the year closed on a positive note, with a further strengthening of our financial and economic solidity, as evidenced by a net debt/EBITDA ratio of 2.57x, which provides us with significant financial flexibility to pursue effectively the objectives set out in the Business Plan. A recent example is the acquisition of the Sostelia Group, a company with more than 1,200 customers, which positions us as a leader also in the market segment for the treatment of civil and industrial wastewater, further expanding our range of services in support of Italy’s industrial fabric".
For further information:
Press release
Investors web area
Asset Publisher
Hera Group and Ascopiave finalise 92% acquisition of Asco TLC
The transaction represents a strategic step in the business portfolio evolution of both the groups in the IT-TLC sector

The Hera Group, through its subsidiary Acantho, and the Ascopiave Group finalised the acquisition of 92% of the shares of Asco TLC, with stakes of 36.8% and 55.2% respectively.
The closing follows the award, at the end of November 2022, of the public tender procedure called by Asco Holding for the sale of 92% of the shares of Asco TLC, held by Asco Holding itself and by the Treviso-Belluno Chamber of Commerce, and the subsequent signing on 29 December 2022 of the related contract documentation between the Hera Group and the Ascopiave Group.
The cash-settled acquisition price is EUR 37.2 million.
For the two groups, the transaction represents a strategic step in the evolution of the business portfolio in the IT-TLC sectors, in line with their respective industrial plans. Moreover, it is the first step of a broader operation that would lead, through the merger of Asco TLC into Acantho, to the birth of a multi-regional operator with significant operational synergies compared to the stand-alone companies, and benefits for customers as well.
For further information
Press release
Search Results
Java method "static it.reply.open.hera.template.custom.service.WidgetTemplateTool.getDateFormattedBy(String, String, Locale)" threw an exception; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: publishDate = hera_template_tool.getD... [in template "20099#20135#57725658" at line 73, column 13]
----
1<#assign
2assetVocabularyLocalServiceUtil = objectUtil("com.liferay.asset.kernel.service.AssetVocabularyLocalServiceUtil")
3vocabularyComunicatiStampa = assetVocabularyLocalServiceUtil.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), languageUtil.get(locale, "comunicati-stampa"))
4vocabularyId = vocabularyComunicatiStampa.vocabularyId
5/>
6
7
8<#assign
9companyId=themeDisplay.getCompanyId() languageId=themeDisplay.getLanguageId()
10currentUrl=themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() url=portalUtil.getPortalURL(themeDisplay)
11HERA_FIELD_TITLE="title_" + languageId
12HERA_FIELD_LOCALIZED_TITLE="title_" + languageId
13HERA_FIELD_SIMPLE_TITLE="title"
14HERA_FIELD_URL_TITLE="urlTitle"
15HERA_FIELD_CONTENT="content_" + languageId
16HERA_FIELD_DESCRIPTION="description"
17HERA_FIELD_DESCRIPTION_IT="description_" + languageId
18HERA_FIELD_PUBLISH_DATE="publishDate"
19HERA_FIELD_DISPLAYDATE="displayDate"
20HERA_FIELD_CREATEDATE="createDate"
21HERA_FIELD_CLASS_TYPE_ID="classTypeId"
22HERA_FIELD_ENTRY_CLASS_NAME="entryClassName"
23HERA_FIELD_CLASSPK="entryClassPK"
24HERA_FIELD_ENTRY_CLASS_NAME_LAYOUT="com.liferay.portal.kernel.model.Layout"
25HERA_FIELD_ENTRY_CLASS_NAME_JA="com.liferay.journal.model.JournalArticle"
26HERA_FIELD_ENTRY_CLASS_NAME_DFE="com.liferay.document.library.kernel.model.DLFileEntry"
27HERA_FIELD_ENTRY_CLASS_NAME_USER="com.liferay.portal.kernel.model.User"
28HERA_FIELD_ENTRY_CLASS_NAME_FOLDER="com.liferay.document.library.kernel.model.DLFolder"
29HERA_FIELD_ENTRY_CLASS_NAME_DDLRECORD="com.liferay.dynamic.data.lists.model.DDLRecord"
30HERA_FIELD_ENTRY_CLASS_NAME_DDMFORMINSTANCERECORD="com.liferay.dynamic.data.mapping.model.DDMFormInstanceRecord"
31HERA_FIELD_PREFIX="ddm__keyword__"
32HERA_FIELD_PREFIX_TEXT="ddm__text__"
33HERA_FIELD_SOTTOTITOLO="__sottotitolo_"
34HERA_FIELD_IMMAGINE="__immagine_"
35HERA_FIELD_IMMAGINE_TYPE2= "__immagine_r13v_"
36HERA_ASSET_CATEGORY_TITLE="assetCategoryTitles"
37HERA_FIELD_USER_FULLNAME="fullName"
38HERA_FIELD_USER_EMAIL_ADDRESS="emailAddress"
39HERA_ORA_PUBBLICAZIONE="__ora_pubblicazione_"
40HERA_CONTENT="content_" + languageId
41
42CATEGORY_HERA_SPA=languageUtil.get(locale, "hera-spa")
43CATEGORY_IR_PRICE=languageUtil.get(locale, "ir-price")
44/>
45
46
47<#-- gruppohera_results.jsp es. ddm__keyword__54911__sottotitolo_it_IT es. displayDate -->
48
49<#-- Abilitare o Disabilitare Highlight dei termini ricercati in configurazione -->
50<#assign isHighlightEnabled=true />
51<#if portletPreferences["highlightEnabled"]?? && portletPreferences["highlightEnabled"][0]?has_content>
52 <#assign isHighlightEnabled=portletPreferences["highlightEnabled"][0] />
53</#if>
54
55<#assign docs=searchContainer.getResults() />
56
57
58<div class="container archivio my-4">
59 <#if docs?has_content>
60 <#list docs as d>
61
62 <#assign contentTitle="" contentSummary="" content="" contentDate="" />
63
64 <#assign contentTitle=hera_template_tool.highlight(d.get(HERA_FIELD_LOCALIZED_TITLE),searchResultsPortletDisplayContext.getKeywords(), isHighlightEnabled?boolean)
65 classTypeId=d.get(HERA_FIELD_CLASS_TYPE_ID)
66 sottotitolo=d.get(HERA_FIELD_PREFIX + classTypeId + HERA_FIELD_SOTTOTITOLO + languageId)
67 description=hera_template_tool.highlight(d.get(HERA_FIELD_DESCRIPTION_IT), searchResultsPortletDisplayContext.getKeywords(), isHighlightEnabled?boolean)
68 immagineInEvidenza=d.get(HERA_FIELD_PREFIX_TEXT+classTypeId + HERA_FIELD_IMMAGINE + languageId)
69 immagineInEvidenzaType2=d.get(HERA_FIELD_PREFIX_TEXT+classTypeId + HERA_FIELD_IMMAGINE_TYPE2 + languageId)
70 urlTitle=d.get(HERA_FIELD_URL_TITLE)
71 contentSummary=hera_template_tool.highlight(d.get(HERA_CONTENT), searchResultsPortletDisplayContext.getKeywords(), isHighlightEnabled?boolean)
72 contentDate=hera_template_tool.getDateFormattedBy(d.get(HERA_FIELD_DISPLAYDATE),"dd/MM/yyyy",locale)
73 publishDate=hera_template_tool.getDateFormattedBy(d.get(HERA_FIELD_PUBLISH_DATE),"dd/MM/yyyy",locale)
74 oraPubblicazione = d.get(HERA_FIELD_PREFIX +classTypeId + HERA_ORA_PUBBLICAZIONE + languageId)
75 oraPubblicazioneObj = oraPubblicazione
76 checkcategory=0
77 contentUrl=hera_template_tool.getSearchResultViewURL(renderRequest, renderResponse,
78 d.get(HERA_FIELD_ENTRY_CLASS_NAME), d.get(HERA_FIELD_CLASSPK)?number, true, currentUrl)
79 content=d.get(HERA_FIELD_CONTENT) titlepage=languageUtil.get(locale, titlepage,
80 layout.getName(locale)) />
81
82 <#attempt>
83 <#assign immagineInEvidenzaObj=jsonFactoryUtil.createJSONObject(immagineInEvidenza)/>
84 <#recover>
85 <#attempt>
86 <#assign immagineInEvidenzaObj=jsonFactoryUtil.createJSONObject(immagineInEvidenzaType2)/>
87 <#recover>
88 <#assign immagineInEvidenzaObj=""/>
89 </#attempt>
90 </#attempt>
91
92 <#assign param_sezione = request.getParameter("selectedSection")!"" />
93 <#assign idSezione = 0 /> <!-- Imposta un valore di default -->
94 <#if param_sezione?has_content>
95 <#assign idSezione = param_sezione?number />
96 </#if>
97 <#assign articleToSee = 0 />
98 <#assign assetCategoryList= hera_template_tool.getAssetCategoryList(d.get("rootEntryClassPK"))/>
99 <#if idSezione != 0>
100 <#list assetCategoryList as entryCategory>
101 <#if entryCategory.vocabularyId == vocabularyId>
102 <#assign currCatId = entryCategory.categoryId>
103 <#if currCatId == idSezione>
104 <#assign articleToSee=1 />
105 <#break>
106 </#if>
107 </#if>
108 </#list>
109 <#else>
110 <#assign articleToSee = 1 />
111 </#if>
112
113 <#if articleToSee == 1>
114
115 <div class="post-item mb-3">
116 <a href="${urlTitle}" class="tile boxarchivio-round position-relative white-bg">
117 <#if immagineInEvidenzaObj?? && immagineInEvidenzaObj?has_content >
118 <div class="row d-flex align-items-center">
119 <#else>
120 <div class="row d-flex align-items-center min-height-168">
121 </#if>
122 <#if immagineInEvidenzaObj?? && immagineInEvidenzaObj?has_content && immagineInEvidenzaObj.groupId?? && immagineInEvidenzaObj.name?? && immagineInEvidenzaObj.uuid??>
123 <#assign immagineUrl="/documents/" + immagineInEvidenzaObj.groupId + "/0/" + immagineInEvidenzaObj.name + "/" + immagineInEvidenzaObj.uuid />
124 <div class="col-xs-3 col-md-2">
125 <img title="${immagineInEvidenzaObj.name}" alt="${titlepage}" class="agg-tile-image img-archivio-news" src="${immagineUrl}" />
126 </div>
127 <div class="col-xs-9 col-md-10 offset-lg-1 col-lg-9 px-5 px-md-0">
128 <div class="container px-lg-3 pr-xl-4">
129 <div class="black py-2 small">
130 <div class="mr-0 mr-md-5 d-inline">
131 <#attempt>
132 ${contentDate}
133 <#recover>
134 </#attempt>
135 </div>
136 <#--assign assetCategoryList= hera_template_tool.getAssetCategoryList(d.get("rootEntryClassPK"))/-->
137 <#list assetCategoryList as entryCategory>
138 <#if entryCategory.vocabularyId == vocabularyId || true>
139 <#assign catName = entryCategory.name>
140 <#if catName==CATEGORY_HERA_SPA>
141 <#assign checkcategory=1 />
142 </#if>
143 <#if catName==CATEGORY_IR_PRICE>
144 <#assign checkcategory=1 />
145 </#if>
146
147 <div class="mr-2 d-inline gruppo-color-bg white px-1 py-0 py-lg-1 py-md-1 ${catName?lower_case}">
148 ${catName}
149 </div>
150 </#if>
151 </#list>
152 </div>
153
154 <h3 class="titlesize bigger black letter-spacing-sm bolder"> ${contentTitle}</h3>
155 <#if description?? && description?has_content>
156 <div class="d-none d-lg-block greyish-brown tilesize"> ${description} </div>
157 <#else>
158 <div class="d-none d-lg-block greyish-brown tilesize">
159 ${contentSummary}
160
161 </div>
162 </#if>
163 <#if checkcategory==1>
164 <i class="black py-2 mr-0 mr-md-3">
165 <#if publishDate!=""> ${languageUtil.get(locale, "online-since")} ${publishDate} </#if>
166 <#--<#list oraPubblicazioneObj as ora_pubb>-->
167 <#attempt>
168 <#if oraPubblicazioneObj!="">
169 ${languageUtil.get(locale, "at-hour")} ${oraPubblicazioneObj?datetime("HH:mm:ss")?string("HH:mm")}
170 </#if>
171 <#recover>
172 </#attempt>
173 <#--</#list>-->
174
175 </i>
176 </#if>
177 </div>
178 </div>
179 <#else>
180 <div class="col-xs-12 col-md-10">
181 <div class="container">
182 <div class="ml-4 black py-2 small mr-3">
183 <div class="mr-5 d-inline">
184 ${contentDate}
185 </div>
186 <div class="mr-2 d-inline gruppo-color-bg white px-1 py-0 py-lg-1 py-md-1">
187 <#assign assetCategoryList= hera_template_tool.getAssetCategoryList(d.get("rootEntryClassPK"))/>
188 <#list assetCategoryList as entryCategory>
189 <#if entryCategory.vocabularyId == vocabularyId>
190 <#assign catName = entryCategory.name>
191 <#if catName==CATEGORY_HERA_SPA>
192 <#assign checkcategory=1 />
193 </#if>
194 <#if catName==CATEGORY_IR_PRICE>
195 <#assign checkcategory=1 />
196 </#if>
197
198 <div class="mr-2 d-inline gruppo-color-bg white px-1 py-0 py-lg-1 py-md-1">
199 ${catName}
200 </div>
201 </#if>
202 </#list>
203 </div>
204 </div>
205 <h3 class="titlesize bigger ml-4 black letter-spacing-sm bolder"> ${contentTitle}</h3>
206 <#if description?? && description?has_content>
207 <div class="d-none d-lg-block black tilesize ml-4">
208 ${description}
209 </div>
210 <#else>
211 <div class="d-none d-lg-block greyish-brown tilesize ml-4">
212 ${contentSummary}
213
214 </div>
215 </#if>
216 <#if checkcategory==1>
217 <i class="ml-4 black py-2 small mr-3">
218 <#if publishDate!=""> ${languageUtil.get(locale, "online-since")} ${publishDate} </#if>
219 <#--<#list oraPubblicazioneObj as ora_pubb>-->
220 <#if oraPubblicazioneObj!="">
221 ${languageUtil.get(locale, "at-hour")} ${oraPubblicazioneObj?datetime("HH:mm:ss")?string("HH:mm")}
222 </#if>
223 <#--</#list>-->
224 </i>
225 </#if>
226 </div>
227 </div>
228 </#if>
229 </div>
230 </a>
231 </div>
232 </#if>
233 </#list>
234 </#if>
235</div>
236
237
238<script>
239 $(document).ready(function () {
240 var url = window.location.href;
241 if (url.indexOf("/-/")>=0){
242 var recoverurl=localStorage.getItem("reindexcomunicati");
243 $(".reindexlink").attr("href",recoverurl);
244 }else{
245 localStorage.setItem("reindexcomunicati", url);
246 }
247 });
248</script>