Unmet Load - Inputs
Unmet Load components act as "last resort" generators with very high penalty costs. They allow the optimizer to solve even when demand cannot be fully met, providing diagnostic information about system adequacy. Below are all input attributes that you can set for unmet load components.
WARNING
Unmet Load is a special generator type used to identify supply shortfalls. If unmet load is dispatched in your results, it indicates insufficient generation or transmission capacity to meet demand.
Basic
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
type | string | n/a | n/a | No | static | Placeholder for unmet load type. Not yet implemented. |
carrier | string | n/a | n/a | No | static | Prime mover Carrier (e.g. coal, gas, wind, solar); required for global constraints on primary energy in optimization |
active | boolean | n/a | True | No | static | Whether this unmet load generator is active and should be included in network calculations. Set to False to temporarily disable the generator without deleting it. |
Capacity
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
p_nom | float | MW | 10000000 | No | static | The maximum rated capacity in MW. For unmet load, this is typically set very high (e.g., 10000000 MW) to allow the optimizer to serve any unmet demand. This sets the upper limit for power output in all calculations. |
p_nom_extendable | boolean | n/a | False | No | static | Switch to allow the nominal power (p_nom) to be extended in optimization. |
p_nom_min | float | MW | 0 | No | static | If the nominal power (p_nom) is extendable in optimization, set its minimum value. |
p_nom_max | float | MW | inf | No | static | If the nominal power (p_nom) is extendable in optimization, set its maximum value (e.g. limited by technical potential). |
build_year | int | year | 0 | No | static | The year when the unmet load generator can be built or commissioned. Essential for multi-year capacity expansion planning models, which determine optimal investment timing and generator retirement schedules. |
lifetime | float | years | inf | No | static | The operational lifetime of the unmet load generator in years. Essential for multi-year capacity expansion planning models, which use this to determine when generators retire (build year + lifetime). Set to "inf" for generators that never retire. |
Power Limits
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
p_min_pu | float | per unit | 0 | No | static or timeseries | The minimum output for each snapshot per unit of the nominal power (p_nom) for the optimization. Note that if committable is False and p_min_pu > 0, this represents a must-run condition. |
p_max_pu | float | per unit | 1 | No | static or timeseries | The maximum output for each snapshot per unit of the nominal power (p_nom) for the optimization. |
p_set | float | MW | 0 | No | static or timeseries | Fixed active power output that the unmet load generator must produce. Used when the output is predetermined rather than optimized. |
q_set | float | MVar | 0 | No | static or timeseries | Fixed reactive power output that the unmet load generator must produce. Used when the reactive power output is predetermined rather than optimized. |
sign | float | n/a | 1 | No | static | Power flow direction convention: 1 for generation (positive power flows into the network), -1 for consumption (positive power flows out of the network). |
Energy
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
efficiency | float | per unit | 1 | No | static or timeseries | Ratio between primary energy and electrical energy, e.g. takes value 0.4 MWh_elec/MWh_thermal for gas. This is required for global constraints on primary energy in optimization. |
Unit Commitment
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
committable | boolean | n/a | False | No | static | Enable unit commitment, allowing the unmet load generator to be turned on or off with associated start-up and shutdown costs. Only available when the nominal power (p_nom) is not extendable. |
start_up_cost | float | currency | 0 | No | static | Cost to start up the unmet load generator. Only read if committable is True. |
shut_down_cost | float | currency | 0 | No | static | Cost to shut down the unmet load generator. Only read if committable is True. |
min_up_time | int | snapshots | 0 | No | static | Minimum number of snapshots for status to be 1. Only read if committable is True. |
min_down_time | int | snapshots | 0 | No | static | Minimum number of snapshots for status to be 0. Only read if committable is True. |
up_time_before | int | snapshots | 1 | No | static | Number of snapshots that the unmet load generator was online before network.snapshots start. Only read if committable is True and min_up_time is non-zero. |
down_time_before | int | snapshots | 0 | No | static | Number of snapshots that the unmet load generator was offline before network.snapshots start. Only read if committable is True and min_down_time is non-zero. |
Ramping
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
ramp_limit_up | float | per unit | 1 | No | static or timeseries | Maximum active power increase from one snapshot to the next, per unit of the nominal power (p_nom). Ignored if 1. |
ramp_limit_down | float | per unit | 1 | No | static or timeseries | Maximum active power decrease from one snapshot to the next, per unit of the nominal power (p_nom). Ignored if 1. |
ramp_limit_start_up | float | per unit | 1 | No | static | Maximum active power increase at start up, per unit of the nominal power (p_nom). Only read if committable is True. |
ramp_limit_shut_down | float | per unit | 1 | No | static | Maximum active power decrease at shut down, per unit of the nominal power (p_nom). Only read if committable is True. |
Costs
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
marginal_cost | float | currency/MWh | 100000000 | No | static or timeseries | The variable cost of producing one additional MWh of electricity. For unmet load, this is typically set very high (e.g., 100000000 currency/MWh) as a penalty cost to discourage the optimizer from using this generator unless absolutely necessary. Used by the optimizer to determine the economic dispatch order. |
capital_cost | float | currency/MW | 0 | No | static or timeseries | The cost per MW of adding new capacity. Includes investment costs (spread over the planning period) and fixed operations & maintenance costs. Only relevant when p_nom_extendable is True. |
Electrical
| Attribute | Data Type | Unit | Default | Required | Storage Type | Description |
|---|---|---|---|---|---|---|
control | string | n/a | PQ | No | static | Power flow control mode: "PQ" (fixed active and reactive power), "PV" (fixed active power and voltage magnitude), or "Slack" (balances system power, typically one per network). |

