European gas storage data in Excel, without losing the meaning
By OilPriceAPI · Published November 7, 2026
A useful storage workbook should show more than a filling percentage. Show the gas day, reported capacity, source quality status and retrieval time. Otherwise, a refresh can make an old observation look newly published.
This tutorial uses a locally saved CSV from the direct GIE Python workflow. The collection process holds the GIE API key; Excel reads only the resulting file. These CSV columns are the tutorial's interchange format, not an OilPriceAPI response or a native Excel add-in.
Separate collection from analysis
- Run a controlled collector that archives raw GIE pages and writes
storage.csvplus a quality report. - Import the CSV into Excel, preserve its types, and build the report from that table.
GIE AGSI also provides direct API access and Excel examples in its API manual. A key embedded in Power Query can be inspected by someone with workbook access; a hidden sheet is not a secret store. A local CSV avoids that exposure but refreshes only when the collection process updates the file.
Build three sheets
- Inputs: CSV path, capacity and scenario assumptions, each with a unit. Label a target as analyst-selected, not an official requirement.
- Storage: one imported row per gas day for one fixed aggregate. Keep the fields below intact.
- Report: chart, latest gas day, quality notes and scenario output, with a path back to the source table.
Import with Power Query and inspect every type
In a desktop Excel edition with Power Query, use Data → Get Data → From Text/CSV, choose storage.csv, UTF-8 and comma separation, then select Transform Data. On Excel for Mac the menu may show Get Data (Power Query) first; Microsoft's Mac import guide covers that path.
| Column | Type | Check |
|---|---|---|
gas_day | Date | The observation's gas day, not the download date |
inventory_twh | Decimal Number | Stored energy; preserve blanks |
capacity_twh | Decimal Number | Reported working volume; preserve blanks |
fill_pct | Decimal Number | Percentage points; 60 means 60% |
status | Text | Confirmed, estimated or other source status |
retrieved_at_utc | Text initially | UTC retrieval timestamp; convert only with a timezone plan |
For a comma-decimal region, use Change Type → Using Locale with a locale matching the CSV's dot decimals. Review conversion errors; never replace them with zero. Load as a table named Storage, sort by gas day, then use Refresh All after the source file is replaced at the same path. Confirm the latest gas day as well as the refresh time.
Cross-check the filling level
For valid positive capacity, add this calculated column to the Storage table:
=IF(OR(NOT(ISNUMBER([@inventory_twh])),NOT(ISNUMBER([@capacity_twh])),[@capacity_twh]<=0),NA(),100*[@inventory_twh]/[@capacity_twh])The result is percentage points: 60 means 60%, not 0.60. Format it as a number with a % heading, or divide by 100 before using Excel's percentage cell format. A discrepancy with the source fill field is a review flag; first check rounding and scope. The formula returns #N/A for blank or nonpositive capacity rather than a false zero.
Add a transparent target scenario
On Inputs, enter capacity TWh in B2, current filling percentage in B3, selected target percentage in B4, and remaining days in B5. Validate positive capacity and days, percentages from 0 to 100, and no blanks before calculating.
Remaining storage requirement in TWh:
=MAX(0,B2*(B4-B3)/100)Required average net injection in GWh/day:
=MAX(0,B2*(B4-B3)/100)*1000/B5With fictional inputs of 100 TWh, 60%, 90% and 30 days, Excel returns 30 TWh and 1,000 GWh/day. If the target is already met, both return zero. This constant-capacity scenario is not a forecast, achievable-rate guarantee or statement of legal obligations.
Make the chart hard to misread
Use gas day on the date axis, not retrieval time. Show missing observations as gaps or label any interpolation. Plot inventory and fill percentage separately unless a two-axis chart is essential. Put “Source: GIE AGSI” below the chart, flag estimated records, and warn when the latest gas day exceeds your report's chosen tolerance.
For price context see the TTF API guide and gas spread monitor. For a different spreadsheet platform, see the Google Sheets guide. Do not subtract storage quantities from prices or treat a correlation as an explanation of every market move.
Before routine use, refresh the file in the actual Excel edition your team uses, check dates and decimal formats, inspect missing rows, and reproduce the scenario numbers above.