Input Description#
Input files are located in the data_input folder, and are organized into several subfolders based on their type and purpose.
pSettings.csv#
Description:
This file contains global model parameters and settings that control various aspects of the EPM model, including economic assumptions, penalties, optional features, and constraints.
It plays a critical role in defining the behavior of the optimization model, enabling customization of financial assumptions, operational constraints, and system features.Data Structure:
Parameter (string) – Full name of the parameter.
Abbreviation (string) – Short name used in the model.
Value (varied units) – The assigned numerical value or toggle (0/1) for the parameter.
Example Link: pSettings.csv
!! Important !! The validated pSettings.csv template in the repository now includes the full set of required parameters. Starting from EPM v2024.09, the model expects this structure. Always copy the latest file (or extend your custom copy) to avoid missing parameters that would otherwise default to zero.
The CSV groups parameters by topical blocks. Each row exposes a human-readable label, the abbreviation used in GAMS, and the default value provided in the template.
Core Parameters (PARAMETERS block)#
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Weighted Average Cost of Capital (WACC), % |
|
0.06 |
Fraction (6%) |
Discount rate, % |
|
0.06 |
Fraction (6%) |
Cost of unserved energy per MWh, $ |
|
1000 |
$/MWh |
Cost of reserve shortfall per MW, $ |
|
60000 |
$/MW |
Spin Reserve VoLL per MWh, $ |
|
60 |
$/MWh |
Cost of surplus power per MWh, $ |
|
0 |
$/MWh |
Cost of curtailment per MWh, $ |
|
0 |
$/MWh |
Cost of curtailment per MWh, $¹ |
|
300 |
$/tCO₂ (label kept as-is in the CSV) |
Cost of climate backstop techno per ton CO₂, $ |
|
3000 |
$/tCO₂ |
¹CSV label duplicates the curtailment text but the abbreviation drives the CO₂ backstop penalty.
Interconnection settings#
Internal exchanges (INTERNAL block)
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Activate exchange between internal zone |
|
1 |
Toggle (1 = enabled) |
Remove transfer limits between internal zone |
|
0 |
Toggle |
Allow expansion of transfer limits |
|
1 |
Toggle |
External exchanges (EXTERNAL block)
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Activate exchange between external zone |
|
1 |
Toggle |
Maximum external import share, % |
|
1 |
Fraction (1 = 100%) |
Maximum external export share, % |
|
1 |
Fraction (1 = 100%) |
Optional features#
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Include carbon price |
|
0 |
Toggle |
Include energy efficiency |
|
0 |
Toggle |
Include CSP optimization |
|
0 |
Toggle |
Include Storage operation |
|
1 |
Toggle |
Retire plants on economic grounds |
|
0 |
Toggle |
Use less detailed demand definition |
|
1 |
Toggle |
Fractional tolerance around system peak load used to identify ‘near-peak’ |
|
(blank) |
Provide a fraction when using the near-peak filter |
Planning reserves (PLANNING RESERVES block)#
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Include transmission lines when assessing country planning reserves |
|
1 |
Toggle |
Apply planning reserve constraint |
|
1 |
Toggle |
System planning reserve margin, % |
|
0.1 |
Fraction (10%) |
Spinning reserves (SPINNING RESERVES block)#
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Apply country spinning reserve constraints |
|
1 |
Toggle |
Apply system spinning reserve constraints |
|
0 |
Toggle |
Spinning (country and system) reserve needs for VRE, % |
|
0.15 |
Fraction (15%) |
Contribution of transmission lines to country spinning reserves need, % |
|
0 |
Fraction |
Hydrogen options (H2 block)#
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Allow capex trajectory H2 |
|
0 |
Toggle |
Include H2 production |
|
0 |
Toggle |
Policy levers (POLICY block)#
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Apply country CO₂ constraint |
|
0 |
Toggle |
Apply system CO₂ constraints |
|
0 |
Toggle |
Minimum share of RE, % |
|
0 |
Fraction |
RE share target year |
|
(blank) |
Year (leave blank if unused) |
Apply fuel constraints |
|
0 |
Toggle |
Apply max capital constraint |
|
0 |
Toggle |
Total maximum capital investments, $ billion |
|
(blank) |
Billion USD |
Plant operations (PLANTS block)#
CSV label |
Abbreviation |
Default value |
Units / Notes |
|---|---|---|---|
Apply min generation constraint |
|
0 |
Toggle |
Apply ramp constraints |
|
0 |
Toggle |
Notes:
All cost values in the template are expressed in USD.
Percentages are stored as fractions (e.g.,
0.06= 6%).Toggle parameters use
0(disabled) and1(enabled).Blank values in the template indicate that you must provide project-specific numbers before running a study.
y.csv#
Defines the years included in the intertemporal optimization. One-dimensional csv.
Data Structure:
Index
y (int) – Years to be included in the model.
Example Link: y.csv
zcmap.csv#
Two-dimensional, defines the zones and countries included in the model.
Example: zcmap.csv
Resources#
All files in this section are included in the resources folder. These datasets define parameters that do not necessarily change between projects.
ftfindex.csv#
TODO: needs to be updated !!
List of fuels recognized by EPM.
2 columns:
Fuel
Index (Note: Index is no longer used, and the structure is being simplified to keep only “Fuel”).
Example: ftfindex.csv
List of fuel types recognized by EPM:
Coal
Gas
Water
Solar
Wind
Import
HFO
LFO
Uranium
CSP
Battery
Diesel
Biomass
Geothermal
LNG
Note: Not clear why there is need of OnshoreWind and OffshoreWind.
pTechData.csv#
List of technologies recognized by EPM.
3 columns:
Technology name
Hourly variation (if the technology varies hourly)
RE Technology (if it is a renewable energy technology)
Example: pTechData.csv
List of technologies recognized by EPM:
OCGT: Gas Turbine
CCGT: Combined Cycle Gas Turbine
ST: Steam Turbine
ICE: Internal Combustion Engine
OnshoreWind: Onshore wind power plant
OffshoreWind: Offshore wind power plant
PV: Photovoltaic power plant
PVwSTO: Photovoltaic with Storage
CSPPlant: Concentrated Solar power plant
Storage: Storage
ReservoirHydro: Storage hydro power plant
ROR: Run of River hydro power plant
BiomassPlant: Biomass power plant
CHP: Combined Heat and Power
ImportTransmission: Representing imports from external zones
pFuelCarbonContent.csv#
2 columns:
Fuel
Carbon content in gCO₂/kWh
Example: pFuelCarbonContent.csv
Load Data#
All files in this section are included in the load folder.
pDemandProfile.csv#
4 dimensions:
Zone
Season
Days
Hours
1 value column (normalized between 0 and 1).
Example: pDemandProfile.csv
pDemandForecast.csv#
2 dimensions:
Zone
Type
1 value column (Energy in GWh and Peak in MW)
Example: pDemandForecast.csv
pDemandData.csv#
Alternative way to define load demand.
Example: pDemandData.csv
pEnergyEfficiencyFactor.csv#
TODO: Define usage.
Example: pEnergyEfficiencyFactor.csv
sRelevants.csv#
TODO: Define usage.
Example: sRelevants.csv
Supply Data#
All files in this section are stored in the supply folder.
pGenDataInputCustom.csv#
Description: The main data table defining all power plants, including their technical and economic characteristics.
Data Structure:
gen(string) – Name of the power plant.zone(string) – Zone where the plant is located, as defined inzcmap.csv.tech(string) – Technology type. Additional information on technologies can be found inpTechData.csv.fuel(string) – Primary fuel name, as defined inftfindex.csv.StYr(year) – Start year of plant operation.RetrYr(year) – Retirement year of the plant.Capacity(MW) – Installed capacity of the plant.Status(integer) – Operational status indicator (e.g., existing, planned, retired).MinLimitShare(fraction) – Minimum share of total generation capacity that must be maintained.HeatRate(MMBtu/MWh) – Heat rate when operating on primary fuel.RampUpRate(fraction/hour) – Maximum rate at which generation can be increased.RampDnRate(fraction/hour) – Maximum rate at which generation can be decreased.OverLoadFactor(fraction) – Factor determining the plant’s overload capability.ResLimShare(fraction) – Maximum share of plant capacity that can be allocated for reserves.Capex($m/MW) – Capital expenditure per unit of installed capacity.FOMperMW($/MW-year) – Fixed operation and maintenance cost per MW of capacity.VOM($/MWh) – Variable operation and maintenance cost per unit of electricity generated.ReserveCost($/MW-year) – Additional cost for maintaining reserve capacity.Life(years) – Expected operational lifetime of the plant.UnitSize(MW) – Size of a single unit in the plant.fuel2(string) – Secondary fuel name, if applicable.HeatRate2(MMBtu/MWh) – Heat rate when operating on secondary fuel.DescreteCap(MW) – Discrete capacity increments allowed for expansion.BuildLimitperYear(MW/year) – Maximum allowable capacity additions per year.MaxTotalBuild(MW) – Maximum total capacity allowed for the plant.
Example Link: pGenDataInputCustom.csv
pGenDataInputDefault.csv#
Description:
A dataset with default characteristics for power generation technologies, reducing the need for repetitive entries inpGenDataInputCustom.csv.
It provides default values based on zone, technology name, and fuel name for various plant characteristics.Data Structure:
4 dimensions:
Zone – The geographical area where the technology is applied.
Type – The generation technology name, as defined in
pTechData.csv.Fuel – The primary fuel name, as defined in
ftfindex.csv.Characteristics – Default technical and economic characteristics.
Column Descriptions:
The columns follow the same structure aspGenDataInputCustom.csv.
Please refer to its documentation for details on each field, including capacity, efficiency, operational constraints, and cost parameters.Source:
The initial dataset is typically based on CCDR (Country Climate and Development Report) guidelines.Example Link: pGenDataInputDefault.csv
Link to Standard Data: pGenDataInputDefaultStandard.csv - See Technology overview
pAvailabilityCustom.csv#
Description:
Defines the seasonal availability of power plants, accounting for maintenance periods or hydro storage constraints.
Availability values range between 0 and 1 and represent an average over the season.
The optimizer determines the best way to manage reduced availability.Data Structure:
Plant (string) – Name of the power plant.
Season (string) – The season for which availability is defined.
Availability Factor (fraction [0-1]) – Defines the fraction of the plant’s capacity available for use.
Example Link: pAvailabilityCustom.csv
pAvailabilityDefault.csv#
Description:
Provides default seasonal availability for power plants based on zone, technology, and fuel name.
This dataset enables automatic filling of seasonal availability values.Data Structure:
Zone (string) – The geographical area.
Technology (string) – Name of power generation technology.
Fuel (string) – Primary fuel name.
Season (string) – The season for which availability is defined.
Availability Factor (fraction [0-1]) – The default availability value for this configuration.
Source:
The initial dataset is typically based on CCDR (Country Climate and Development Report) guidelines.Example Link: pAvailabilityDefault.csv
pVREgenProfile.csv#
Description:
Defines the generation profile of variable renewable energy (VRE) plants over time.Data Structure:
Plant (string) – Name of the VRE plant.
Season (string) – The season considered.
Day (integer) – The day within the season.
Time (hour) – The time of day.
Generation Factor (fraction [0-1]) – The fraction of installed capacity available at a given time.
Example Link: pVREgenProfile.csv
pVREProfile.csv#
Description:
Defines VRE generation profiles at the technology level and automatically populatespVREgenProfile.csv.Data Structure:
Technology (string) – Name of renewable technology (e.g., PV, WIND, ROR).
Season (string) – The season considered.
Day (integer) – The day within the season.
Time (hour) – The time of day.
Generation Factor (fraction [0-1]) – The expected generation fraction for this technology.
Example Link: pVREProfile.csv
pCapexTrajectoriesCustom.csv#
Description:
Defines the capital expenditure (CAPEX) cost trajectory for specific plants over time.
A factor of 0.5 in 2050 means the cost will be 50% of the initial CAPEX value frompGenData.csvin 2050.Data Structure:
Plant (string) – Name of the power plant.
Year (integer) – Year of CAPEX adjustment.
CAPEX Factor (fraction [0-1]) – Adjustment factor applied to the original CAPEX value.
Example Link: pCapexTrajectoriesCustom.csv
pCapexTrajectoriesDefault.csv#
Description:
Provides default CAPEX cost trajectories for different zones, technology names, and fuels, reducing the need for repeated entries.Data Structure:
Zone (string) – The geographical area.
Technology (string) – Name of power generation technology.
Fuel (string) – Primary fuel name.
Year (integer) – Year of CAPEX adjustment.
CAPEX Factor (fraction [0-1]) – Adjustment factor applied to the original CAPEX value.
Source:
The initial dataset is typically based on CCDR (Country Climate and Development Report) guidelines.Example Link: pCapexTrajectoriesDefault.csv
pFuelPrice.csv#
Description:
Provides fuel price projections by country and year, used for economic modeling of power generation costs.Data Structure:
Country (string) – Name of the country.
Fuel (string) – Name of fuel (as defined in
ftfindex.csv).Year (integer) – Year for the price data.
Fuel Price ($/MMBtu) – Cost of fuel per million British thermal units (MMBtu).
Example Link: pFuelPrice.csv
–
Others#
pCSPData.csv and pStorDataExcel.csv are not included in the documentation, as we want to merge them into pGenDataInput.csv.
Example Link:
Constraint#
All files in this section are stored in the constraint folder.
Constraint are typically defined in the pSettings.csv file. Here, these files are used to define the constraints in more detail.
pCarbonPrice.csv#
Description:
Defines the carbon price trajectory over time, used to account for carbon costs in power generation planning.Data Structure:
Year (integer) – The year for which the carbon price applies.
Carbon Price ($/tCO₂) – Cost of carbon emissions per metric ton of CO₂.
Example Link: pCarbonPrice.csv
pEmissionsCountry.csv#
Description:
Defines total CO₂ emissions at the country level, used for national carbon constraints.Data Structure:
Zone (string) – The geographical area.
Year (integer) – The year for which the emission limit applies.
CO₂ Emissions (tCO₂) – The total allowed emissions for the given year.
Example Link: pEmissionsCountry.csv
pEmissionsTotal.csv#
Description:
Defines the total CO₂ emissions cap for the entire system.Data Structure:
Year (integer) – The year for which the emission limit applies.
CO₂ Emissions (tCO₂) – The total allowed emissions for all zones combined.
Example Link: pEmissionsTotal.csv
pMaxFuelLimit.csv#
Description:
Defines maximum fuel consumption limits for different zones, used to constrain fuel usage in the model.Data Structure:
Zone (string) – The geographical area.
Fuel (string) – Name of fuel (as defined in
ftfindex.csv).Year (integer) – The year for which the limit applies.
Max Fuel Limit (MMBtu) – Maximum allowable fuel consumption in million British thermal units.
Example Link: pMaxFuelLimit.csv
Reserve#
There are two types of reserves in EPM:
Spinning Reserve – A real-time operational reserve that provides immediate response to sudden changes in demand or supply.
Planning Reserve – A reserve margin that ensures sufficient generation capacity is available to meet peak demand and contingencies.
Note:
Spinning reserve requirements depend on the values in this dataset plus the forecast error of VRE (Variable Renewable Energy), which is defined in
pSettings.csv.To be included in the model, reserve requirements must be properly defined in
pSettings.csv.
pPlanningReserveMargin.csv#
Description:
Defines the minimum required planning reserve margin as a share of total demand, ensuring system adequacy.Data Structure:
Zone (string) – The geographical area.
Year (integer) – The year for which the planning reserve requirement applies.
Reserve Margin (fraction) – The percentage of total demand that must be reserved for planning purposes.
Example Link: pPlanningReserveMargin.csv
pSpinningReserveReqCountry.csv#
Description:
Defines the spinning reserve requirement at the country level, ensuring adequate capacity is available for sudden demand fluctuations or generation losses.Data Structure:
Country (string) – The country for which the reserve requirement applies.
Year (integer) – The year for which the requirement applies.
Spinning Reserve Requirement (MW) – The minimum spinning reserve capacity required in megawatts.
Example Link: pSpinningReserveReqCountry.csv
pSpinningReserveReqTotal.csv#
Description:
Defines the total system-wide spinning reserve requirement, summing up reserves required across all zones/countries.Data Structure:
Year (integer) – The year for which the requirement applies.
Total Spinning Reserve Requirement (MW) – The total spinning reserve capacity required across the entire system.
Example Link: pSpinningReserveReqTotal.csv
Trade#
Documentation in progress. Check the trade folder for more details.
File |
Purpose / Definition |
Scope |
|---|---|---|
|
Defines transfer capacities between internal zones and network topology. |
Explicit – within region |
|
Defines candidate internal transmission lines for potential expansion. Used if |
Explicit – within region |
|
Specifies transmission losses on each internal transmission line (required in interconnected mode). |
Explicit – within region |
|
Lists external zones available for trade. These zones are implicit (not modeled in detail). |
Implicit – external trade |
|
Defines seasonal transfer capacities between internal and external zones for price-driven imports/exports. |
Implicit – external trade |
|
Sets import/export prices from/to external zones (by hour, season, day, year). |
Implicit – external trade |
|
Limits the maximum share of total demand that can be imported or exported by a country. |
Implicit – external trade |
pTransferLimit.csv#
Description:
Defines the available capacity for exchanges between internal zones. This dataframe is used to specify the network topology.Data Structure:
Index
From (str) – Origin of the import/export.
To (str) – Destination of the import/export.
Seasons (str) – Season for which the capacity is specified.
Columns
Year (int) – Year for which the capacity applies.
Value
Capacity available for imports or exports between internal zones.
Example Link: pTransferLimit.csv
pNewTransmission.csv#
Description:
Defines candidate transmission lines for potential expansion. This file is only used when fAllowTransferExpansion is set to 1 in pSettings.csv.
Each transmission line must be specified only once. The order of the From and To locations does not matter (e.g., specify either Angola–Namibia or Namibia–Angola, but not both).
Data Structure:
Index
From (str) – Starting location of the transmission line.
To (str) – Destination of the transmission line.
Columns
EarliestEntry (int) – Earliest year the line can be built.
MaximumNumOfLines (int) – Maximum number of lines that can be constructed (lines must be built in whole units).
CapacityPerLine (int) – Capacity of a single transmission line.
CostPerLine (float) – Investment cost per line.
Life (int) – Expected lifespan of the transmission line.
Status (int) – Line status
2: committed line3: candidate line
Usage notes
Do not include lines listed in pNewTransmission.csv in
pTransferLimit.csv, or they will be double-counted.For the model to consider lines in pNewTransmission.csv, the option
allowTransferExpansioninpSettings.csvmust be activated.Example Link: pNewTransmission.csv
pLossFactorInternal.csv#
Description:
Defines the transmission losses for each transmission lines. Note: when interconnected mode is activated (intercon = 1), the losses from each transmission line must be specified.
zext.csv#
Description:
Lists external zones that can trade with the modeled zones. These external zones can only contribute to imports and exports based on predefined prices; their generation mix and supply availability are not modeled, as they are not explicitly modeled.Data Structure:
Index
zone (str) – Name of external zone
Example Link: zext.csv
pExtTransferLimit.csv#
Description:
Defines the available capacity for price-driven imports and exports on a seasonal basis. This input can be adjusted alongside the code to support finer time resolutions, such as hourly capacity definitions.
Note: This input is only used when
fAllowTransferExpansionis set to 1 inpSettings.csv.Data Structure:
Index
Internal zone (str) – Origin of the import/export.
External zone (str) – Destination of the import/export.
Seasons (str) – Season for which the capacity is specified.
Import/Export (str) – Indicates whether the capacity applies to imports or exports. Allowed values: Export, Import.
Columns
Year (int) – Year for which the capacity applies.
Value
Capacity available for imports or exports.
Example Link: pExtTransferLimit.csv
pTradePrice.csv#
Description:
Trade price for imports and exports driven by price.Data Structure:
Index
zext (str) – External zone that can trade.
Seasons (str) – Season for which the trade price is specified.
Day (str) – Day for which the trade price is specified.
Year (int) – Year for which the trade price is specified.
Columns
Time(str) - Hour of the day for which the trade price is specified.
Value
Trade price (€/MWh)
Example Link: pTradePrice.csv
H2#
Documentation in progress. Check the h2 h2 for more details.