Amount of drinkable water used in Germany from 2016 to 2021 in liters
Based on the Eurostat dataset on water use by supply category and economical sector, the category Public Water Supply (PWS) corresponds to water supplied to users at drinking-water quality. In Germany, total public water supply used across all sectors (households, agriculture, industry and services) from 2016 to 2021 was1:
| Year | Liters (public water supply) |
|---|---|
| 2016 | 4,162,680,000,000 |
| 2017 | 4,232,270,000,000 |
| 2018 | 4,301,870,000,000 |
| 2019 | 4,371,460,000,000 |
| 2020 | 4,340,340,000,000 |
| 2021 | 4,309,210,000,000 |
These figures were derived from the total PWS component for Germany, which aggregates all economic sectors and households2. The trend shows a gradual rise through 2019, followed by a slight decline in 2020 and 2021. A visual summary is provided in the chart generated during the analysis2.
(Note: “Public water supply” in Eurostat statistics refers to water supplied through public distribution networks that meets drinking-water standards. This encompasses all end uses of that potable water—including household, commercial and industrial consumption—not only water literally ingested.)
- Eurostat dataset: Water use by supply category and economical sector
- Code Run 1Dataset: env_wat_cat
Images
germany_drinkable_water.svgDataset filters for
env_wat_catFilter Value(s) geo DE TIME_PERIOD 2016, 2017, 2018, 2019, 2020, 2021 Program output
time value liters 2016 4162.68 4.162680e+12 2017 4232.27 4.232270e+12 2018 4301.87 4.301870e+12 2019 4371.46 4.371460e+12 2020 4340.34 4.340340e+12 2021 4309.21 4.309210e+12 Chart saved to germany_drinkable_water.svgCode
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv(DATASET_FILE) # Filter for Public Water Supply (PWS) and total across all sectors (TOTAL_HH) pws_total = df[(df['wat_proc'] == 'PWS') & (df['nace_r2'] == 'TOTAL_HH')].copy() pws_total = pws_total.sort_values('time') # Convert MIO_M3 to liters (1 MIO_M3 = 1e9 liters) pws_total['liters'] = pws_total['value'] * 1e9 print(pws_total[['time', 'value', 'liters']].to_string(index=False)) # Create a bar chart plt.figure(figsize=(10, 6)) plt.bar(pws_total['time'].astype(str), pws_total['liters'] / 1e12, color='steelblue') plt.xlabel('Year') plt.ylabel('Liters (trillions)') plt.title('Public Water Supply (Drinkable Water) Used in Germany\n2016–2021') plt.ylim(0, max(pws_total['liters'] / 1e12) * 1.1) for i, v in enumerate(pws_total['liters'] / 1e12): plt.text(i, v + 0.05, f'{v:.2f}T', ha='center', va='bottom', fontsize=10) plt.tight_layout() plt.savefig('germany_drinkable_water.svg', format='svg') plt.close() print('Chart saved to germany_drinkable_water.svg')