Euro indicators 30 July 2024 Next release: 30 October 2024
Preliminary flash estimate for the second quarter of 2024
Skip to the content
+0.6% and +0.7% respectively compared with the second quarter of 2023
Announcement
Following recommendations for a harmonised European revision policy for national accounts and balance of payments, EU countries will carry out a benchmark revision of their national accounts estimates in 2024. The purpose of this benchmark revision is to implement changes introduced by the amended ESA 2010 regulation, and to incorporate new data sources and other methodological improvements. Most of the revised quarterly and annual country data are expected to be released by Eurostat between June and October 2024, and will be progressively integrated in European estimates. The impact of these revisions is expected to be limited, but still noticeable for some European aggregates and more pronounced for certain Member States. For further details, please consult the available documentation on Eurostat’s website.
Overview
In the second quarter of 2024, seasonally adjusted GDP increased by 0.3% in both the euro area and the EU, compared with the previous quarter, according to a preliminary flash estimate published by Eurostat, the statistical office of the European Union. In the first quarter of 2024, GDP had also grown by 0.3% in both zones.
These preliminary GDP flash estimates are based on data sources that are incomplete and subject to further revisions.
Compared with the same quarter of the previous year, seasonally adjusted GDP increased by 0.6% in the euro area and by 0.7% in the EU in the second quarter of 2024, after +0.5% in the euro area and +0.6% in the EU in the previous quarter.
Among the Member States for which data are available for the second quarter of 2024, Ireland (+1.2%) recorded the highest increase compared to the previous quarter, followed by Lithuania (+0.9%) and Spain (+0.8%). The highest declines were recorded in Latvia (-1.1%), Sweden (-0.8%) and Hungary (-0.2%). The year on year growth rates were positive for eight countries and negative for three.
Table
Published growth rates of GDP in volume up to 2024Q2 (based on seasonally adjusted* data) | ||||||||
---|---|---|---|---|---|---|---|---|
Percentage change compared with the previous quarter | Percentage change compared with the same quarter of the previous year | |||||||
2023Q3 | 2023Q4 | 2024Q1 | 2024Q2 | 2023Q3 | 2023Q4 | 2024Q1 | 2024Q2 | |
Euro area | 0.0 | 0.0 | 0.3 | 0.3 | 0.1 | 0.2 | 0.5 | 0.6 |
EU | 0.1 | 0.0 | 0.3 | 0.3 | 0.2 | 0.4 | 0.6 | 0.7 |
Belgium | 0.3 | 0.3 | 0.3 | 0.2 | 1.3 | 1.3 | 1.3 | 1.1 |
Czechia | -0.4 | 0.3 | 0.2 | 0.3 | -0.4 | 0.0 | 0.3 | 0.4 |
Germany | 0.2 | -0.4 | 0.2 | -0.1 | -0.3 | -0.2 | -0.1 | -0.1 |
Ireland | -1.7 | -1.5 | 0.7 | 1.2 | -8.3 | -9.8 | -4.0 | -1.4 |
Spain | 0.5 | 0.7 | 0.8 | 0.8 | 1.9 | 2.2 | 2.6 | 2.9 |
France | 0.1 | 0.4 | 0.3 | 0.3 | 0.9 | 1.3 | 1.5 | 1.1 |
Italy | 0.3 | 0.1 | 0.3 | 0.2 | 0.6 | 0.7 | 0.6 | 0.9 |
Latvia | -0.3 | 0.3 | 0.8 | -1.1 | 0.2 | -0.2 | 0.8 | -0.4 |
Lithuania | -0.1 | -0.2 | 0.9 | 0.9 | 0.1 | 0.1 | 3.0 | 1.4 |
Hungary | 0.8 | 0.0 | 0.7 | -0.2 | -0.2 | 0.5 | 1.6 | 1.3 |
Austria | -0.2 | 0.1 | 0.2 | 0.0 | -1.7 | -1.3 | -1.3 | 0.0 |
Portugal | -0.2 | 0.7 | 0.8 | 0.1 | 1.9 | 2.1 | 1.5 | 1.5 |
Sweden** | 0.2 | 0.3 | 0.5 | -0.8 | -0.7 | -0.1 | 0.7 | 0.0 |
* Growth rates to the previous quarter and to the same quarter of the previous year presented in this table are both based on seasonally and calendar adjusted figures, except where indicated. Unadjusted data are not available for all Member States that are included in GDP flash estimates. ** Percentage change compared with the same quarter of the previous year calculated from calendar adjusted data. Source dataset: namq_10_gdp |
The next estimates for the second quarter of 2024 will be released on 14 August 2024.
Notes for users
Revisions
The reliability of GDP flash estimates was tested by dedicated working groups and revisions of subsequent estimates are continuously monitored. Further information can be found on Eurostat website.
With this preliminary flash estimate, euro area and EU GDP figures for earlier quarters are not revised.
All figures presented in this release may be revised with the GDP t+45 flash estimate scheduled for 14 August 2024 and subsequently by Eurostat’s regular estimates of GDP and main aggregates (including employment) scheduled for 6 September 2024 and 18 October 2024, which will reflect the impact of countries’ benchmark revisions as available.
The preliminary flash estimate of GDP growth for the second quarter of 2024 presented in this release is based on the data of 18 Member States, covering 96% of euro area GDP and 94% of EU GDP.
Release schedule
Comprehensive estimates of European main aggregates (including GDP and employment) are based on countries regular transmissions and published around 65 and 110 days after the end of each quarter. To improve the timeliness of key indicators, Eurostat also publishes flash estimates for GDP (after around 30 and 45 days) and employment (after around 45 days). Their compilation is based on estimates provided by EU Member States on a voluntary basis.
This news release presents preliminary flash estimates for euro area and EU after around 30 days.
Methods and definitions
European quarterly national accounts are compiled in accordance with the European System of Accounts 2010 (ESA 2010).
Gross domestic product (GDP) at market prices measures the production activity of resident production units. Growth rates are based on chain-linked volumes.
Two statistical working papers present the preliminary GDP flash methodology for the European estimates and Member States estimates.
The method used for compilation of European GDP is the same as for previous releases.
Geographical information
Euro area (EA20): Belgium, Germany, Estonia, Ireland, Greece, Spain, France, Croatia, Italy, Cyprus, Latvia, Lithuania, Luxembourg, Malta, the Netherlands, Austria, Portugal, Slovenia, Slovakia and Finland.
European Union (EU27): Belgium, Bulgaria, Czechia, Denmark, Germany, Estonia, Ireland, Greece, Spain, France, Croatia, Italy, Cyprus, Latvia, Lithuania, Luxembourg, Hungary, Malta, the Netherlands, Austria, Poland, Portugal, Romania, Slovenia, Slovakia, Finland and Sweden.
For more information
Website section on national accounts, and specifically the page on quarterly national accounts
Database section on national accounts and metadata on quarterly national accounts
Statistics Explained articles on measuring quarterly GDP and presentation of updated quarterly estimates
Country specific metadata
Country specific metadata on the recording of Ukrainian refugees in main aggregates of national accounts
European System of Accounts 2010
Euro indicators dashboard
Release calendar for Euro indicators
European Statistics Code of Practice
Get in touch
Media requests
Eurostat Media Support
Phone: (+352) 4301 33 408
E-mail: eurostat-mediasupport@ec.europa.eu
Further information on data
Thierry COURTEL
Johannes BUCK
E-mail: estat-gdp-query@ec.europa.eu
Share component will be rendered here.
'; /** Retrieve the order from the tooltip option */ var sortOrder = option.tooltip.order; /** Sort the 'params' array based on the 'sortOrder' parameter. */ switch (sortOrder) { /** Sort by series name in ascending order. */ case 'seriesAsc': params = params.sort((a, b) => a.seriesName.localeCompare(b.seriesName)); break; /** Sort by series name in descending order. */ case 'seriesDesc': params = params.sort((a, b) => b.seriesName.localeCompare(a.seriesName)); break; /** Sort by numerical value in ascending order. */ case 'valueAsc': params = params.sort((a, b) => parseFloat(a.value) - parseFloat(b.value)); break; /** Sort by numerical value in descending order. */ case 'valueDesc': params = params.sort((a, b) => parseFloat(b.value) - parseFloat(a.value)); break; /** Reverse the current order. */ case 'reverse': params.reverse(); break; default: break; } /** Iterate over each series in the tooltip parameters */ for (var i = 0; i < params.length; i++) { /** Retrieve the name and value of the current series */ var seriesName = params[i].seriesName; var value = params[i].value; /** Replace every specific apostrphe by simple one. */ seriesName = seriesName.replaceAll("’", "'"); /** Convert the numeric value to its string representation. */ var strValue = String(value); /** Retrieve the axis used as value */ var axis = option.yAxis.type === 'value' ? option.yAxis : option.xAxis; /** Initialize the number of decimal places */ var decimals = option.tooltip.decimals; /** Check if decimals configuration is set to default and the value contains decimal places */ if (!decimals && strValue.indexOf('.') > -1) { /** Calculate the number of decimal places */ decimals = strValue.substring(strValue.indexOf('.'), strValue.length - 1).length; } else { /** If there are no decimal places, format the value with 1 decimal place */ decimals = decimals ? decimals : 1; /** Convert the value to a fixed-point notation string with a specified number of decimal places. */ value = Number(value).toFixed(decimals); } /** Convert -0 value to 0 with the specified or calculated number of decimal places.*/ if (Number(value) == -0) { value = (Number(value) + 0).toFixed(decimals); } /** Extract the unit from within the axis label */ var unit = axis.axisLabel.unit ? axis.axisLabel.unit : ''; /** Format the value using the appropriate number of decimal places */ value = isNaN(value) ? 'N/A' : Number(value).toLocaleString(option.lang ? option.lang : 'en', { minimumFractionDigits: decimals }) + unit; /** Retrieve the color of the current series */ const color = params[i].color; /** * Add the series name and value to the tooltip content * Use a circle icon with the series color */ tooltipContent += '
' + '' + '' + '' + seriesName + '' + '' + '' + value + '' + '
'; } /** Close the tooltip content container */ tooltipContent += '
'; /** Return the formatted tooltip content */ return tooltipContent; }}/* * This content is licensed according to the W3C Software License at * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document * * File: sortable-table.js * * Desc: Adds sorting to a HTML data table that implements ARIA Authoring Practices */'use strict';class SortableTable { constructor(tableNode) { this.tableNode = tableNode; this.columnHeaders = tableNode.querySelectorAll('thead th.sortable'); this.sortColumns = []; for (var i = 0; i < this.columnHeaders.length; i++) { var ch = this.columnHeaders[i]; var buttonNode = ch.querySelector('button'); if (buttonNode) { this.sortColumns.push(i); // buttonNode.setAttribute('data-column-index', i); // buttonNode.addEventListener('click', this.handleClick.bind(this)); ch.setAttribute('data-column-index', i); ch.addEventListener('click', this.handleClick.bind(this)); } } this.optionCheckbox = document.querySelector( 'input[type="checkbox"][value="show-unsorted-icon"]' ); if (this.optionCheckbox) { this.optionCheckbox.addEventListener( 'change', this.handleOptionChange.bind(this) ); if (this.optionCheckbox.checked) { this.tableNode.classList.add('show-unsorted-icon'); } } } setColumnHeaderSort(columnIndex) { if (typeof columnIndex === 'string') { columnIndex = parseInt(columnIndex); } for (var i = 0; i < this.columnHeaders.length; i++) { var ch = this.columnHeaders[i]; var buttonNode = ch.querySelector('button'); if (i === columnIndex) { var value = ch.getAttribute('aria-sort'); if (value === 'ascending') { ch.setAttribute('aria-sort', 'descending'); this.sortColumn( columnIndex, 'descending', ch.classList.contains('num')); } else if (value === 'descending') { ch.removeAttribute('aria-sort'); this.sortColumn( columnIndex, 'initial', true ); } else { ch.setAttribute('aria-sort', 'ascending'); this.sortColumn( columnIndex, 'ascending', ch.classList.contains('num') ); } } else { if (ch.hasAttribute('aria-sort') && buttonNode) { ch.removeAttribute('aria-sort'); } } } } sortColumn(columnIndex, sortValue, isNumber) { function compareValues(a, b) { if (a.value === b.value) return 0; if (sortValue === 'descending') { return isNumber ? b.value - a.value : (a.value > b.value ? -1 : 1); } else { return isNumber ? a.value - b.value : (a.value < b.value ? -1 : 1); } } if (typeof isNumber !== 'boolean') { isNumber = false; } var tbodyNode = this.tableNode.querySelector('tbody'); var rowNodes = []; var dataCells = []; var rowNode = tbodyNode.firstElementChild; var index = 0; while (rowNode) { rowNodes.push(rowNode); var rowCells = rowNode.querySelectorAll('th, td'); var dataCell = rowCells[columnIndex]; var data = {}; data.index = index; if (sortValue !== 'initial') { data.value = dataCell.textContent.toLowerCase().trim(); } else { data.value = rowNode.getAttribute('initial-position').toLowerCase().trim(); } if (isNumber) { data.value = parseFloat(data.value); } dataCells.push(data); rowNode = rowNode.nextElementSibling; index += 1; } dataCells.sort(compareValues); // remove rows while (tbodyNode.firstChild) { tbodyNode.removeChild(tbodyNode.lastChild); } // add sorted rows for (var i = 0; i < dataCells.length; i += 1) { let pos = [dataCells[i].index]; if (sortValue === "initial") { rowNodes[pos].classList.remove("sorted"); } else { rowNodes[pos].classList.add("sorted"); } tbodyNode.appendChild(rowNodes[pos]); } } /* EVENT HANDLERS */ handleClick(event) { var tgt = event.currentTarget; this.setColumnHeaderSort(tgt.getAttribute('data-column-index')); } handleOptionChange(event) { var tgt = event.currentTarget; if (tgt.checked) { this.tableNode.classList.add('show-unsorted-icon'); } else { this.tableNode.classList.remove('show-unsorted-icon'); } }}$(document).ready(function() { load(); });;}());
Subscribe to receive the latest Eurostat Euro indicators releases