Skip to main content
Scenario Builder models are defined by the following input types, all of which can be edited in the workspace, or via AMP.

Capacity

Framework: osemosys Unit: MW Temporality: year_onlyMaximum allowed increase in capacity for a given technology year on year. Expressed in absolute values. If used in conjunction with maximum relative growth rates, capacity will be limited to whichever value is greater. Provides a floor value for maximum growth rates for technologies with no / low installed capacity.
Framework: osemosys Framework: pypsa Unit: MW Temporality: year_onlyExisting and planned generator and interconnector capacity. Generator capacities are specified per geography. Interconnector capacities are specified between geographies.
Framework: osemosys Framework: pypsa Unit: MW Temporality: year_onlyMaximum additional capacity allowed per technology above the installed capacity for that technology for that year. This can be used to limit additional capacity being built e.g. if set to 0, then no additional capacity will be built.
Framework: osemosys Framework: pypsa Unit: MW Temporality: year_onlyMaximum total capacity allowed per technology. This can be used to limit total capacity per technology.
Framework: osemosys Framework: pypsa Unit: MW Temporality: year_onlyMinimum additional capacity required per technology above the installed capacity for that technology for that year. This can be used to set capacity targets that are in addition to the installed capacity.
Framework: osemosys Framework: pypsa Unit: MW Temporality: year_onlyMinimum total capacity required per technology. This can be used to set total capacity targets.
Framework: osemosys Unit: unitless Temporality: year_onlyMaximum allowed increase in capacity for a given technology year on year. Expressed as a decimal e.g. 0.2 for 20%. If used in conjunction with maximum absolute growth rates, capacity will be limited to whichever value is greater.
Framework: osemosys Unit: unitless Temporality: year_onlyMinimum increase in capacity required per technology year on year. Expressed as a decimal e.g. 0.2 for 20%.
Framework: osemosys Framework: pypsa Unit: MW Temporality: constantTotal maximum capacity allowed for renewable technologies per year.

Costs

Framework: osemosys Framework: pypsa Unit: $/MW Temporality: year_onlyFixed operating & maintenance costs per technology.
Framework: osemosys Framework: pypsa Unit: $/MWh Temporality: year_onlyCost per fuel.
Framework: osemosys Framework: pypsa Unit: $/MW Temporality: year_onlyOvernight investment cost per technology.
Framework: osemosys Framework: pypsa Unit: $/MWh Temporality: year_onlyVariable operating & maintenance costs per technology.

Demand

Framework: osemosys Framework: pypsa Unit: MWh Temporality: year_onlyTotal annual electricity demand per region.
Framework: osemosys Framework: pypsa Unit: unitless Temporality: fullElectricity demand per time-slice as a proportion of total annual demand. Expressed as a decimal e.g. 0.2 for 20%.

Economic

Framework: osemosys Framework: pypsa Unit: unitless Temporality: constantCost of capital is the “price of money” used to build a technology. It turns a one-time overnight capital cost into an annual cost so the model can compare technologies fairly. A higher cost of capital means a more expensive annualised cost.
Framework: osemosys Unit: unitless Temporality: constantDiscount rate is the “time value” of money. It tells the model how much less a dollar spent in the future is worth compared to a dollar spent today. Higher rates favor technologies with low upfront costs, while lower rates favor capital-intensive options.

Operational

Framework: osemosys Framework: pypsa Unit: t/MWh Temporality: year_onlyEmissions produced per unit of activity per technology.
Framework: osemosys Framework: pypsa Unit: unitless Temporality: year_onlyFuel use per technology. Expressed as a decimal e.g. if a technology consumes 2 units of a fuel to generate 1 unit of electricity, its input activity ratio would be 2.0.
Framework: osemosys Framework: pypsa Unit: years Temporality: year_onlyOperating life of each technology in years.
Framework: pypsa Unit: unitless Temporality: constantMaximum allowed decrease in a technology’s power output between two time steps, relative to its total capacity. Expressed as a decimal e.g. a value of 0.2 means a technology can decreases its output by 20% of its total capacity per time step.
Framework: pypsa Unit: unitless Temporality: constantMaximum allowed increase in a technology’s power output between two time steps, relative to its total capacity. Expressed as a decimal e.g. a value of 0.2 means a technology can increase its output by 20% of its total capacity per time step.

Unit commitment

Unit commitment applies to single-year dispatch (PyPSA) scenarios and turns the model into a MILP — see Unit commitment for the methodology. Each valid technology has a default Minimum stable generation, so setting Committable is enough for its minimum output to apply. Without at least one of Start-up cost, Shut-down cost or Minimum up/down time, units can switch on and off every hour at no cost. A committable technology cannot also be capacity-expandable.
Framework: pypsa Unit: boolean Temporality: constantMaster switch for unit commitment, off by default. When set to 1, the model tracks a binary on/off (commitment) status for the technology in each hour and applies the other unit-commitment parameters. Available for thermal, bioenergy, carbon capture and storage, and nuclear technologies — see valid technologies.
Framework: pypsa Unit: unitless Temporality: year_onlyThe minimum output a technology must produce when it is running, as a proportion of total capacity. Only applied when Committable is set. Expressed as a decimal e.g. 0.4 for 40%. Where hourly values are also provided in Minimum hourly utilisation, they take precedence for those hours.
Framework: pypsa Unit: USD/MW Temporality: constantCost incurred each time a committable unit starts up, entered per MW of the unit’s capacity. Only applied when the technology is committable.
Framework: pypsa Unit: USD/MW Temporality: constantCost incurred each time a committable unit shuts down, entered per MW of the unit’s capacity. Only applied when the technology is committable.
Framework: pypsa Unit: hours Temporality: constantMinimum number of hours a committable unit must stay online once it has started. Only applied when the technology is committable.
Framework: pypsa Unit: hours Temporality: constantMinimum number of hours a committable unit must stay offline once it has shut down. Only applied when the technology is committable.
Framework: pypsa Unit: hours Temporality: constantNumber of hours the unit had already been running immediately before the start of the modelled horizon (an initial condition). Only applied when the technology is committable. If not set, the unit is assumed to have been running for one hour. Set this to 0 if you set Down time before.
Framework: pypsa Unit: hours Temporality: constantNumber of hours the unit had already been offline immediately before the start of the modelled horizon (an initial condition). Only applied when the technology is committable. If you set this, also set Up time before to 0, otherwise the scenario can be infeasible.

Policy

Framework: osemosys Framework: pypsa Unit: t Temporality: year_onlyMaximum emissions allowed per year. Can be used to set emissions targets.
Framework: osemosys Unit: $/t Temporality: year_onlyThe cost / penalty of emissions.
Framework: osemosys Framework: pypsa Unit: unitless Temporality: year_onlyMaximum generation allowed per technology as a proportion of total generation. This can be used to set generation limits e.g. Only 20% of generation can come from solar.
Framework: osemosys Framework: pypsa Unit: unitless Temporality: year_onlyMinimum generation required per technology as a proportion of total generation. This can be used to set generation targets e.g. 20% of generation must come from solar.
Framework: osemosys Unit: unitless Temporality: year_onlyThe percentage of extra capacity required above the expected peak demand, ensuring reliability in case of unexpected outages or demand surges. Expressed as a decimal e.g. 1.2 for 20% reserve margin.
Framework: osemosys Unit: unitless Temporality: constantThe maximum proportion of a technology’s total capacity that can contribute to reserve margin e.g. 0.2 means 20% of a given technology’s total capacity can contribute to reserve margin.
Framework: osemosys Unit: t Temporality: constantMaximum emissions allowed over the entire model time horizon. Can be used to set emissions targets.

Storage

Framework: osemosys Framework: pypsa Unit: MWh Temporality: constantStarting storage capacity at the very beginning of the simulation (time step 0).
Framework: osemosys Unit: MWh/year Temporality: constantMaximum charging rate for storage technologies.
Framework: osemosys Unit: MWh/year Temporality: constantMaximum discharging rate for storage technologies.
Framework: pypsa Unit: %/h Temporality: year_onlyThe proportion of stored energy lost per hour for storage technologies. Given as a decimal i.e. 0.2 for 20% loss per hour.
Framework: pypsa Unit: MWh Temporality: typical_profileRequired state of charge per time slice for storage technologies.
Framework: osemosys Unit: binary (0 or 1) Temporality: constantIf enabled (i.e. set to 1, not 0), then the storage technology should charge the same amount it discharges over a day.
Framework: osemosys Unit: binary (0 or 1) Temporality: constantIf enabled (i.e. set to 1, not 0), then the storage technology should charge the same amount it discharges over a season.
Framework: osemosys Unit: binary (0 or 1) Temporality: constantIf enabled (i.e. set to 1, not 0), then the storage technology should charge the same amount it discharges over a year.
Framework: osemosys Framework: pypsa Unit: h Temporality: year_onlyMaximum number of hours the storage technology can discharge at full power before it is empty e.g. 4 for a 4-hour battery.

Utilisation

Framework: osemosys Framework: pypsa Unit: unitless Temporality: year_onlyMaximum annual output per technology as a proportion of total capacity. Expressed as a decimal e.g. 0.8 for 80%. Used to represent the possibility for planned outages.
Framework: osemosys Framework: pypsa Unit: unitless Temporality: year_onlyMinimum annual output required per technology as a proportion of total capacity. Expressed as a decimal e.g. 0.8 for 80%. Used to represent technical or economic constraints e.g. Power Purchase Agreements.
Framework: pypsa Unit: unitless Temporality: typical_profileMinimum hourly output required per technology as a proportion of total capacity. Expressed as a decimal e.g. 0.8 for 80%.For a committable technology, this applies only in hours where the unit is committed, and the higher of this and Minimum stable generation applies in each hour.
Framework: osemosys Framework: pypsa Unit: unitless Temporality: typical_profileMaximum capacity available to renewable technologies per time slice, as a proportion of total capacity, due to weather and seasonal patterns. Expressed as a decimal e.g. 0.2 for 20%.