Amount of drinkable water used in Germany from 2016 to 2021 in liters

Model: Kimi K2.6 Checked on:

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.)

  1. Eurostat dataset: Water use by supply category and economical sector
  2. Dataset: env_wat_cat

    Images

    germany_drinkable_water.svg

    Dataset filters for env_wat_cat

    FilterValue(s)
    geoDE
    TIME_PERIOD2016, 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.svg
    

    Code

    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')