Skip to content

Heat CM: District Heating Supply

In A Glance

The District Heating Supply Calculation Module (CM) is a web‑based optimisation tool embedded in the Citiwatts platform. It helps planners design and operate district heating systems at hourly resolution by balancing technical constraints, operational costs, and investment decisions.

Key Features: - Two operating modes: 1. Dispatch only: finds the least‑cost hourly operation of existing capacities 2. Investment + dispatch: simultaneously selects new capacity additions and their dispatch - Hourly resolution for detailed insights into load matching, temperature constraints, and electricity‑price interactions - Multi‑technology support (CHP, boilers, heat pumps, waste‑to‑energy, solar thermal, excess heat) - Customisable parameters covering CAPEX/OPEX, efficiencies, lifetimes, CO₂ price, interest rate, and grid temperature limits

Primary Outputs: * Optimal dispatch schedules and (if enabled) capacity expansions * Levelized Cost of Heat (LCOH) and full annual cost breakdown (investment annuity, O&M, fuel, CO₂, ramping) * Annual generation volumes (thermal and electrical) and CO₂ emissions * Technology share in both investment and dispatch

Go To Top

Introduction

The District Heating Supply calculation module (CM) evaluates how best to meet a region’s district heating (DH) needs using a portfolio of supply technologies, ranging from boilers and heat pumps to CHP, waste‑to‑energy, solar thermal, and excess heat.

In dispatch mode, the module takes pre‑installed capacities and solves an hourly linear optimisation to minimise operating costs (including fuel, electricity, and CO₂ costs) while respecting network temperature constraints.

In investment + dispatch mode, the model simultaneously determines optimal capacity expansions and dispatch schedules to cover the annual load at lowest total cost. Users specify economic assumptions (investment cost, lifetimes, interest rate, CO₂ price) alongside demand and price profiles.

The method described here is to be understood as a first concept and can deviate from the actual implementation (model complexity, inputs and outputs, etc., must be seen from this point of view). This wiki page explains the version of the calculation module that is integrated into the toolbox. A stand-alone version of the calculation module is much more comprehensive and can be downloaded from here. This version requires, however, basic knowledge of Python programming. The documentation of the stand-alone version can be found here.

Go To Top

Inputs

District Heating Supply CM relies on various inputs. Some inputs are provided directly by the platform through its layers, while others come with default values that can be modified by users. Below is the summary of the main input parameters used by the model: - District heating demand of the grid (selected region) - Installed capacities of heat generators - Technical (efficiencies) and financial parameters(OPEX, CAPEX, lifetime) of heat generators - Profiles (time series of the heat demand, solar radiation, temperature, electricity prices, etc.)

The inputs are organized into several levels, ranging from the most basic to the most advanced. The following subsections give an complete list of inputs by their level.

Go To Top

1. Inputs

The first level of input parameters is referred to as "INPUTS," which consists of the fundamental input parameters.

Input Name Default Min Max Options Description
Thermal output capacity 0 0 1e+102 MW_th (Per technology) Existing installed capacity.
Max. installed capacity in investment mode 0 0 1e+102 MW_th (Per technology) Maximum investment capacity (0 = no limit).
CO₂ Price (EUR/tCO₂) 150 0 1e+102 Sets the CO₂ emission cost factor.
Interest rate (%) 4 0 100 Used to calculate the annuity factor.
Mode of operation Investment + dispatch Investment + dispatch, Dispatch only “Investment + dispatch” allows new capacity investments; “Dispatch only” runs existing capacities.
District heating demand (incl. grid losses) (MWh) 0 0 1e+102 Total heating demand including network losses.
Average electricity price (EUR/MWh) 100 -1e+102 1e+102 Used with the default hourly profile.

Go To Top

2. Basic Inputs

Input Name Default Min Max Options Description
Max. flow temperature (°C) 70 0 150 Maximum flow temperature of the district heating network.
Min. flow temperature (°C) 60 0 150 Minimum flow temperature of the district heating network.
Max. return temperature (°C) 45 0 150 Maximum return temperature of the district heating network.
Min. return temperature (°C) 40 0 150 Minimum return temperature of the district heating network.
Thermal efficiency varies 0 1.0 (Per technology) e.g. CHP 0.76, Boiler 0.875, Solar 1.
Electrical efficiency varies 0 1.0 (Per technology with electricity output) e.g. CHP 0.14, Incineration 0.2.
Lifetime (years) varies 0 100 (Per technology) e.g. CHP 28 a, Heat Pump 25 a, Excess Heat 20 a.
Energy carrier wood pellets; electricity; bio gas; waste; radiation; excess heat; various (Per technology) Select each technology’s fuel/input.

Go To Top

3. Advanced Inputs (Level 1)

The table below lists the inputs in the Advanced Inputs (Level 1) category, which include emissions, energy carrier prices, and electricity pricing.

Input Name Default Min Max Options Description
Emission factor (tCO₂/MWh) varies -1e+102 1e+102 (Per energy carrier) e.g. bio gas 0.126, electricity 0.025, others as specified.
Energy carrier price (EUR/MWh) varies -1e+102 1e+102 (Per energy carrier) e.g. waste 3; wood pellets 44; bio gas 40; excess heat 5; various 22.
Electricity price (select) hotmaps default hourly profile hotmaps default hourly profile; fix (Per technology) Method for purchase price.
Fixed electricity price (EUR/MWh) 45 -1e+102 1e+102 (Per technology if “fix”) Fixed purchase price.
Sale electricity price (select) hotmaps default hourly profile hotmaps default hourly profile; fix (Per technology with export) Method for sale price.
Fixed sale electricity price (EUR/MWh) 45 -1e+102 1e+102 (Per technology if “fix”) Fixed sale price.

Go To Top

4. Advanced Inputs (Level 2)

The table below lists the inputs in the Advanced Inputs (Level 2) category, which include investment & operational cost parameters.

Input Name Default Min Max / Units Options Description
Investment cost (EUR/MW_th) varies 0 1e+102 (Per technology) e.g. CHP 1 055 000; Incineration 3 200 000; Boiler 107 000; etc.
OPEX fix (EUR/(MW·yr)) varies 0 1e+102 (Per technology) Annual fixed operational cost.
OPEX var (EUR/MWh) varies 0 1e+102 (Per technology) Variable cost per MWh.
Ramping cost (EUR/MWh) varies 0 1e+102 (Per technology with ramp constraints) Applicable to CHP and waste incineration.

Go To Top

Outputs

Upon completion of a simulation, the District Heating Supply CM generates a comprehensive set of outputs that provide insights into the technical and economic performance of the DH system. These outputs are accessible through the Citiwatts platform and are also available for download in various formats.

The main output indicators of the calculation module are: - Heat generation costs - Investment, operation and fuel costs - Heat generation mix per heat generator - CO2 Emissions - Full Load Hours

Go To Top

Platform Indicators

Within the Citiwatts platform, key performance indicators (KPIs) are presented to offer a quick overview of the simulation results:

Indicator Unit Description
Total LCOH EUR/MWh Levelized Cost of Heat: the average cost per megawatt‑hour of thermal energy produced.
Annual Total Costs EUR/yr Sum of all annual costs (investment annuity, O&M, fuel, CO₂, ramping).
Total Revenue From Electricity EUR/yr Total revenue earned from electricity sales.
Total Thermal Generation MWh/yr Total thermal energy produced in one year.
Total Electricity Generation MWh/yr Total electrical energy produced in one year.
Total Investment Costs EUR/yr Annualized investment cost across all technologies.
Total O&M Costs EUR/yr Total fixed and variable operation & maintenance costs per year.
Total Fuel Costs EUR/yr Total annual cost of all fuel inputs.
Total CO₂ Costs EUR/yr Annual cost associated with CO₂ emissions (at the chosen CO₂ price).
Total Ramping Costs EUR/yr Annual cost incurred by ramping up/down dispatchable units.
Total CO₂ Emissions t/yr Total CO₂ emitted per year by all technologies.
Total Heat Demand MWh/yr Annual district heating demand (including grid losses).
Total Final Energy Demand MWh/yr Total energy used (input) to satisfy the DH demand.
NUTS‑level profiles used Regions used for heat‑load and electricity‑price time series.
Peak heat load MW Maximum instantaneous heat load in the district heating network.

Go To Top

Charts

In addition to the indicators, several charts are available in the "Charts" tab. These charts provide a breakdown of the overall system-level indicators by technology or energy carrier, allowing for a more detailed comparison.

Go To Top

Additional Output Files

Beyond the summary indicators shown on the platform, the module generates a ZIP archive containing a load duration curve plot in PNG format and an Excel workbook with detailed outputs. This workbook allows you to dig deeper into time‑series data and technology breakdowns:

  • Load Duration Curve Plot (.png) A high‑resolution image of the sorted hourly district‑heating load (stacked by technology).

  • Excel Report (.xlsx) A multi‑sheet workbook with:

  • Load Profile Hourly district‑heating load sorted into a duration curve.

  • Electricity Price Profile Time series of the purchase price used for each hour (default hourly profile or your fixed value).

  • Sale Electricity Price Profile Time series of the sale price used for each hour (default hourly profile or your fixed value).

  • Thermal Generation Mix Hourly split of thermal generation by technology.

Users can use these outputs for detailed plots, custom analysis, and integration with your own tools.

Go To Top

Method

The module is implemented as a linear program and can be used on the one hand as a pure dispatch model and on the other hand for investment planning to cover a load profile. The objective function aims to minimise the difference between heat generation costs and electricity production revenues.

Equation fragments of the linear program:

The total costs ctotal yield from the sum of:

investment costs IC (installed capacities multiplied by the annuities of the specific investment costs)

captial costs CC :

the variable costs OPEX :

ramp costs of CHP and waste incineration plants (rough Estimation) :

assumed costs for the peak electrical load in the winter time (rough Estimation):

The total revenues revtotal yield from::

the sale of electricity (for example from CHP plants and waste incineration plants).:

To Top

Legend

Go To Top

GitHub Repository Of This Calculation Module

You can access the open-source code for this calculation module here.

Go To Top

Sample Run

WARNING: The model does not a have default DH demand assumption. The users should provide it. Otherwise, the model will raise the error: "Notification: The annual DH demand is zero. Please provide a valid demand value".

The "District heating demand (incl. grid losses)" input parameter can be found at the bottom of the "INPUTS" section.

Step 1: Select the region

The DH Supply CM works on all geographical levels provided by the platform. Please note that the chosen area will be treated as a single-connected DH system.

Select the LAU2 region Vienna for this sample run.

Figure CM - District Heating Supply: Selection of the working region (LAU2)

Go To Top

Step 2: Enter the input parameters

After selecting the region, users should click on the "Calculation Modules" tab located in the left pane. Next, click on "CM - District Heating Supply" to display the input options.

The inputs are organised into several levels, ranging from the most basic to the most advanced. The first level of input parameters is referred to as "INPUTS," which consists of the fundamental input parameters. The full list of parameters in this category, along with their default, maximum, and minimum values and descriptions, can be found in Table: Inputs.

Enter the DH Demand parameter of 3000000 MWh for this sample run.

Figure CM - District Heating Supply: Selection of the input parameters

Go To Top

Step 3 (optional): Enter the basic input parameters

After scrolling down in the inputs section, users will find the "Basic Inputs" category. The full list of parameters in this category, along with their default, maximum, and minimum values and descriptions, can be found in Table: Basic Inputs.

Figure CM - District Heating Supply: Selection of the basic input parameters

Go To Top

Step 4 (optional): Enter the advanced input parameters (level 1)

After further scrolling down in the inputs section, the user will find the "ADVANCED INPUTS: (LEVEL 1)" category. The full list of parameters in this category, along with their default, maximum, and minimum values and descriptions, can be found in Table: Advanced Inputs (level 1).

Figure CM - District Heating Supply: Selection of the advanced input parameters (level 1)

Go To Top

Step 5 (optional): Enter the advanced input parameters (level 2)

After further scrolling down in the inputs section, the user will find the "ADVANCED INPUTS: (LEVEL 2)" category. The full list of parameters in this category, along with their default, maximum, and minimum values and descriptions, can be found in Table: Advanced Inputs (level 2).

Figure CM - District Heating Supply: Selection of the advanced input parameters (level 2)

Go To Top

Step 6: Run the CM and retrieve the results

Indicators

Users can start the calculation by scrolling down to the bottom of the inputs section and clicking on the "RUN CM" button. The calculation might take from a few seconds to up to a few minutes, depending on the complexity of the problem. Then, a results tab will appear on the right-hand side of the screen. In this tab, the main indicators are displayed to offer a quick overview of the simulation results. The full list of indicators, alongside their units and descriptions, is available in Table: Platform Indicators.

Figure CM - District Heating Supply: Indicators displayed on the platform

The users also have the option to export results. The buttons to export results are located at the bottom of the INDICATORS section. There are two methods available for exporting the results:

1. Exporting indicators Click EXPORT INDICATORS to download a CSV file containing all of the summary indicators shown on the platform (LCOH, total costs, generation volumes, etc.).

2. Exporting detailed results Click EXPORT EXTRA FILES to download a ZIP archive with two files:

  • Excel Report (.xlsx) Contains four worksheets—Load Profile, Electricity Price Profile, Sale Electricity Price Profile, and Thermal Generation Mix—so you can explore the full time‑series and breakdowns in your spreadsheet tool of choice.

  • Load Duration Curve Plot (.png) A high‑resolution image of the sorted hourly heating load by technology for quick inclusion in presentations or reports.

Go To Top

Charts

By clicking on "CHARTS" (just next to the "INDICATORS"), users can display the charts generated by the CM.

The users also have the option to download the underlying data behind the charts. The button to export charts are located at the bottom of the CHARTS section.

Figure CM - District Heating Supply: Charts on the platform

Go To Top

References

Go To Top

How To Cite

Ali Kök, in CitiWatts-Wiki, CM DH Supply. Go To Top

Authors And Reviewers

This page is written by Ali Kök EEG-TU Wien.

This page is reviewed by .

Go To Top

License

Copyright © 2025: Ali Kök

Creative Commons Attribution 4.0 International License

This work is licensed under a Creative Commons CC BY 4.0 International License.

SPDX-License-Identifier: CC-BY-4.0

License-Text: https://spdx.org/licenses/CC-BY-4.0.html

Go To Top

Acknowledgement

Go To Top