Power Instruments

This secton contains all contracts w.r.t. power.

Power Purchase Agreement

class rivapy.instruments.PPASpecification(udl: str, amount: float | ndarray, schedule: SimpleSchedule | List[datetime], fixed_price: float, id: str = None)[source]

Specification for a simple power purchase agreement (PPA).

Parameters:
  • udl (str) – Name of underlying (power) that is delivered (just use for consistency checking within pricing against simulated model values).

  • amount (Union[None, float, np.ndarray]) – Amount of power delivered at each timepoint/period. Either a single value s.t. all volumes delivered are constant or a load table. If None, a non-constant amount (e.g. by production from renewables) is assumed.

  • schedule (Union[SimpleSchedule, List[dt.datetime]) – Schedule describing when power is delivered.

  • fixed_price (float) – The fixed price paif for the power.

  • id (str) – Simple id of the specification. If None, a uuid will be generated. Defaults to None.

compute_flows(refdate: datetime, pfc, result: DataFrame = None, result_col=None) DataFrame[source]
get_schedule() List[datetime][source]
n_deliveries()[source]
set_amount(amount)[source]

Green Power Purchase Agreement

class rivapy.instruments.GreenPPASpecification(schedule: SimpleSchedule | List[datetime], fixed_price: float, max_capacity: float, technology: str, udl: str, location: str = None, id: str = None)[source]

Specification for a green power purchase agreement.

In contrast to a normal PPA the quantities of this PPA are related to some kind of renewable energy such as wind or solar, i.e. the quantity is related to some uncertain production.

Parameters:
  • schedule (Union[SimpleSchedule, List[dt.datetime]]) – Delivery schedule.

  • fixed_price (float) – Fixed price paid for the power.

  • max_capacity (float) – The absolute maximal capacity of the renewable energy source. This is used to derive the production amount of the plant by multiplying forecasts with the factor max_capacity/total_capacity (where total capacity may be time dependent).

  • technology (str) – Identifier for the technology. This is used to retrieve the simulated values for production of this technology from a model

  • location (str, optional) – Identifier for the location. This is used to retrieve the simulated values for production of this technology at this location from a model that supports this feature. Defaults to None.

  • udl (str, optional) – Name of underlying (power) that is delivered (just use for consistency checking within pricing against simulated model values). It is used within pricing when the respective simulated price must be retrieved from a model’s simulation results.

  • id (str, optional) – Unique identifier of this contract. Defaults to None.

compute_flows(refdate: datetime, pfc, forecast_amount: ndarray, result: DataFrame = None, result_col=None) DataFrame[source]

Energy Futures

class rivapy.instruments.EnergyFutureSpecifications(schedule: SimpleSchedule, price: float, name: str)[source]

Specification for an energy future contract. The delivery period is defined by the schedule.

Parameters:
  • schedule (SimpleSchedule) – Delivery period

  • price (float) – Price

  • name (str) – Name

get_end() datetime[source]

Returns the delivery end. Note that this may not necessarily correspond to the last delivery.

Returns:

End date time of the delivery scheduler

Return type:

dt.datetime

get_price() float[source]

Returns the price

Returns:

Price

Return type:

float

get_schedule() ndarray[source]

Returns each delivery date time

Returns:

Numpy array containing each delivery date time

Return type:

np.ndarray

get_start() datetime[source]

Returns the delivery start. Note that this may not necessarily correspond to the first delivery.

Returns:

Start date time of the delivery scheduler

Return type:

dt.datetime

get_start_end() Tuple[datetime, datetime][source]

Returns the start and end as a tuple, where (start, end)

Returns:

Tuple containing start and end

Return type:

Tuple[dt.datetime, dt.datetime]