Using the RSS feed of Αthens Water Supply and Sewerage Company, we collect the latest data on extractable water reserves in Attica on a daily basis. The data is visualized in charts that update automatically, allowing the water reserves in the basin’s reservoirs to be monitored.
Water scarcity has returned to the forefront in recent years due to climate change and the dramatic drop in the levels of the reservoirs that supply Athens with water. Specifically, over the past two summers, total extractable reserves, as recorded by EYDAP, decreased by 50%—from 1 billion cubic meters to 500 million cubic meters—between August 1, 2023 and August 1, 2025.
Since the beginning of 2026, a significantly more rainy period compared to previous years has provided some relief; however, the problem persists, with reserves still at lower levels than in the previous decade.

iMEdD collected data on extractable reserves from 1985 to the present and created charts that are automatically updated on a daily basis and are freely available for use by the journalistic community.
A 50% decrease within two years
From 2020 and in the immediately following years, Athens’ extractable water reserves, as recorded by EYDAP, remained close to or above 1 billion cubic meters. The situation began to change in 2023, when winter replenishment from rainfall and snowfall was not as sufficient as in previous years—a pattern that continued over the next two years—leading reserves to drop by 50% between 2023 and 2025, from 1 billion cubic meters to 500 million cubic meters, on August 1 of each year.
The data followed a downward trend until the end of 2025. After the relatively rainy conditions of 2026 so far, reserves have increased compared to last year, though they remain lower than corresponding levels in previous years.
Year-to-year comparisons of reserves should always be made for the same time period due to seasonality: there is significant variability between the summer–autumn and winter–spring periods, as the former has more outflow than inflow. Therefore, in the chart below, we visualize the reserves on the most recent day for which data are available, alongside the same date for all previous years.
EYDAP’s data provide a picture of water reserves over four decades in the country’s largest urban area. The Evinos reservoir is an exception here, as data are available only from December 26, 2001.
Daily extractable water reserves
In the dataset we compiled, each row corresponds to one day of the year. The first column (“date”) contains all dates for which data have been collected. The next four columns in the dataset (“Eyinos”, “Marathonas”, “Mornos”, “Yliki”) correspond to the reservoirs, showing water reserves in cubic meters for each date. The final column (“Total”) refers to the total water reserves for each day.
| Date | Eyinos | Marathonas | Mornos | Yliki | Total |
|---|---|---|---|---|---|
| 1985-01-01 | 0 | 18744148 | 561736000 | 491425000 | 1071905148 |
| 1985-01-02 | 0 | 18288394 | 562060000 | 499340000 | 1079688394 |
| 1985-01-03 | 0 | 17959091 | 564490000 | 503880000 | 1086329091 |
| 1985-01-04 | 0 | 17632916 | 566950000 | 506831000 | 1091413916 |
| 1985-01-05 | 0 | 16956000 | 569260000 | 509555000 | 1095771000 |
| 1985-01-06 | 0 | 17292908 | 571735000 | 511598000 | 1100625908 |
| 1985-01-07 | 0 | 16588728 | 574210000 | 513641000 | 1104439728 |
| 1985-01-08 | 0 | 16208555 | 578335000 | 516138000 | 1110681555 |
| 1985-01-09 | 0 | 15799796 | 585140000 | 518420000 | 1119359796 |
| 1985-01-10 | 0 | 15363628 | 590150000 | 521870000 | 1127383628 |
| 1985-01-11 | 0 | 14900942 | 591486000 | 524860000 | 1131246942 |
| 1985-01-12 | 0 | 14366586 | 592989000 | 526700000 | 1134055586 |
| 1985-01-13 | 0 | 14009997 | 594325000 | 528080000 | 1136414997 |
| 1985-01-14 | 0 | 13581088 | 595828000 | 529460000 | 1138869088 |
| 1985-01-15 | 0 | 13142652 | 596329000 | 530840000 | 1140311652 |
| 1985-01-16 | 0 | 12695322 | 597331000 | 532220000 | 1142246322 |
| 1985-01-17 | 0 | 16888860 | 598333000 | 534060000 | 1149281860 |
| 1985-01-18 | 0 | 16721800 | 599350000 | 540500000 | 1156571800 |
| 1985-01-19 | 0 | 16422964 | 600370000 | 545626000 | 1162418964 |
| 1985-01-20 | 0 | 16159310 | 601220000 | 549820000 | 1167199310 |
| 1985-01-21 | 0 | 15816065 | 602070000 | 552849000 | 1170735065 |
| 1985-01-22 | 0 | 15411760 | 602580000 | 555412000 | 1173403760 |
| 1985-01-23 | 0 | 15012050 | 603260000 | 557276000 | 1175548050 |
| 1985-01-24 | 0 | 14664112 | 604110000 | 558907000 | 1177681112 |
| 1985-01-25 | 0 | 14522830 | 604960000 | 560538000 | 1180020830 |
| 1985-01-26 | 0 | 14335398 | 605980000 | 561936000 | 1182251398 |
| 1985-01-27 | 0 | 14009997 | 607000000 | 563101000 | 1184110997 |
| 1985-01-28 | 0 | 13657268 | 608190000 | 564033000 | 1185880268 |
| 1985-01-29 | 0 | 13429232 | 609550000 | 564499000 | 1187478232 |
| 1985-01-30 | 0 | 13112606 | 610740000 | 564965000 | 1188817606 |
| 1985-01-31 | 0 | 12769387 | 611930000 | 566130000 | 1190829387 |
| 1985-02-01 | 0 | 12341940 | 612950000 | 566829000 | 1192120940 |
| 1985-02-02 | 0 | 11992738 | 613290000 | 566829000 | 1192111738 |
| 1985-02-03 | 0 | 11576051 | 613630000 | 566596000 | 1191802051 |
| 1985-02-04 | 0 | 11165232 | 613970000 | 566130000 | 1191265232 |
| 1985-02-05 | 0 | 10774150 | 614480000 | 565897000 | 1191151150 |
| 1985-02-06 | 0 | 10375039 | 614820000 | 565431000 | 1190626039 |
| 1985-02-07 | 0 | 9954930 | 614990000 | 565198000 | 1190142930 |
| 1985-02-08 | 0 | 9554240 | 615330000 | 564732000 | 1189616240 |
| 1985-02-09 | 0 | 9130952 | 615673000 | 564266000 | 1189069952 |
| 1985-02-10 | 0 | 8737760 | 615846000 | 564033000 | 1188616760 |
| 1985-02-11 | 0 | 8477656 | 616019000 | 563800000 | 1188296656 |
| 1985-02-12 | 0 | 8042118 | 618095000 | 563334000 | 1189471118 |
| 1985-02-13 | 0 | 7715778 | 620171000 | 563101000 | 1190987778 |
| 1985-02-14 | 0 | 7554870 | 622593000 | 563334000 | 1193481870 |
| 1985-02-15 | 0 | 7493250 | 623804000 | 563334000 | 1194631250 |
| 1985-02-16 | 0 | 7370880 | 624323000 | 563101000 | 1194794880 |
| 1985-02-17 | 0 | 7297974 | 625015000 | 563101000 | 1195413974 |
| 1985-02-18 | 0 | 7249370 | 625707000 | 562868000 | 1195824370 |
| 1985-02-19 | 0 | 7407591 | 626053000 | 562635000 | 1196095591 |
| 1985-02-20 | 0 | 7493250 | 626399000 | 562402000 | 1196294250 |
| 1985-02-21 | 0 | 7628901 | 626399000 | 562169000 | 1196196901 |
| 1985-02-22 | 0 | 7803090 | 626399000 | 561936000 | 1196138090 |
| 1985-02-23 | 0 | 7790592 | 626226000 | 561936000 | 1195952592 |
| 1985-02-24 | 0 | 7878165 | 626226000 | 561936000 | 1196040165 |
| 1985-02-25 | 0 | 7941090 | 626226000 | 561936000 | 1196103090 |
| 1985-02-26 | 0 | 8067462 | 626053000 | 561936000 | 1196056462 |
| 1985-02-27 | 0 | 8042118 | 626053000 | 561936000 | 1196031118 |
| 1985-02-28 | 0 | 8156427 | 625880000 | 561936000 | 1195972427 |
| 1985-03-01 | 0 | 8232981 | 624496000 | 561936000 | 1194664981 |
| 1985-03-02 | 0 | 8271432 | 624669000 | 561936000 | 1194876432 |
| 1985-03-03 | 0 | 8646515 | 625015000 | 562169000 | 1195830515 |
| 1985-03-04 | 0 | 8156427 | 625361000 | 562635000 | 1196152427 |
| 1985-03-05 | 0 | 8947036 | 624496000 | 563334000 | 1196777036 |
| 1985-03-06 | 0 | 8816130 | 623804000 | 563800000 | 1196420130 |
| 1985-03-07 | 0 | 8659550 | 625361000 | 564266000 | 1198286550 |
| 1985-03-08 | 0 | 8477656 | 626053000 | 564499000 | 1199029656 |
| 1985-03-09 | 0 | 8194704 | 626053000 | 564499000 | 1198746704 |
| 1985-03-10 | 0 | 7941090 | 626053000 | 564499000 | 1198493090 |
| 1985-03-11 | 0 | 7740600 | 626053000 | 564499000 | 1198292600 |
| 1985-03-12 | 0 | 7591842 | 626226000 | 564499000 | 1198316842 |
| 1985-03-13 | 0 | 7493250 | 626226000 | 564266000 | 1197985250 |
| 1985-03-14 | 0 | 7419828 | 626226000 | 564266000 | 1197911828 |
| 1985-03-15 | 0 | 7493250 | 626572000 | 564033000 | 1198098250 |
| 1985-03-16 | 0 | 7468776 | 627437000 | 564499000 | 1199404776 |
| 1985-03-17 | 0 | 7383117 | 628302000 | 565198000 | 1200883117 |
| 1985-03-18 | 0 | 7370880 | 629167000 | 565431000 | 1201968880 |
| 1985-03-19 | 0 | 7604166 | 631416000 | 565431000 | 1204451166 |
| 1985-03-20 | 0 | 7628901 | 633325000 | 565431000 | 1206384901 |
| 1985-03-21 | 0 | 7728189 | 634025000 | 565431000 | 1207184189 |
| 1985-03-22 | 0 | 7828086 | 634375000 | 565431000 | 1207634086 |
| 1985-03-23 | 0 | 7915920 | 634725000 | 565897000 | 1208537920 |
| 1985-03-24 | 0 | 8004102 | 635075000 | 566363000 | 1209442102 |
| 1985-03-25 | 0 | 8054790 | 635425000 | 566596000 | 1210075790 |
| 1985-03-26 | 0 | 8067462 | 635775000 | 566829000 | 1210671462 |
| 1985-03-27 | 0 | 8042118 | 636475000 | 566829000 | 1211346118 |
| 1985-03-28 | 0 | 8016774 | 637175000 | 566596000 | 1211787774 |
| 1985-03-29 | 0 | 8143668 | 637700000 | 566596000 | 1212439668 |
| 1985-03-30 | 0 | 8425928 | 638225000 | 566596000 | 1213246928 |
| 1985-03-31 | 0 | 8685620 | 638575000 | 566596000 | 1213856620 |
| 1985-04-01 | 0 | 8920808 | 638750000 | 566596000 | 1214266808 |
| 1985-04-02 | 0 | 9183646 | 638925000 | 566596000 | 1214704646 |
| 1985-04-03 | 0 | 9474608 | 638925000 | 566596000 | 1214995608 |
| 1985-04-04 | 0 | 9754114 | 638750000 | 566596000 | 1215100114 |
| 1985-04-05 | 0 | 10062738 | 638750000 | 566363000 | 1215175738 |
| 1985-04-06 | 0 | 10361350 | 638750000 | 566130000 | 1215241350 |
| 1985-04-07 | 0 | 10635850 | 638750000 | 565897000 | 1215282850 |
| 1985-04-08 | 0 | 10885358 | 638575000 | 565664000 | 1215124358 |
| 1985-04-09 | 0 | 11151188 | 638750000 | 565431000 | 1215332188 |
How we collected the data
The data are collected via a Python script available on GitHub, which runs once daily after EYDAP updates its data. From May 2026 onwards, the data source is EYDAP’s RSS feed, while earlier data were collected using the Open Water API platform, which returns reservoir reserves in Attica in cubic meters (m³) for the time period specified in the code. (Notably, EYDAP’s RSS feeds appear to contain a minor inconsistency: the RSS feed labeled for “reserves” actually provides drinking water production data from treatment units, while the RSS feed for drinking water production presents the extractable reserves.)
After identifying this “reversed” data labeling, we used the RSS feed for drinking water production to visualize water reserves, which are the same figures presented in EYDAP’s public tables.
The code used for data collection can also be easily run in a Google Colab notebook. Below are two code cells that can be used to retrieve both historical and latest data.
The code for the API
import requests
import pandas as pd
import datetime as dt
import time
BASE_URL = "https://opendata-api-eydap.growthfund.gr/api/Savings/Day"
def parse_int(x):
if x is None:
return None
return int(str(x).replace(".", "").strip())
def fetch_day(date):
url = f"{BASE_URL}/{date.strftime('%d-%m-%Y')}"
r = requests.get(url, timeout=30)
r.raise_for_status()
return r.json()
# Insert the date span
start_date = dt.date(2026, 4, 1)
end_date = dt.date(2026, 5, 20)
records = {}
current = start_date
while current <= end_date:
try:
data = fetch_day(current)
for row in data:
rec_date = dt.datetime.strptime(
row["Date"],
"%d/%m/%Y"
).date()
if rec_date < start_date:
continue
records[rec_date] = {
"date": rec_date,
"eyinos": parse_int(row["Eyinos"]),
"marathonas": parse_int(row["Marathonas"]),
"mornos": parse_int(row["Mornos"]),
"yliko": parse_int(row["Yliko"]),
"total": parse_int(row["Total"]),
}
except Exception as e:
print(f"Failed {current}: {e}")
current += dt.timedelta(days=1)
time.sleep(0.05)
df = (
pd.DataFrame(records.values())
.sort_values("date")
.reset_index(drop=True)
)
The full code for the RSS feed, its detailed methodology, and the .csv files containing both historical and recent data are available in the iMEdD lab repository “eydap_water_reserves” on GitHub.
The code for the RSS feed
import requests
import pandas as pd
from xml.etree import ElementTree as ET
from bs4 import BeautifulSoup
def fetch_eydap_reservoir_rss() -> pd.DataFrame:
url = "https://www.eydap.gr/handlers/rss.ashx?collection=WaterProduction&Culture=69"
response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"})
response.raise_for_status()
root = ET.fromstring(response.content)
description_html = root.find(".//item/description").text
soup = BeautifulSoup(description_html, "html.parser")
table = soup.find("table")
headers, rows = None, []
for tr in table.find_all("tr"):
cells = [td.get_text(strip=True) for td in tr.find_all(["th", "td"])]
if headers is None:
headers = cells
else:
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
df = df.rename(columns={
"ΗΜΕΡΟΜΗΝΙΑ": "Date",
"ΕΥΗΝΟΣ": "Eyinos",
"ΜΑΡΑΘΩΝΑΣ": "Marathonas",
"ΜΟΡΝΟΣ": "Mornos",
"ΥΛΙΚΗ": "Yliki",
"ΣΥΝΟΛΟ": "Synolo",
"TOTAL": "Total",
})
df["Date"] = pd.to_datetime(df["Date"].str.strip(), format="%d/%m/%Y")
numeric_cols = ["Eyinos", "Marathonas", "Mornos", "Yliki", "Synolo", "Total"]
for col in numeric_cols:
if col in df.columns:
df[col] = (
df[col]
.astype(str)
.str.strip()
.str.replace(".", "", regex=False)
.str.replace(",", ".", regex=False)
.astype(float)
.astype(int)
)
if "Total" in df.columns:
df = df.drop(columns=["Total"])
return df.reset_index(drop=True)
df = fetch_eydap_reservoir_rss()
df = df.rename(columns={
"Synolo": "Total"
})
It should be noted that in a previous iMEdD piece, published in July 2025, we analyzed EYDAP data from 1985 up to July 10, 2025 in static form. For the data used in this text up to July 2025, we relied on the dataset from the GitHub repository of that earlier article.
