Skip to content

Parameter catalogue

Every input parameter of this FlexTool version, generated from its database schema: one table per entity class. The topic pages of Model parameters explain what the parameters do and how they work together; the parameter groups page explains the group labels.

  • Unit is the unit of the default convention (MW, MWh, CUR for the model currency, tonnes of CO2). FlexTool does not check units: a model may use others consistently. dimensionless is a ratio or a share; MW or count is a number of units when virtual_unitsize is above 0.
  • Default is the default of the schema. When FlexTool runs it may derive or default other values; the results show what the model used.
  • Allowed shapes says what a value may be: a constant, or a map (an indexed table) over periods, over time, or over both (one or two index levels); a stochastic-time map has three levels (branch, analysis_time, time). A map whose index is something else names it: a map: constraint name → coefficient. Where FlexTool checks the shape, this is what it accepts; otherwise it comes from the description or the value types of the schema (a map with n index levels).
  • The same table as an Excel data dictionary, with the parameters a database uses: python -m flextool.docs_build --xlsx catalogue.xlsx --input-db input_data.sqlite (see Make a data dictionary for your model).

commodity

A fuel or other product bought from, or sold to, outside the modelled system at a price (natural gas, coal, hydrogen for export).

parameter unit allowed shapes default allowed values group definition
co2_content tCO2/MWh a constant emission Constant.
price CUR/MWh or other unit a constant, or a map over periods or over time (1 level) basics Price of the commodity. Constant, period or time.
price_ladder_annual CUR/MWh; MWh/a a map over tiers and price / quantity (2 levels), or a map over periods, tiers and price / quantity (3 levels) basics Stepped supply curve for price_method price_ladder_annual. Map of tier → price and quantity (optionally per period). Quantity is per year; a shorter solve gets its share by the hours it covers. quantity = inf can be used to mark an unlimited last tier.
price_ladder_cumulative CUR/MWh; MWh a map over tiers and price / quantity (2 levels) basics Stepped supply curve for price_method='price_ladder_cumulative'. 2d map with rows 'tier,price,quantity' — one row per tier, giving the tier's unit price and its cumulative quantity cap. 1-based integer tier index. quantity=inf marks an unbounded tail tier. Period-agnostic — the cap is a single total across the full model horizon.
price_method a constant price price, price_ladder_annual, price_ladder_cumulative basics How the commodity's price enters the LP. 'price' = scalar or time-series price x flow (current behaviour); 'price_ladder_annual' = stepped supply curve with a per-year quantity cap per tier; 'price_ladder_cumulative' = stepped supply curve with a total-model quantity cap per tier (handoff-carried across rolling solves).
unitsize MWh a constant basics Per-commodity scaling coefficient applied to the v_trade tier variable when the commodity uses the price-ladder feature (gated by commodity.price_method = price_ladder_annual or price_ladder_cumulative). When set, v_trade is expressed in user-MWh divided by this value; pick the unitsize so the largest tier quantity sits at O(10) in the scaled LP. The coefficient multiplies v_trade in the commodity_ladder_balance LHS, the per-tier cap LHS, and the per-tier objective term. When absent (the default), the price-ladder consumer substitutes 1.0 internally so v_trade is in user-MWh (identity scaling). Ignored entirely when commodity.price_method is not a price_ladder_* value.

connection

A link that moves energy between two nodes: a transmission line, an interconnector or a pipeline, with its capacity, losses and costs.

parameter unit allowed shapes default allowed values group definition
availability dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) 1 basics e.g. 0.9 means 90%. Fraction of capacity available for connection flows. Constant, period, time or period+time.
constraint_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the connection's capacity in service in each period on the left side of the user constraint (existing plus investments still in service minus retirements). Coefficient per MW. Capacity in construction is not included.
constraint_cumulative_pre_built_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity in service at the start of each period on the left side of the user constraint. This is existing capacity plus capacity that came online in earlier periods, minus earlier retirements. Capacity coming online in the period itself is in the invested term. Coefficient per MW.
constraint_in_construction_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity in construction in each period on the left side of the user constraint. Capacity is in construction from the period of the investment decision until it comes online. It is zero without a construction lead time. Coefficient per MW.
constraint_invested_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity that comes online in each period on the left side of the user constraint. Without a construction lead time, this is the capacity invested in that period. Coefficient per MW.
constraint_online_coeff unit of the constraint per unit online a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the number of units of the connection online in each time step on the left side of the user constraint. One unit is virtual_unitsize; without it, the largest existing capacity, else 1000 MW (set virtual_unitsize when the capacity is invested). Needs online variables (startup_method linear or binary); a coefficient without them is an error. With linear startup the number is continuous. For MW online, use the unit size (MW per unit) as the coefficient.
constraint_retired_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity retired in each period on the left side of the user constraint. Coefficient per MW.
construction_lead_time years a constant, or a map over periods (1 level) investment Time from the investment decision until the capacity starts to operate. The start is rounded to the start of a period (see construction_lead_time_method). Investments whose rounded start is after the end of the solve or the model horizon are not offered, with a warning. Constant or period. Default 0.
construction_lead_time_method a constant immediate, closest_seam, previous_seam, next_seam investment How the start of operation (decision year plus construction_lead_time) is rounded to the start of a period. immediate: no lead time, the capacity operates from the decision period. closest_seam: the nearest period start; a tie goes to the later one. previous_seam: the period start before. next_seam: the period start after. Without a value: immediate when there is no lead time, else closest_seam.
cumulative_max_capacity MW a constant, or a map over periods (1 level) investment Maximum cumulative capacity (considers existing, invested and retired capacity). Constant or period.
cumulative_min_capacity MW a constant, or a map over periods (1 level) investment Minimum cumulative capacity (considers existing, invested and retired capacity). Constant or period.
delay hours a constant, or a map with 1 index level tech_advanced Not yet applied to connections (planned): a connection delay is ignored (the connection is modelled as if no delay were set) and the model warns about it. Model a delayed flow with a unit. Intended meaning: a time delay between the input node and the output node, either a constant time difference in hours or a map of time differences (index: time difference in hours, value: weight; the weights should sum to 1).
discount_rate dimensionless a constant, or a map over periods (1 level) 0.05 investment e.g. 0.05 means 5% per year. Discount rate for investments (WACC). Reflects the financing cost and risk premium for this technology. When the model inflation_rate > 0, this should be a nominal rate. When inflation_rate = 0, this should be a real rate. Used to annualize investment costs over the lifetime: annuity = invest_cost x r / (1 - (1 + r)^-lifetime). 0 gives the straight-line annuity invest_cost / lifetime. No value means 0.05. Must be 0 or above. Constant or period.
efficiency dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) 1 basics e.g. 0.9 means 90%. Efficiency of the connection. Constant, period, time or period+time.
existing MW or count a constant, or a map over periods (1 level) basics Existing capacity or number of units. If virtual_unitsize is given, then existing is the number of units (capacity = existing × virtual_unitsize). Otherwise existing is the existing capacity of a single unit (typically in MW). Constant or period.
fixed_cost CUR/kW/a a constant, or a map over periods (1 level) investment Annual fixed cost. New capacity pays it only while it operates. Constant or period.
invest_cost CUR/kW a constant, or a map over periods (1 level) investment Overnight investment cost of new capacity. It is paid as an annuity over the years the capacity operates. Construction time costs with their interest must be included here. Constant or period: the value of the period when the capacity is built (comes online) is used.
invest_max_period MW a constant, or a map over periods (1 level) investment Largest allowed capacity coming online in each period. Existing capacity and retirements do not change it. With a construction lead time, the investment is decided earlier. Constant or period.
invest_max_total MW a constant investment Largest allowed total investment over all solves. Every investment decision counts, also reinvestments and investments that are no longer in service. Retirements and existing capacity do not reduce it. To limit the capacity in service, use cumulative_max_capacity. Constant.
invest_method a constant not_allowed not_allowed, invest_no_limit, invest_period, invest_total, invest_period_total, retire_no_limit, retire_period, retire_total, retire_period_total, invest_retire_no_limit, invest_retire_period, invest_retire_total, invest_retire_period_total, cumulative_limits investment Choice of investment method: not_allowed, invest and retire indicate availability of investment and retirement. no_limit removes all limits even if there are limiting values set. period uses values set in invest/retire_max/min_period. total uses values set in invest/retire_max/min_total.
invest_min_period MW a constant, or a map over periods (1 level) investment Smallest required capacity coming online in each period. Existing capacity and retirements do not change it. With a construction lead time, the investment is decided earlier. Constant or period.
invest_min_total MW a constant investment Smallest required total investment over all solves. Every investment decision counts, also reinvestments and investments that are no longer in service. Retirements and existing capacity do not reduce it. To limit the capacity in service, use cumulative_max_capacity. Constant.
is_DC a constant no yes, no network Whether the connection is DC. Its flow into a group with a non-synchronous limit counts as non-synchronous, in both directions. Default no.
lifetime years a constant, or a map over periods (1 level) investment Operating lifetime. It starts when the capacity starts to operate: with a construction lead time, after the construction. Used with the interest rate to calculate the annuity. What happens at the end of the lifetime depends on lifetime_method: reinvest_automatic keeps the capacity to the end of the model horizon, reinvest_choice retires it, no_investment retires it once. Required when the connection invests or retires with a cost (invest_cost, salvage_value), and when lifetime_method is reinvest_choice or no_investment (also for existing capacity without investment). Constant or period.
lifetime_method a constant reinvest_automatic reinvest_automatic, reinvest_choice, no_investment investment Choice how the investments behave after unit runs out of lifetime. Automatic reinvestment causes the model to keep the capacity until the end of model horizon and applies the annualized investment cost without further model choice. Choice of reinvestment removes the capacity at the end of the lifetime and the model needs to decide how much new capacity is to be built.
other_operational_cost CUR/MWh a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) basics Other operational variable cost for trasferring over the connection. Constant, period, time or period+time.
reactance p.u. a constant network Per-unit reactance of the transmission line. Used for DC power flow when the connection is within a nodeGroup that has transfer_method set to dc_power_flow_with_angles. The susceptance used in the flow equation is base_MVA / reactance.
retire_max_period MW a constant, or a map over periods (1 level) retirement Largest allowed retirement in each period. Counts only what is retired in that period; existing capacity and investments do not change it. Constant or period.
retire_max_total MW a constant retirement Largest allowed total retirement over all solves. Investments and existing capacity do not change it. Constant.
retire_min_period MW a constant, or a map over periods (1 level) retirement Smallest required retirement in each period. Counts only what is retired in that period; existing capacity and investments do not change it. Constant or period.
retire_min_total MW a constant retirement Smallest required total retirement over all solves. Investments and existing capacity do not change it. Constant.
salvage_value CUR/kW a constant, or a map over periods (1 level) retirement Salvage value for retiring capacity. Constant or period.
startup_cost CUR/MW a constant, or a map over periods (1 level) tech_advanced Cost of starting up one MW of capacity. Constant or period.
startup_method a constant no_startup no_startup, linear, binary tech_advanced Gives the connection online capacity in both directions. Flows and reserves are limited by the online capacity, and startup_cost is paid per MW brought online. No minimum load or minimum up/down time. Not allowed for dc_power_flow_with_angles lines.
transfer_method a constant regular no_losses_no_variable_cost, regular, exact, variable_cost_only, unidirectional basics Choice of transfer method. Options: regular (default), no_losses_no_variable_cost, variable_cost_only, exact, unidirectional. 'unidirectional' restricts flow to source → sink only (single non-negative variable); 'regular'/'exact'/'variable_cost_only' are bidirectional two-variable variants; 'no_losses_no_variable_cost' is a single signed variable with no losses and no VOM.
virtual_unitsize MW a constant basics Size of one unit. With it, existing is the number of units. Binary startups commit whole units of this size. Investments and retirements are continuous; their limits are in MW. No value: the existing capacity, or 1000 MW without it.

constraint

A constraint the user writes: its terms (flows, capacities, storage states, units online) come from the constraint_..._coeff parameters of the other classes; here its sense and its constant. A constraint with only capacity terms holds once per period, otherwise once per time step.

parameter unit allowed shapes default allowed values group definition
constant the constraint's own unit a constant, or a map over periods (1 level) 0 constraint Right-hand side of the user constraint. A period map gives each period its own value; it must cover every period of the solve. Constant or period.
constraint_period_method a constant per_timestep per_timestep, period_total constraint How the user constraint is applied in time. per_timestep (default): a row for every time step (a constraint with only capacity terms has one row per period). period_total: one row per period over the sum of the time steps, each step's terms times its duration and weight, annualised (divided by the period's share of a year): flows count in MWh per year and units online in unit-hours per year; capacity terms and their existing capacity are multiplied by the hours of the year, and constant is per year. A state coefficient is not allowed. In a rolling solve the row is written only in a roll that realizes the whole period; otherwise the solve leaves it out with a warning. Constant.
is_enabled a constant yes yes, no constraint Whether the entity is enabled. Set to 'no' to disable without deleting the entity. Constant.
sense a constant equal greater_than, less_than, equal constraint The sense of the constraint ('greater_than', 'less_than' or 'equal').

flowGroup

A set of flows (a unit or a connection into or out of a node) that share limits, such as a maximum instant flow or a cumulative flow over a period.

parameter unit allowed shapes default allowed values group definition
flow_aggregator a constant none none, dispatch_plots_only, standalone_aggregator_only, both output Choice of flow-aggregation method for this flowGroup: 'none' (used for flow limits only, no aggregated output), 'dispatch_plots_only' (used as an aggregated flowGroup within 'print_dispatch' group of nodes - do not include one flow in multiple flow aggregators to avoid double counting), 'standalone_aggregator_only' (just make time series available for manual output processing / simple plots), 'both'.
max_cumulative_flow MW a constant, or a map over periods (1 level) flow_limit Largest allowed average flow into the group. A constant gives one limit per solve; a period map gives one limit per period. Average flow times the weighted hours gives the energy limit. Constant or period.
max_instant_flow MW a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) flow_limit Maximum instantenous flow for the aggregated flow of all group members. Constant, period, time or period+time.
min_cumulative_flow MW a constant, or a map over periods (1 level) flow_limit Smallest required average flow into the group. A constant gives one limit per solve; a period map gives one limit per period. Average flow times the weighted hours gives the energy limit. Constant or period.
min_instant_flow MW a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) flow_limit Minimum instantenous flow for the aggregated flow of all group members. Constant, period, time or period+time.

group

A set of units, connections and nodes that share limits or targets (investment limits, CO2 limits, capacity margin, inertia) or that are reported together.

parameter unit allowed shapes default allowed values group definition
base_MVA MVA a constant network Base power for the per-unit system used in DC power flow. Default 100. susceptance = base_MVA / reactance_pu.
candidate_precapacity_to_avoid_big_m MW a constant network Small pre-existing capacity assigned to investment candidate connections in DC power flow groups that have zero existing capacity. This avoids the need for big-M / MIP constraints by ensuring the angle constraint is always active. Default 0.1 MW. The value should be small enough to not affect results but large enough for numerical stability.
capacity_margin MW a constant, or a map over periods (1 level) investment Capacity the group needs above its demand at every time step of an investment period. Used only with capacity_margin_method manual. No value means 0 (the demand must still be covered). Constant or period.
capacity_margin_method a constant none none, manual, share_of_peak investment Whether the group needs a capacity margin in investment solves, and how the margin is given. none (default): no margin. manual: capacity_margin MW. share_of_peak: capacity_margin_share times the group's peak demand in the period. At every time step of an investment period, the capacity of the group's firm units (capacity x availability x capacity_max_coeff) and VRE units (capacity x profile x availability) must cover the group's demand plus the margin. Units fed from a storage node, connections and the units consuming from the group count by their actual flow, so exports add to the requirement; connections and lossy units inside the group are left out (their losses are not required). Units fed from fuel or commodity nodes count at capacity: the fuel is assumed to last.
capacity_margin_share dimensionless a constant, or a map over periods (1 level) investment e.g. 0.15 means 15%. Capacity margin as a share of the group's peak demand: the largest sum of the demand of the group's nodes over the period's full time series (before representative periods and new_stepduration). Used only with capacity_margin_method share_of_peak. No value means 0. Constant or period.
co2_max_period tCO2/a a constant, or a map over periods (1 level) emission Largest annual CO2 emissions in each period. In a rolling solve, each roll may use the part of the limit its horizon reaches, minus what earlier rolls already emitted in that period. Constant or period.
co2_max_total tCO2 a constant emission Largest CO2 emissions over the whole model horizon. Each period counts its annual emissions times its years_represented. Rolling solves and chains of solves pass the remaining budget on. Each stochastic forecast gets the whole remaining budget. Constant.
co2_method a constant none none, price, period, total, price_period, price_total, period_total, price_period_total emission Choice of the CO2 method: none, price, period, total, price_period, price_total, period_total, price_period_total
co2_price CUR/tCO2 a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) emission CO2 price for a group of nodes. Constant, period, time or period+time.
cumulative_max_capacity MW or MWh a constant, or a map over periods (1 level) investment Maximum cumulative capacity for a group of entities (considers existing, invested and retired capacity). Constant or period.
cumulative_min_capacity MW or MWh a constant, or a map over periods (1 level) investment Minimum cumulative capacity for a group of entities (considers existing, invested and retired capacity). Constant or period.
decomposition_method a constant none none, benders_regional solve_advanced Decomposition strategy to apply to this group. Currently supported: 'none' (no decomposition — default), 'benders_regional' (group is solved as an independent region in the Benders master/subproblem decomposition, with shared-commodity trade coupling handled by the master).
has_inertia a constant no yes, no network Whether the group has an inertia constraint. Without yes, inertia_limit is ignored.
has_non_synchronous a constant no yes, no network Whether the group has a non-synchronous share limit. Without yes, non_synchronous_limit is ignored.
include_stochastics a constant no yes, no model Includes the stochastic branches to be used for the nodes/units/connections in this group
inertia_limit MWs a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) network Minimum synchronous inertia in the group. Used only when has_inertia is yes. No value (or 0) means no requirement. Constant, period, time or period+time. A time map must give a value for every time step of the solve (a missing time step is an error). Over a coarse time step the row uses the step mean.
invest_max_period MW or MWh a constant, or a map over periods (1 level) investment Largest allowed capacity coming online in each period, summed over the group's units and connections (MW) and storage nodes (MWh). With a construction lead time, the investment is decided earlier. Constant or period.
invest_max_total MW or MWh a constant investment Largest allowed total investment of the group over all solves. Every investment decision counts; retirements do not reduce it. Constant.
invest_method a constant not_active not_active, invest_no_limit, invest_period, invest_total, invest_period_total, retire_no_limit, retire_period, retire_total, retire_period_total, invest_retire_no_limit, invest_retire_period, invest_retire_total, invest_retire_period_total, cumulative_limits investment How the group limits investment and retirement of its members. not_active: the group sets no limits. invest / retire / invest_retire: which decisions the limits apply to. _period uses the …_period limits, _total the …_total limits, _period_total both. no_limit: no limits even if values are set. cumulative_limits: uses the cumulative capacity limits.
invest_min_period MW or MWh a constant, or a map over periods (1 level) investment Smallest required capacity coming online in each period, summed over the group's units and connections (MW) and storage nodes (MWh). With a construction lead time, the investment is decided earlier. Constant or period.
invest_min_total MW or MWh a constant investment Smallest required total investment of the group over all solves. Every investment decision counts; retirements do not reduce it. Constant.
new_stepduration hours a constant timeline Balances the energy of the group's nodes once per step of this length instead of every time step, e.g. daily hydrogen next to hourly electricity. Within the step, energy can move freely between time steps, and a storage node has one state per step. A unit or connection whose nodes are all in such groups also uses the longer step: it has one flow, units online and reserve per step, so the model gets smaller. Its limits, and rows that combine only such units and connections, apply to their average over the step, and ramp limits apply between steps. Units and connections with a node outside these groups keep the solve's time step, and so do those with a delay (an info line names them). Listing units or connections has no effect. Must be a multiple of the solve's step.
non_synchronous_limit dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) network e.g. 0.8 means 80%. Largest share of non-synchronous supply in the group, measured against the real demand. Flows between the group's nodes do not count. Used only when has_non_synchronous is yes; no value means 0. Constant, period, time or period+time. A time map must give a value for every time step of the solve (a missing time step is an error). Over a coarse time step the row uses the step mean.
penalty_capacity_margin CUR/kW/a a constant, or a map over periods (1 level) 5000 investment Penalty for violating the capacity margin constraint. Uses operational discounting (not annualized over lifetime like investment costs), so the value is not directly comparable to annualized investment costs. Constant or period.
penalty_inertia CUR/MWs per hour a constant, or a map over periods (1 level) 5000 network Penalty for violating the inertia constraint. Cost scales with the duration of the violation. Constant or period.
penalty_non_synchronous CUR/MWh a constant, or a map over periods (1 level) 5000 network Penalty for violating the non synchronous constraint. Constant or period.
print_dispatch a constant yes, no output Combines unit/connection flows, flowGroup aggregated flows, and other balance elements (slack, demand, internal_losses, etc.) into a set of timeseries and a preconfigured plot per group.
print_indicators a constant yes, no output Output indicators for the set of nodes in the group (Loss of Load, VRE generation, etc.).
reference_node a constant network Name of the reference bus node (angle fixed to zero) for DC power flow. Optional — if not specified, automatically selected as the node with the largest existing capacity in each connected component of the DC power flow network.
retire_max_period MW or MWh a constant, or a map over periods (1 level) retirement Largest allowed retirement in each period, summed over the group's members. Needs a retire …_period option in the group's invest_method. Constant or period.
retire_max_total MW or MWh a constant retirement Largest allowed total retirement of the group over all solves. Needs a retire …_total option in the group's invest_method. Constant.
retire_min_period MW or MWh a constant, or a map over periods (1 level) retirement Smallest required retirement in each period, summed over the group's members. Needs a retire …_period option in the group's invest_method. Constant or period.
retire_min_total MW or MWh a constant retirement Smallest required total retirement of the group over all solves. Needs a retire …_total option in the group's invest_method. Constant.
share_loss_of_load a constant no equal, inflow_weighted, no flow_limit Force the upward slack of the nodes in this group to be equal or inflow (demand) weighted
transfer_method a constant use_connection_transfer_methods use_connection_transfer_methods, no_losses_no_variable_cost, regular, exact, variable_cost_only, dc_power_flow_with_angles, unidirectional network Override transfer_method for all connections within this nodeGroup. Options: use_connection_transfer_methods (default, no override), no_losses_no_variable_cost, regular, exact, variable_cost_only, unidirectional, dc_power_flow_with_angles. Setting 'unidirectional' gates every member connection to one-way flow (source → sink only). Setting 'dc_power_flow_with_angles' uses B-theta DC power flow (requires reactance on connections).
use_for_representative_periods a constant no yes, no solve_advanced A flag whether this group of nodes is an aggregation unit for net-load representative-period selection. When 'yes', the representative-periods preprocessor aggregates the member nodes' net load (demand minus available VRE) into a single regional signal used for clustering; when 'no' (default) the group is ignored by that selection. If no group carries the flag, the selection falls back to per-node net-load signals.

model

Settings for the whole model: which solves run and in which order, inflation, and numerical settings.

parameter unit allowed shapes default allowed values group definition
inflation_offset_investment years a constant 0 model Offset for when investment costs occur within a year. Default 0 (beginning of year).
inflation_offset_operations years a constant 0.5 model Offset for when operational costs occur within a year. Default 0.5 (middle of year).
inflation_rate dimensionless a constant model e.g. 0.02 means 2% per year. Model-wide inflation rate applied to all future costs. When inputs are in real (constant-price) terms, set to 0. When inputs are in nominal terms, set to expected inflation. Default: 0 (real inputs).
max_flow_for_unconstrained_variables MW a constant 1000000 model Upper bound for capacities and flows that have no other limit: how much capacity an entity with invest_method invest_no_limit or invest_retire_no_limit (or cumulative_limits without cumulative_max_capacity) can add on top of its existing capacity, and the flow on a unit's input or output whose conversion_flow_coeff is 0. The value is used as given; with several model entities the largest value is used. Keep it large enough not to limit the real solution and small enough to avoid numerical problems. Default 1,000,000.
output_horizon a constant no yes, no output Debug flag. yes writes one raw parquet file per LP variable and constraint, with every row of every solve and a realized column. Normal outputs do not change.
periods_available a list of values (array) model (Optional) Array of periods available for the model. Periods that are in the data, but are not in period_timeset.
small_number_threshold unit of each LP coefficient a constant 0.0001 model Coefficients and right-hand-side terms whose absolute value is below this are treated as 0 when building the optimisation problem. Reduces the numerical range (conditioning) of the LP. Default 0.0001.
solves a list of values (array) model Sequence of solves in the model. Array.
version a constant 79 model Contains database version information.

node

A point where energy is balanced: demand, supply and transfers meet there. A node can also be a storage (its state is the energy stored) or a price-setting market.

parameter unit allowed shapes default allowed values group definition
annual_flow MWh/a a constant, or a map over periods (1 level) basics Annual flow in energy units (always positive, the sign of inflow defines in/out). Inflow time series can be scaled to match annual flow. By default, there is no scaling of inflow. Constant or period.
availability dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) 1 basics e.g. 0.9 means 90%. Fraction of capacity available for storage. Constant, period, time, period+time or stochastic time.
constraint_capacity_coeff unit of the constraint per MWh a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the node's storage capacity in service in each period on the left side of the user constraint (existing plus investments still in service minus retirements). Coefficient per MWh. Capacity in construction is not included.
constraint_cumulative_pre_built_capacity_coeff unit of the constraint per MWh a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity in service at the start of each period on the left side of the user constraint. This is existing capacity plus capacity that came online in earlier periods, minus earlier retirements. Capacity coming online in the period itself is in the invested term. Coefficient per MWh.
constraint_in_construction_capacity_coeff unit of the constraint per MWh a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the storage capacity in construction in each period on the left side of the user constraint. Capacity is in construction from the period of the investment decision until it comes online. It is zero without a construction lead time. Coefficient per MWh.
constraint_invested_capacity_coeff unit of the constraint per MWh a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity that comes online in each period on the left side of the user constraint. Without a construction lead time, this is the capacity invested in that period. Coefficient per MWh.
constraint_retired_capacity_coeff unit of the constraint per MWh a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the storage capacity retired in each period on the left side of the user constraint. Coefficient per MWh.
constraint_state_coeff unit of the constraint per MWh a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the storage state in user-defined constraints. [state x coefficient] will be on the left side of the equation.
construction_lead_time years a constant, or a map over periods (1 level) investment Time from the investment decision until the storage capacity starts to operate. The start is rounded to the start of a period (see construction_lead_time_method). Investments whose rounded start is after the end of the solve or the model horizon are not offered, with a warning. Constant or period. Default 0.
construction_lead_time_method a constant immediate, closest_seam, previous_seam, next_seam investment How the start of operation (decision year plus construction_lead_time) is rounded to the start of a period. immediate: no lead time, the storage capacity operates from the decision period. closest_seam: the nearest period start; a tie goes to the later one. previous_seam: the period start before. next_seam: the period start after. Without a value: immediate when there is no lead time, else closest_seam.
cumulative_max_capacity MWh a constant, or a map over periods (1 level) investment Maximum cumulative capacity (considers existing, invested and retired capacity). Constant or period.
cumulative_min_capacity MWh a constant, or a map over periods (1 level) investment Minimum cumulative capacity (considers existing, invested and retired capacity). Constant or period.
discount_rate dimensionless a constant, or a map over periods (1 level) 0.05 investment e.g. 0.05 means 5% per year. Discount rate for investments (WACC). Reflects the financing cost and risk premium for this technology. When the model inflation_rate > 0, this should be a nominal rate. When inflation_rate = 0, this should be a real rate. Used to annualize investment costs over the lifetime: annuity = invest_cost x r / (1 - (1 + r)^-lifetime). 0 gives the straight-line annuity invest_cost / lifetime. No value means 0.05. Must be 0 or above. Constant or period.
energy_margin_adder MWh per time step of the timeline a constant, or a map over periods (1 level), or a map over periods and time (2 levels) 0 investment per time step of the timeline. Extra demand (negative inflow) added to every time step of the investment solve, when energy_margin_method = inflow_adder. The value is not a total that is divided over the steps: each time step gets the full value. On a timeline of 24 h time steps, a margin of 10 MW needs a value of 240. When the investment solve uses new_stepduration, a solve step gets the sum of the values of the time steps it combines (a constant or period value counts once per time step). Dispatch solves are not affected. 0 = off. Constant, period or period+time.
energy_margin_method a constant none none, inflow_multiplier, inflow_adder investment How the node's investment-stage energy margin is applied. 'none' (default) = off, no scaling. 'inflow_multiplier' multiplies this node's inflow by 'energy_margin_multiplier' in the solve that carries investment periods only (dispatch solves are unaffected). 'inflow_adder' instead adds 'energy_margin_adder' MWh of extra demand (negative inflow) to each time step of that same investment solve. Both offset representative-period VRE optimism that would otherwise cause underinvestment.
energy_margin_multiplier dimensionless a constant 1 investment e.g. 1.1 means 10% more demand. Multiplier applied to this node's inflow in the investment solve only, when energy_margin_method = 'inflow_multiplier'. Offsets representative-period VRE optimism (rep-period average VRE availability exceeds the annual average). 1 = off. e.g. 1.1 builds ~10% more capacity to serve the true annual demand under the true (lower) annual VRE. Constant.
existing MWh or count a constant, or a map over periods (1 level) basics Existing storage capacity or number of storage units. If virtual_unitsize is given, then existing is the number of units (capacity = existing × virtual_unitsize). Otherwise existing is the existing capacity of a single unit (typically in MWh). Constant or period.
fixed_cost CUR/kWh/a a constant, or a map over periods (1 level) investment Annual fixed cost for storage. New storage capacity pays it only while it operates. Constant or period.
inflow MWh per time step a constant, or a map over time (1 level), or a stochastic-time map (branch, analysis_time, time; 3 levels) basics per time step. Energy flowing into the node in each time step (negative is outflow, e.g. demand). The value is the energy of the whole step, not a rate: on 1 h steps it equals the average MW, and on 3 h steps it is 3 × the average MW. When the step length of your data changes, rescale the values yourself, e.g. sum hourly values to get 3 h steps, or halve MW values for 0.5 h steps. FlexTool does not convert them, and time-series values whose time names are not on the timeline are ignored. FlexTool sums the values for you only when a solve's new_stepduration coarsens the timeline, and when a group's new_stepduration balances the node per coarse step. A constant value is used as the same energy in every step. Constant, time or stochastic time.
inflow_method a constant use_original no_inflow, use_original, scale_in_proportion, scale_to_annual_flow, scale_to_annual_and_peak_flow basics Choice how to treat inflow time series. Empty defaults to 'use_original', which does not scale the time series. 'no_inflow' ignores the inflow time series. 'scale_to_annual_flow' scales the inflow time series by a single factor (shape preserved) so its annual energy equals 'annual_flow'. The annualisation uses each timestep's share of the year: for a full or evenly sampled timeline this is 8760/'hours_in_solve' (every step weighted equally); for a representative timeset with 'timeset_weights', each timestep is weighted by its declared share of the year, so a biased sample of timesteps still annualises correctly. The same weighting is used for energy reporting and operating-cost accounting, so the energy the model is scaled to serve, reports, and costs all coincide. If 'timeset_weights' do not reflect the true representativeness of your selected timesteps, the scaling factor - and therefore the absolute demand level - shifts accordingly; see the per-node 'f' diagnostic (inflow_scaling_diagnostics.csv). 'scale_in_proprotion' calculates a scaling factor by dividing 'annual_flow' with the sum of time series inflow (after it has been annualized using 'timeline_duration_in_years'). (With a representative timeset, the annual-energy match uses 'timeset_weights' as above.) 'scale_to_annual_and_peak_flow' scales the time series to match the 'annual_flow' target while transforming the time series to match the highest load with the 'peak_inflow'. (With a representative timeset, the annual-energy match uses 'timeset_weights' as above; the peak match stays unweighted.)
invest_cost CUR/kWh a constant, or a map over periods (1 level) investment Overnight investment cost of new storage capacity. It is paid as an annuity over the years the storage capacity operates. Construction time costs with their interest must be included here. Constant or period: the value of the period when the storage capacity is built (comes online) is used.
invest_forced MWh a constant, or a map over periods (1 level) investment Forces exactly this much new storage capacity to come online in the period, overriding the investment optimisation (as setting invest_min and invest_max equal). Constant or period.
invest_max_period MWh a constant, or a map over periods (1 level) investment Largest allowed storage capacity coming online in each period. Existing capacity and retirements do not change it. With a construction lead time, the investment is decided earlier. Constant or period.
invest_max_total MWh a constant investment Largest allowed total investment over all solves. Every investment decision counts, also reinvestments and investments that are no longer in service. Retirements and existing capacity do not reduce it. To limit the capacity in service, use cumulative_max_capacity. Constant.
invest_method a constant not_allowed not_allowed, invest_no_limit, invest_period, invest_total, invest_period_total, retire_no_limit, retire_period, retire_total, retire_period_total, invest_retire_no_limit, invest_retire_period, invest_retire_total, invest_retire_period_total, cumulative_limits investment Choice of investment method: either not_allowed or then a combination of 1) investment or retirement and 2) investment limits per period, all periods (total) or no_limits.
invest_min_period MWh a constant, or a map over periods (1 level) investment Smallest required storage capacity coming online in each period. Existing capacity and retirements do not change it. With a construction lead time, the investment is decided earlier. Constant or period.
invest_min_total MWh a constant investment Smallest required total investment over all solves. Every investment decision counts, also reinvestments and investments that are no longer in service. Retirements and existing capacity do not reduce it. To limit the capacity in service, use cumulative_max_capacity. Constant.
lifetime years a constant, or a map over periods (1 level) investment Operating lifetime. It starts when the storage capacity starts to operate: with a construction lead time, after the construction. Used with the interest rate to calculate the annuity. What happens at the end of the lifetime depends on lifetime_method: reinvest_automatic keeps the storage capacity to the end of the model horizon, reinvest_choice retires it, no_investment retires it once. Required when the node invests or retires with a cost (invest_cost, salvage_value), and when lifetime_method is reinvest_choice or no_investment (also for existing capacity without investment). Constant or period.
lifetime_method a constant reinvest_automatic reinvest_automatic, reinvest_choice, no_investment investment Choice how the investments behave after unit runs out of lifetime. Automatic reinvestment causes the model to keep the capacity until the end of model horizon and applies the annualized investment cost without further model choice. Choice of reinvestment removes the capacity at the end of the lifetime and the model needs to decide how much new capacity is to be built.
node_type a constant balance balance_within_period, commodity, balance, storage basics Role of this node in the LP. 'commodity' = price-exposed source/sink with no balance constraint (e.g. fuel imports, no storage); 'balance' = energy balance maintained every timestep (default); 'storage' = balance plus a state variable (battery, reservoir); 'balance_within_period' = balance aggregated over the whole period (e.g. an annual gas budget).
peak_inflow MWh per time step a constant, or a map over periods (1 level) basics per time step. The highest inflow of a time step that the scaled inflow should reach. Use the same scale and sign as inflow (negative for a demand). Used only with inflow_method = scale_to_annual_and_peak_flow. If you change the step length, rescale it as you rescale inflow. Each period reaches its own peak_inflow; with a solve's new_stepduration, peak_inflow is matched per original time step. Constant or period.
penalty_down CUR/MWh a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) 10000 basics Penalty cost for increasing consumption in the node (excess energy). Constant, period, time, period+time, or stochastic time.
penalty_method a constant regular regular, off basics Whether this node has balance penalty (unserved-energy / over-supply slack) variables. 'regular' (default) keeps the penalty_up / penalty_down slack variables that let the node balance be violated at a cost. 'off' removes those slack variables entirely, making the node balance a hard equality (the solve becomes infeasible if the node cannot balance). Use 'off' only if certain that it will not make the model infeasible (a real solution exists) - infeasible models can be very difficult to debug. At the same time, 'off' will reduce variables and can direct infeasibilities to other, more desirable, nodes.
penalty_up CUR/MWh a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) 10000 basics Penalty cost for decreasing consumption in the node (energy not served). Constant, period, time, period+time, or stochastic time.
retire_max_period MWh a constant, or a map over periods (1 level) retirement Largest allowed retirement of storage capacity in each period. Counts only what is retired in that period; existing capacity and investments do not change it. Constant or period.
retire_max_total MWh a constant retirement Largest allowed total retirement over all solves. Investments and existing capacity do not change it. Constant.
retire_min_period MWh a constant, or a map over periods (1 level) retirement Smallest required retirement of storage capacity in each period. Counts only what is retired in that period; existing capacity and investments do not change it. Constant or period.
retire_min_total MWh a constant retirement Smallest required total retirement over all solves. Investments and existing capacity do not change it. Constant.
salvage_value CUR/kWh a constant, or a map over periods (1 level) retirement Salvage value of the storage. Constant or period.
self_discharge_loss dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) storage e.g. 0.01 means 1% per hour. Loss of stored energy over time: the content shrinks by the factor 1/(1 + loss) every hour (with 0.01, by about 0.99% per hour), decaying continuously at ln(1 + loss) per hour. Constant, period, time or period+time.
storage_binding_method a constant bind_forward_only bind_within_period, bind_within_solve, bind_forward_only, bind_intraperiod_blocks, bind_within_timeblock, bind_within_solve_blended_weights, bind_within_period_blended_weights, bind_forward_only_blended_weights storage Choice how the storage state will be maintained over discontinuous timelines. Seven cycle-scope methods (the state-continuity family): 'bind_within_timeblock' cycles state within each timeblock (cycle closes at block boundaries); 'bind_within_period' cycles within each FlexTool period and chains blocks inside the period; 'bind_within_solve' cycles across the whole solve horizon; 'bind_forward_only' (default) chains state forward across the solve with no end-to-start closure; 'bind_within_solve_blended_weights' is the representative-period variant of bind_within_solve (RP weighting + solve-level cycle closure); 'bind_within_period_blended_weights' is the RP variant of bind_within_period (per-period RP weighting, each period closes independently); 'bind_forward_only_blended_weights' is the RP variant of bind_forward_only (RP weighting, no cycle closure). One additional value, 'bind_intraperiod_blocks', is structurally an aggregation method rather than a cycle-scope method: state is held constant within each block and the block-total flow is balanced at the boundary. Silent-degrade behaviour: any '*_blended_weights' method on a node in a solve whose active timeset has no representative_period_weights is automatically downgraded to the corresponding non-RP variant for that solve, so the same storage entity can drive an RP investment solve and a chronological dispatch solve back-to-back. Separate parameters (e.g. 'storage_state_start') can force additional bindings. By default, storage start state is bound to 0. In a stochastic solve each forecast branch uses the representative periods of its period, and the blended_weights methods work per branch. In a rolling_window solve on representative periods the blended_weights methods are not applied: those nodes bind forward only (bind_forward_only), with a warning.
storage_nested_fix_method a constant fix_nothing fix_nothing, fix_quantity, fix_price, fix_usage storage Used in nested solve sequences. Set this storage as a long term storage, which end state is passed to the lower level solves as a target. Fix_price requires storage_state_reference_price
storage_solve_horizon_method a constant free free, use_reference_value, use_reference_price storage Choice how to treat storage state at the end of time horizon of each solve. 'free' lets the model choose the end state. 'use_reference_value' forces the end state to the specific value set in 'storage_state_reference_value'. 'use_reference_price' gives the storage state a price in the objective function based on the 'storage_state_reference_price'.
storage_start_end_method a constant fix_nothing fix_start, fix_end, fix_start_end, fix_nothing storage Whether the storage state is fixed at the start and/or end of the whole model. fix_nothing (default): not fixed. fix_start, fix_end and fix_start_end use storage_state_start and storage_state_end, which must then have a value.
storage_state_end dimensionless a constant storage 0-1, share of the storage capacity. Storage state at the end of the last solve, as a share of the storage capacity. Needed by fix_end and fix_start_end. Constant.
storage_state_reference_price CUR/MWh a constant, or a map over periods (1 level) storage Price for the stored energy at the end of the solve horizon. Requires 'use_reference_price' in 'storage_solve_horizon_method'. Constant or period.
storage_state_reference_value dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) storage 0-1, share of the storage capacity. Relative state of storage at then end of each solve (can be overwritten in the next solve). Requires 'use_reference_value' in 'storage_solve_horizon_method'. Constant, period, time or period+time.
storage_state_start dimensionless a constant storage 0-1, share of the storage capacity. Storage state at the start of the first solve, as a share of the storage capacity. Needed by fix_start and fix_start_end. Constant.
unit_of_measure a constant MWh basics Unit of measure of this node's amounts, e.g. m3, t, MWh_th (default MWh). A label only: FlexTool converts nothing. Flows into and out of the node, and the capacity of a unit whose output is this node (of a connection when both of its nodes have this unit), are rates in this unit per hour (MWh → MW, m3 → m3/h); storage state, storage capacity and inflow per time step are amounts (m3); annual results are per year (m3/a); prices and penalty_up/down are CUR per this unit. The per-kW costs (invest_cost, fixed_cost, salvage_value) of a unit whose capacity is in this unit, and the per-kWh costs of this node's storage, are per 0.001 of the rate or amount: 500 CUR per m3/h of capacity is entered as 0.5, and 20 CUR per m3 of storage as 0.02. An efficiency into or out of this node is output units per input unit (e.g. m3/MWh).
virtual_unitsize MWh a constant basics Size of one unit. With it, existing is the number of units. Investments and retirements are continuous; their limits are in MWh. No value: the existing capacity, or 1000 MWh without it.

profile

A time series of shares of capacity (for example wind or solar capacity factors), used as an upper limit, a lower limit or a fixed value for a flow or a storage state.

parameter unit allowed shapes default allowed values group definition
profile dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) basics e.g. 0.3 means 30% of capacity. Profile values, e.g. the availability of wind power (capacity factor). Constant, period, time, period+time or stochastic time.

solve

One optimisation run inside the model: its periods and time steps, whether it decides investments or dispatch, rolling or stochastic settings, and solver options.

parameter unit allowed shapes default allowed values group definition
benders_in_out_weight dimensionless a constant 0 solve_advanced Benders decomposition: in-out separation stabilization weight (lambda) in f_sep = lambdacentre + (1-lambda)f_out. 0.0 (default) = off (exact Benders); values in (0,1) turn it on, larger = more stabilization. Only used when decomposition = 'benders'. Default 0.0.
benders_max_iter count a constant 50 solve_advanced Benders decomposition: maximum number of outer (master/subproblem) iterations. Only used when decomposition = 'benders'. Default 50.
benders_tolerance dimensionless a constant 0.001 solve_advanced Benders decomposition: relative optimality-gap tolerance (best_UB - LB)/|best_UB| for convergence of the outer loop. Only used when decomposition = 'benders'. Default 0.001.
contains_solves a constant, or a list of values (array) solve_advanced Array of solves - used for nested solve sequencesArray of solves - used for nested solve sequences
decomposition a constant none none, benders solve_advanced Decomposition scheme for this solve. 'none' (default) solves monolithically. 'benders' runs the solve through the Benders region-decomposition driver (a master trade layer coordinating per-region recourse subproblems via appended optimality cuts, producing a valid lower bound) over the groups whose group.decomposition_method is 'benders_regional' (requires at least two such region groups). The choice is per solve, so an investment solve can decompose while a later dispatch solve in the same chain stays monolithic.
dispatch_realization_method a constant within_solve within_solve, separate_dispatch solve_advanced How the committed part of a stochastic solve is realized. within_solve (default): a realized: yes branch gets a realization solve automatically. separate_dispatch: always runs a separate realized dispatch solve; needs a realized: yes branch (error otherwise).
fix_storage_periods a list of values (array), or a map with 2 index levels solve_advanced Array of periods where the storage_values are fixed when the node has storage_include_solve_fix_method is set
invest_periods a list of values (array), or a map with 2 index levels solve_basics Array of periods in which investments can be decided. With a construction lead time, the capacity comes online later.
new_stepduration hours a constant timeline Creates a new timeline from the old for this solve with this timestep duration. The new timeline sums inflow over the time steps that form each new time step (a constant inflow counts once per time step it combines) and averages the other time series (e.g. profile) over them, weighted by their durations. The new_stepduration must be a whole multiple of the timeline's time steps (on a timeline with time steps of different lengths, every new time step must end where a time step of the timeline ends); FlexTool stops with an error otherwise.
period_timeset a map: period name → timeset name (1 level) solve_basics Map of periods with associated timesets that will be included in the solve. Index: period name, value: timeset name.
realized_invest_periods a list of values (array), or a map with 2 index levels solve_advanced Array of the periods that will realize the investment decisions. If not used when the invest_periods exist. The realized_periods are used to realize invests as well
realized_periods a list of values (array), or a map with 2 index levels solve_basics Array of periods that will be realized in the solve.
reduce_system_detail_method a constant none none, reserves, inertia, non_synchronous, inertia_non_synchronous, reserves_inertia_non_synchronous, dc_power_flow, reserves_inertia_non_synchronous_dc_power_flow solve_advanced System detail that this solve leaves out, to make it faster. none (default): all detail. reserves: no reserve requirements. inertia: no inertia limits. non_synchronous: no non-synchronous share limits. dc_power_flow: the lines of dc_power_flow_with_angles groups are lossless transport limited by their capacity (no angles). A combination leaves out each named part. The capacity margin is always kept.
reduce_unit_detail_method a constant none none, integers, integers_ramps, integers_min_limits, integers_ramps_min_limits, online, online_ramps solve_advanced Detail of units and connections that this solve leaves out, to make it faster (typically an investment solve). none (default): all detail. integers: binary startup_method is solved as continuous and exact connections behave as regular. integers_ramps: integers, and no ramp limits or ramp costs. integers_min_limits: integers, and no min_load, capacity_min_coeff floors or minimum up / down times. integers_ramps_min_limits: integers, no ramps and no min limits. Under the integers levels, a unit or connection whose online variables nothing in the solve still uses (no start-up cost, min_load, capacity_min_coeff floor, minimum up / down time, min_load_efficiency curve, constraint_online_coeff in a user constraint, reserve, inertia or ramp limit left) has none, as with startup_method no_startup; the run log names them. online: everything of integers_min_limits, and no online variables: no start-up costs, user constraints that count units online are left out whole, min_load_efficiency units use their full-load efficiency (less fuel than the curve at part load), and ramp limits apply to the capacity. Reserves are then limited by built capacity, not online capacity, and inertia is counted from flows. online_ramps: online, and no ramp limits or ramp costs. Never adds detail.
rolling_duration hours a constant solve_advanced Optional. Duration of rolling, if not stated, assumed to be the whole timeline of the solve
rolling_solve_horizon hours a constant solve_advanced Required if rolling_window solve. How long into the future the roll sees
rolling_solve_jump hours a constant solve_advanced Required if rolling_window solve. Interval between the start points of the rolls. Should be smaller than the horizon
scaling a constant full off, solver_only, basic, full solve_advanced Numerical scaling of this solve's LP. full (default): FlexTool rescales variables, constraints and costs and sets the solver's scaling. basic: no per-quantity rescaling. solver_only: only the solver's own scaling. off: no scaling at all. Try basic or solver_only if a solve fails numerically. The --scaling run option overrides it.
shared_invest_periods a list of values (array) solve_advanced Periods where investments are the same in every stochastic branch (with recourse). No value or empty array: none.
shared_operation_periods a list of values (array) solve_advanced Periods where operations are the same in every stochastic branch. No value: the committed time steps. Empty array: none.
solve_mode a constant single_solve single_solve, rolling_window solve_basics A single_solve or rolling_window for a set of rolling optimisation windows solved in a sequence.
solver a constant highs highs, gurobi, cplex, xpress, copt solve_advanced Solver to use for this solve. One of polar-high's available_solvers ('highs', 'gurobi', 'cplex', 'xpress', 'copt'). HiGHS is the bundled default; commercial solvers require a separate install and license.
solver_arguments a map: option name → value (1 level) solve_advanced Map of HiGHS solver options (option name -> value), layered on top of the floor values in solver_config/highs.opt and below any CLI overrides (e.g. --solver-time-limit). Use this for ad-hoc HiGHS knobs that do not have a dedicated FlexTool parameter (solver_mip_gap).
solver_mip_gap dimensionless a constant solve_advanced Relative MIP optimality gap at which the solver may stop early. Normalised across solvers by polar-high. None = solver default.
solver_precommand a constant solve_advanced Not used: FlexTool never runs this command. Kept only so that older databases still read.
stochastic_branches dimensionless a map: period, branch, analysis_time, realized → probability weight (4 levels) solve_advanced Forecast branches of the solve (map: period, branch, analysis_time, realized → probability weight). Weights are normalised per start time. At most one branch per start time may be realized: yes. That branch is not a weighted forecast; it adds a realization solve over the committed time steps. Without it, the solve reports investments only.
stochastic_invest_method a constant none none, recourse solve_advanced How stochastic branches invest. none (default): one shared investment plan for all branches. recourse: each branch also invests at and after its branching period.
timeline_hole_multiplier dimensionless a constant 1 solve_advanced Multiplier applied to the inverse-step-duration term in nodeBalance_eq and storage-binding constraints across timeline gaps (holes). Tunes how strongly state differences are penalised across discontinuities in the timeline. Default 1.0 mirrors the .mod default and matches pre-v44 Python-convention behaviour.
years_represented years a map over periods (1 level) solve_basics Map to indicate how many years the period represents before the next period in the solve. Used for discounting. Can be below one (multiple periods in one year). Index: period, value: years.

timeline

The time steps of the input data and the duration of each.

parameter unit allowed shapes default allowed values group definition
timestep_duration hours a map: time step name → time step duration in hours (1 level) timeline Map of time steps in the timeline. Index: time step name, value: time step duration in hours.

timeset

A selection of time steps of a timeline that a solve uses (all of them, or for example representative weeks).

parameter unit allowed shapes default allowed values group definition
representative_period_weights dimensionless a map: base period start timestep, representative period start timestep → weight (2 levels) solve_advanced Representative-period weighting map (rank-2 nested Map: base period start timestep -> representative period start timestep -> weight). Created by the representative-periods preprocess tool; declares how much each representative period stands in for each base period. Its presence enables RP-aware storage-binding ('*_blended_weights'); its absence silently downgrades those methods to the non-RP behaviour. Mutually exclusive with 'timeset_weights' on the same timeset. The forecast branches of a stochastic solve use the representative periods of their period.
timeline a constant timeline The name of the timeline that the timeset uses. (String)
timeset_duration count of time steps a map: name of the timestep that starts the timeset → duration of the block in timesteps (1 level) timeline Index: name of the timestep that starts the timeset, value: duration of the block in timesteps. Defines the selection: which timesteps are in the solve and how many (this sets 'hours_in_solve'). Representativeness - each timestep's share of the year - is set separately by 'timeset_weights'.
timeset_weights dimensionless a map over time (1 level) timeline Weight of each time step (map, index time). Weights how much each step counts in costs, energy and demand scaling. Normalised per period. Forecast branches use the weights of their period. Other shapes are an error. Cannot be set on a timeset that also has representative_period_weights (error).

unit

A plant or device that turns inputs into outputs: a power plant, a wind or solar farm, an electrolyser, a heat pump, a battery inverter.

parameter unit allowed shapes default allowed values group definition
availability dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) 1 basics e.g. 0.9 means 90%. Fraction of capacity available for flows from/to the unit. For online units, the online variable is multiplied by the availability. Constant, period, time, period+time or stochastic time.
constraint_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the unit's capacity in service in each period on the left side of the user constraint (existing plus investments still in service minus retirements). Coefficient per MW. Capacity in construction is not included.
constraint_cumulative_pre_built_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity in service at the start of each period on the left side of the user constraint. This is existing capacity plus capacity that came online in earlier periods, minus earlier retirements. Capacity coming online in the period itself is in the invested term. Coefficient per MW.
constraint_in_construction_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity in construction in each period on the left side of the user constraint. Capacity is in construction from the period of the investment decision until it comes online. It is zero without a construction lead time. Coefficient per MW.
constraint_invested_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity that comes online in each period on the left side of the user constraint. Without a construction lead time, this is the capacity invested in that period. Coefficient per MW.
constraint_online_coeff unit of the constraint per unit online a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the number of units online in each time step on the left side of the user constraint. One unit is virtual_unitsize; without it, the largest existing capacity, else 1000 MW (set virtual_unitsize when the capacity is invested). Needs online variables (startup_method linear or binary, or a minimum_time_method); a coefficient without them is an error. With linear startup the number is continuous. For MW online, use the unit size (MW per unit) as the coefficient.
constraint_retired_capacity_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient). Puts the capacity retired in each period on the left side of the user constraint. Coefficient per MW.
construction_lead_time years a constant, or a map over periods (1 level) investment Time from the investment decision until the capacity starts to operate. The start is rounded to the start of a period (see construction_lead_time_method). Investments whose rounded start is after the end of the solve or the model horizon are not offered, with a warning. Constant or period. Default 0.
construction_lead_time_method a constant immediate, closest_seam, previous_seam, next_seam investment How the start of operation (decision year plus construction_lead_time) is rounded to the start of a period. immediate: no lead time, the capacity operates from the decision period. closest_seam: the nearest period start; a tie goes to the later one. previous_seam: the period start before. next_seam: the period start after. Without a value: immediate when there is no lead time, else closest_seam.
conversion_method a constant constant_efficiency constant_efficiency, min_load_efficiency, none basics Choice of conversion method.
cumulative_max_capacity MW a constant, or a map over periods (1 level) investment Maximum cumulative capacity (considers existing, invested and retired capacity). Constant or period.
cumulative_min_capacity MW a constant, or a map over periods (1 level) investment Minimum cumulative capacity (considers existing, invested and retired capacity). Constant or period.
delay hours a constant, or a map with 1 index level tech_advanced A time delay between the input nodes and the output nodes. Either a constant indicating the time difference in hours or a map of time differences (index: time difference in hours, value: weight). Each weight indicates its share of the original flow and the weights should sum to 1. Requires that the time resolutions in the model are always integer multiples of these time differences.
discount_rate dimensionless a constant, or a map over periods (1 level) 0.05 investment e.g. 0.05 means 5% per year. Discount rate for investments (WACC). Reflects the financing cost and risk premium for this technology. When the model inflation_rate > 0, this should be a nominal rate. When inflation_rate = 0, this should be a real rate. Used to annualize investment costs over the lifetime: annuity = invest_cost x r / (1 - (1 + r)^-lifetime). 0 gives the straight-line annuity invest_cost / lifetime. No value means 0.05. Must be 0 or above. Constant or period.
efficiency dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) 1 basics Efficiency of the unit at full load: outputs / inputs, each flow weighted by its conversion_flow_coeff (default 1, giving plain sum of outputs / sum of inputs). May be above 1: a heat pump with COP 3 has 3; a unit whose output is measured in another unit of measure (e.g. m³ of water per MWh of electricity) uses that ratio. A min_load_efficiency unit can have different efficiency below full load (see efficiency_at_min_load). No effect on a unit without inputs or without outputs. Constant, period, time, period+time or stochastic time.
efficiency_at_min_load dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels) basics Output / input at minimum load, like efficiency (e.g. 0.4; may be above 1). Efficiency of a min_load_efficiency unit at its minimum load. Fuel use is a straight line from minimum load (this efficiency) to full load (efficiency). Has no effect when min_load is 0: the efficiency at zero output is not defined. No value: efficiency applies at minimum load too. Constant, period, time or period+time.
existing MW or count a constant, or a map over periods (1 level) basics Existing capacity or number of units. If virtual_unitsize is given, then existing is the number of units (capacity = existing × virtual_unitsize). Otherwise existing is the existing capacity of a single unit (typically in MW). Constant or period.
fixed_cost CUR/kW/a a constant, or a map over periods (1 level) investment Annual fixed cost. New capacity pays it only while it operates. Constant or period.
invest_cost CUR/kW a constant, or a map over periods (1 level) investment Overnight investment cost of new capacity. It is paid as an annuity over the years the capacity operates. Construction time costs with their interest must be included here. Constant or period: the value of the period when the capacity is built (comes online) is used.
invest_max_period MW a constant, or a map over periods (1 level) investment Largest allowed capacity coming online in each period. Existing capacity and retirements do not change it. With a construction lead time, the investment is decided earlier. Constant or period.
invest_max_total MW a constant investment Largest allowed total investment over all solves. Every investment decision counts, also reinvestments and investments that are no longer in service. Retirements and existing capacity do not reduce it. To limit the capacity in service, use cumulative_max_capacity. Constant.
invest_method a constant not_allowed not_allowed, invest_no_limit, invest_period, invest_total, invest_period_total, retire_no_limit, retire_period, retire_total, retire_period_total, invest_retire_no_limit, invest_retire_period, invest_retire_total, invest_retire_period_total, cumulative_limits investment Choice of investment method: not_allowed, invest and retire indicate availability of investment and retirement. no_limit removes all limits even if there are limiting values set. period uses values set in invest/retire_max/min_period. total uses values set in invest/retire_max/min_total.
invest_min_period MW a constant, or a map over periods (1 level) investment Smallest required capacity coming online in each period. Existing capacity and retirements do not change it. With a construction lead time, the investment is decided earlier. Constant or period.
invest_min_total MW a constant investment Smallest required total investment over all solves. Every investment decision counts, also reinvestments and investments that are no longer in service. Retirements and existing capacity do not reduce it. To limit the capacity in service, use cumulative_max_capacity. Constant.
lifetime years a constant, or a map over periods (1 level) investment Operating lifetime. It starts when the capacity starts to operate: with a construction lead time, after the construction. Used with the interest rate to calculate the annuity. What happens at the end of the lifetime depends on lifetime_method: reinvest_automatic keeps the capacity to the end of the model horizon, reinvest_choice retires it, no_investment retires it once. Required when the unit invests or retires with a cost (invest_cost, salvage_value), and when lifetime_method is reinvest_choice or no_investment (also for existing capacity without investment). Constant or period.
lifetime_method a constant reinvest_automatic reinvest_automatic, reinvest_choice, no_investment investment Choice how the investments behave after unit runs out of lifetime. Automatic reinvestment causes the model to keep the capacity until the end of model horizon and applies the annualized investment cost without further model choice. Choice of reinvestment removes the capacity at the end of the lifetime and the model needs to decide how much new capacity is to be built.
min_downtime hours a constant tech_advanced Minimum time the unit stays offline after a stop. Needs minimum_time_method. The look-back stops at a gap in the timeline and at the first step of a solve. Constant.
min_load dimensionless a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) basics 0-1, share of the online capacity. Minimum load of the unit as a share of its online capacity. Applies only if the unit has online variables. No value means 0. Constant, period, time, period+time or stochastic time.
min_uptime hours a constant tech_advanced Minimum time the unit stays online after a start. Needs minimum_time_method. The look-back stops at a gap in the timeline and at the first step of a solve. Constant.
minimum_time_method a constant min_uptime, min_downtime, both, none tech_advanced Choice between minimum up- and downtimes (none, min_downtime, min_uptime, both). Setting this to anything other than 'none' will activate online variables (at least linear) for the unit. Default: none (no minimum time constraints).
retire_max_period MW a constant, or a map over periods (1 level) retirement Largest allowed retirement in each period. Counts only what is retired in that period; existing capacity and investments do not change it. Constant or period.
retire_max_total MW a constant retirement Largest allowed total retirement over all solves. Investments and existing capacity do not change it. Constant.
retire_min_period MW a constant, or a map over periods (1 level) retirement Smallest required retirement in each period. Counts only what is retired in that period; existing capacity and investments do not change it. Constant or period.
retire_min_total MW a constant retirement Smallest required total retirement over all solves. Investments and existing capacity do not change it. Constant.
salvage_value CUR/kW a constant, or a map over periods (1 level) retirement Salvage value of the unit. Constant or period.
startup_cost CUR/MW a constant, or a map over periods (1 level) tech_advanced Cost of starting up one MW of capacity. Constant or period.
startup_method a constant no_startup no_startup, linear, binary tech_advanced Whether the unit has online variables. linear: any share of the capacity can be online. binary: whole units only (slower to solve). Online status links to the previous time step; that link stops at a gap in the timeline.
virtual_unitsize MW a constant basics Size of one unit. With it, existing is the number of units. Binary startups commit whole units of this size. Investments and retirements are continuous; their limits are in MW. No value: the existing capacity, or 1000 MW without it.

connection__node

The flow between a connection and one of its nodes (for user constraints).

parameter unit allowed shapes default allowed values group definition
constraint_flow_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the flow from the connection to a node in user-defined constraints. [flow x coefficient] will be on the left side of the equation.

connection__profile

Applies a profile as a limit on the flow of a connection.

parameter unit allowed shapes default allowed values group definition
profile_method a constant none upper_limit, lower_limit, fixed, none basics Choice of profile method (upper_limit, lower_limit, fixed). Negative values also possible.

node__profile

Applies a profile as a limit on the storage state of a node.

parameter unit allowed shapes default allowed values group definition
profile_method a constant none upper_limit, lower_limit, fixed, none basics Choice of profile method (upper_limit, lower_limit, fixed). Negative values also possible.

unit__inputNode

An input of a unit: the node it takes energy or fuel from, and the properties of that flow (costs, coefficients, ramping).

parameter unit allowed shapes default allowed values group definition
constraint_flow_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the flow between unit and node in user-defined constraints. [flow x coefficient] will be on the left side of the equation.
conversion_flow_coeff dimensionless a constant 1 basics default 1. Fuel-equivalent energy per unit of this flow. It enters the unit's conversion equation, not the node balance. Applies to simple units too. 0 takes the flow out of the capacity, ramp and minimum load limits.
inertia_constant MWs/MW a constant network Inertia constant for a synchronously connected unit to this node. Constant.
input_share_max dimensionless a constant 1 basics default 1. Largest share of the unit's full-load input energy (flow x conversion_flow_coeff) that this input may supply, relative to the unit's capacity (existing + invested - retired) times availability. 1 = this input alone can run the unit at full output (no effective limit); e.g. two inputs with 0.6 each can each supply at most 60% of the full-load input, so full output needs both. A lower-energy input is handled by its conversion_flow_coeff, not here. For a unit without outputs: fraction of the unit's capacity available to this input. Not applied to inputs with conversion_flow_coeff = 0.
input_share_min dimensionless a constant 0 basics default 0. While the unit is running, the smallest share of the unit's current input energy (flow x conversion_flow_coeff) that this input must supply. 0 = no minimum. The shares of a unit's inputs may not sum above 1, and a share may not exceed the input's input_share_max. Setting it on every input with shares summing to 1 fixes the blend. Not applied to inputs with conversion_flow_coeff = 0.
is_non_synchronous a constant no yes, no network Chooses whether the unit is synchronously connected to this node.
other_operational_cost CUR/MWh a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) basics Other operational variable cost for energy flows. Constant, period, time, period+time or stochastic time.
ramp_cost CUR/MW a constant tech_advanced Cost per MW of change in the step-average flow, up or down, between a time step and the step before it. Charged per change, independent of step length. Needs ramp_method ramp_cost or both. Constant. On a constant_efficiency unit with one input and one output, an input-side ramp cost prices the change of the unit's output flow.
ramp_method a constant none ramp_limit, ramp_cost, both, none tech_advanced Choice of ramp method. ramp_limit limits the ramp speed. ramp_cost charges every change in the flow between consecutive time steps. both adds the limit as well.
ramp_speed_down share of capacity per minute a constant tech_advanced Largest decrease of the flow between two time steps. No limit across a gap in the timeline. Constant.
ramp_speed_up share of capacity per minute a constant tech_advanced Largest increase of the flow between two time steps. No limit across a gap in the timeline. Constant.
startup_energy MWh per MW started a constant, or a map over periods (1 level) tech_advanced Energy taken from this input node per MW of capacity started up (start-ups x unit size). Used with startup_input_method startup_and_input or startup_only. Constant or period.
startup_input_method a constant just_input just_input, startup_and_input, startup_only tech_advanced What the input arc supplies. just_input (default): the normal input flow. startup_and_input: the normal input flow, and each start-up of the unit also takes startup_energy x MW started from this node. startup_only: only the start-up energy; the arc has no flow and takes no part in the conversion, the capacity, input shares or ramps. The start-up input can be fuel (oil to start a coal unit), heat (from the tank of a CSP plant) or electricity. Needs online variables (startup_method linear or binary, or a minimum_time_method). The start-up input is priced as the node's commodity, counts in CO2 prices and caps and is dropped with the start-ups by reduce_unit_detail_method online. It is not part of constraint_flow_coeff, flow groups or the capacity margin.

unit__outputNode

An output of a unit: the node it delivers to, and the properties of that flow (costs, coefficients, ramping).

parameter unit allowed shapes default allowed values group definition
capacity_max_coeff dimensionless a constant 1 basics default 1. Fraction of the unit's capacity (existing + invested - retired) available to this edge's upper cap (maxToSink / maxFromSource / ramp). 0 is a zero cap; to remove the edge from the capacity constraints altogether use conversion_flow_coeff = 0. For extraction CHP set to 1.0 on each output so each can reach full capacity when the other drops.
capacity_min_coeff dimensionless a constant 0 basics default 0. Optional extra floor on this output of a unit with several outputs: while the unit is online, this output must be at least capacity_min_coeff x min_load x the online capacity. The unit's minimum load (min_load) applies once, to the sum of its outputs, and is not scaled by this coefficient. 0 = no separate floor on this output. Range 0..1.
constraint_flow_coeff unit of the constraint per MW a map: constraint name → coefficient (1 level) constraint A map of coefficients (Index: constraint name, value: coefficient) to represent the participation of the flow between unit and node in user-defined constraints. [flow x coefficient] will be on the left side of the equation.
conversion_flow_coeff dimensionless a constant 1 basics default 1. Fuel-equivalent energy per unit of this flow. It enters the unit's conversion equation, not the node balance. Applies to simple units too. 0 takes the flow out of the capacity, ramp and minimum load limits.
inertia_constant MWs/MW a constant network Inertia constant for a synchronously connected unit to this node. Constant.
is_non_synchronous a constant no yes, no network Chooses whether the unit is synchronously connected to this node.
other_operational_cost CUR/MWh a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) basics Other operational variable cost for energy flows. Constant, period, time, period+time or stochastic time.
ramp_cost CUR/MW a constant tech_advanced Cost per MW of change in the step-average flow, up or down, between a time step and the step before it. Charged per change, independent of step length. Needs ramp_method ramp_cost or both. Constant. On a constant_efficiency unit with one input and one output, an input-side ramp cost prices the change of the unit's output flow.
ramp_method a constant none ramp_limit, ramp_cost, both, none tech_advanced Choice of ramp method. ramp_limit limits the ramp speed. ramp_cost charges every change in the flow between consecutive time steps. both adds the limit as well.
ramp_speed_down share of capacity per minute a constant tech_advanced Largest decrease of the flow between two time steps. No limit across a gap in the timeline. Constant.
ramp_speed_up share of capacity per minute a constant tech_advanced Largest increase of the flow between two time steps. No limit across a gap in the timeline. Constant.

reserve__upDown__group

The reserve requirement of a group of nodes, for one reserve and direction.

parameter unit allowed shapes default allowed values group definition
increase_reserve_ratio dimensionless a constant reserve Only for dynamic reserve methods. The requirement grows by this ratio times the demand of the group's nodes in each step (MW, real demand). Constant.
penalty_reserve CUR/MW per hour a constant 5000 reserve Penalty for each MW of reserve shortfall (the reserve requirement of the group is soft). Constant. Default 5000 - applied to every reserve group that has no value of its own.
reservation MW a constant, or a map over periods or over time (1 level), or a map over periods and time (2 levels), or a stochastic-time map (branch, analysis_time, time; 3 levels) reserve Amount of reserve to be reserved. Constant, period, time, period+time or stochastic time.
reserve_duration hours a constant reserve Time span over which committed reserve power must be sustainable from storage. Energy obligation = reservation_MW × reserve_duration, corrected by the reserve provider's efficiency. Only affects reserve provided by units/connections that draw on (up) or charge (down) a storage node. Absent or 0 means no storage-energy coupling. Constant.
reserve_method a constant no_reserve no_reserve, timeseries_only, dynamic_only, large_failure_only, timeseries_and_dynamic, timeseries_and_large_failure, dynamic_and_large_failure, all reserve Choice of reserve method: no_reserve, timeseries_only, dynamic_only, large_failure_only or their combinations. Dynamic and large_failure requirements need no separate reservation.

unit__node__profile

Applies a profile as a limit on the flow of a unit to or from a node.

parameter unit allowed shapes default allowed values group definition
profile_method a constant upper_limit upper_limit, lower_limit, fixed, none basics Choice of profile method (upper_limit, lower_limit, fixed). Negative values also possible.

reserve__upDown__connection__node

Lets a connection provide a reserve, in one direction, to a node.

parameter unit allowed shapes default allowed values group definition
increase_reserve_ratio dimensionless a constant reserve The reserve requirement grows by this ratio times the flow between the connection and the node, in either direction, for upward and downward reserve alike. Constant.
is_enabled a constant yes yes, no reserve Whether the entity is enabled. Set to 'no' to disable without deleting the entity. Constant.
large_failure_ratio dimensionless a constant reserve With a large_failure method, the reserve must cover the loss of this connection's flow times this ratio. Its own reserve does not count. Constant.
max_share dimensionless a constant reserve Largest share of the connection's built capacity that can be held as this reserve at this node. Constant.
reliability dimensionless a constant 1 reserve The share of the reservation that is counted to reserves (sometimes reserve sources are not fully trusted). Constant.

reserve__upDown__unit__node

Lets a unit provide a reserve, in one direction, to a node.

parameter unit allowed shapes default allowed values group definition
increase_reserve_ratio dimensionless a constant reserve The reserve requirement grows by this ratio times the flow between the unit and the node, for upward and downward reserve alike. At an input node, the flow is what the unit draws. Constant.
is_enabled a constant yes yes, no reserve Whether the entity is enabled. Set to 'no' to disable without deleting the entity. Constant.
large_failure_ratio dimensionless a constant reserve With a large_failure method, the reserve must cover the loss of this unit's flow times this ratio. Its own reserve does not count. Constant.
max_share dimensionless a constant reserve Largest share of the unit's built capacity at this node that can be held as this reserve. At an input node, the capacity is the unit's full-load input there. Without a value the unit offers no reserve. Constant.
reliability dimensionless a constant 1 reserve The share of the reservation that is counted to reserves (sometimes reserve sources are not fully trusted). Constant.