Hera Shareholders Meeting: 2024 financial statements approved and dividend increases to 15 eurocents
Hera Custom Facet Publish Date
Custom Facet
Hera Custom Facet Publish Date
Search Bar
Asset Publisher
The Group’s process of industrial growth continues, closing 2024 with key operating-financial indicators and investments rising, continuing to successfully seize market opportunities and generate value for the local areas served and all stakeholders

The Hera Extraordinary and Ordinary Shareholders Meeting, chaired by Executive Chairman Cristian Fabbri, approved the 2024 financial statements and payment of a dividend increasing to 15 eurocents per share, in line with what had been previously announced when the 2028 Business Plan was presented, due to the significant results achieved.
Also presented to Shareholders Meeting was the Sustainability reporting which, as of this year, is an integral part of the consolidated and separate financial statements at 31 December 2024, as required by the Corporate Sustainability Reporting Directive (CSRD) 2022/2464/EU.
Among the various resolutions passed, the Shareholders Meeting also approved an amendment to the Articles of Association, in compliance with Legislative Decree 125/2024 implementing the CSRD.
Amendment of Article 29 of the Articles of Association: new position of Manager responsible for Sustainability reporting
As part of the European Green Deal, in order to strengthen companies’ reporting obligations, Legislative Decree 125/2024 introduced the possibility of establishing the position of the Sustainability reporting manager. The Shareholders Meeting therefore approved the amendments of the Articles of Association aimed at regulating the procedures for appointment and the requirements concerning experience and professionalism for this new figure, in compliance with current legislation.
2024 financial statements approved with further growth in key indicators
The Shareholders Meeting approved the 2024 financial statements, which indicate increases in the main operating and financial indicators and investments. The creation of value for all stakeholders and the Group’s solid equity once again prove the validity of its multi-business model and its ability to combine corporate growth and sustainable development.
Among the main results: adjusted Ebitda rose to 1,587.6 million euro (+6.2%), mainly showing internal and structural growth, and the adjusted net profit attributable to shareholders increased sharply, reaching 494.5 million euro (+31.8%). Total operating investments grew to 860.3 million euro (+5.5%), an increase that demonstrates the ongoing focus on developing, enhancing and strengthening the resilience of assets under management, whose resistance was confirmed even during the extreme weather and climate phenomena that hit Emilia-Romagna last autumn.
Payment of a dividend increasing to 15 euro cents per share approved
The Ordinary Shareholders Meeting approved the Board of Directors’ proposal to pay a dividend coming to 15 eurocents per share, up 7.1% compared to the last dividend paid. The ex-dividend date was set at 23 June 2025, with payment as of 25 June 2025.
Sustainability reporting: growth in shared value Ebitda and investments
During the presentation of the 2024 financial statements, the Hera Group’s Sustainability reporting was also put to the attention of the Shareholders Meeting. In accordance with the CSRD and the European Sustainability Reporting Standards (ESRS), as of this year it is an integral part of the Directors’ report and contains all information needed to understand the company’s impact on sustainability issues and how they affect its performance and results.
For further information
Press release
Visit Shareholders’ Meeting web area
2024 Financial Statements
Creating Shared Value 2024
Asset Publisher
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: contentDate = hera_template_tool.getD... [in template "20099#20135#57725658" at line 72, 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>