Thirdpartyownership

Third party ownership with PPA or lease agreement financial model from host perspective

PySAM.Thirdpartyownership.default(config) → Thirdpartyownership

Load defaults for the configuration config. Available configurations are:

  • “FlatPlatePVThirdParty”
  • “GenericBatteryThirdParty”
  • “GenericSystemThirdParty”
  • “PVBatteryThirdParty”
  • “PVWattsBatteryThirdParty”
  • “PVWattsThirdParty”
  • “StandaloneBatteryThirdParty”

Note

Some inputs do not have default values and may be assigned a value from the variable’s Required attribute. See variable attribute descriptions below.

PySAM.Thirdpartyownership.from_existing(data, optional config) → Thirdpartyownership

Share data with an existing PySAM class. If optional config is a valid configuration name, load the module’s defaults for that configuration.

PySAM.Thirdpartyownership.new() → Thirdpartyownership
PySAM.Thirdpartyownership.wrap(ssc_data_t) → Thirdpartyownership

Load data from a PySSC object.

Warning

Do not call PySSC.data_free on the ssc_data_t provided to wrap()

Thirdpartyownership is a wrapper for the SSC compute module cmod_thirdpartyownership.cpp

Interdependent Variables

The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See Interdependent Variables for examples and details.

  • None

Functions

class PySAM.Thirdpartyownership.Thirdpartyownership

This class contains all the variable information for running a simulation. Variables are grouped together in the subclasses as properties. If property assignments are the wrong type, an error is thrown.

assign(dict) → None

Assign attributes from nested dictionary, except for Outputs

nested_dict = { 'Depreciation': { var: val, ...}, ...}

execute(int verbosity) → None

Execute simulation with verbosity level 0 (default) or 1

export() → dict

Export attributes into nested dictionary

replace(dict) → None

Replace attributes from nested dictionary, except for Outputs. Unassigns all values in each Group then assigns from the input dict.

nested_dict = { 'Depreciation': { var: val, ...}, ...}

unassign(name) → None

Unassign a value in any of the variable groups.

value(name, optional value) → Union[None, float, dict, sequence, str]

Get or set by name a value in any of the variable groups.

Depreciation Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Depreciation
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

Depreciation_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

Depreciation_vals = { var: val, ...}

depr_fed_custom

Federal custom depreciation [%/year]

Required: Required if depr_fed_type=3

Type:sequence
depr_fed_sl_years

Federal depreciation straight-line Years [years]

Constraints: INTEGER,POSITIVE

Required: Required if depr_fed_type=2

Type:float
depr_fed_type

Federal depreciation type

Options: 0=none,1=macrs_half_year,2=sl,3=custom

Constraints: INTEGER,MIN=0,MAX=3

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:float
depr_sta_custom

State custom depreciation [%/year]

Required: Required if depr_sta_type=3

Type:sequence
depr_sta_sl_years

State depreciation straight-line years [years]

Constraints: INTEGER,POSITIVE

Required: Required if depr_sta_type=2

Type:float
depr_sta_type

State depreciation type

Options: 0=none,1=macrs_half_year,2=sl,3=custom

Constraints: INTEGER,MIN=0,MAX=3

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:float

Financials Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Financials
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

Financials_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

Financials_vals = { var: val, ...}

analysis_period

Analyis period [years]

Constraints: INTEGER,MIN=0,MAX=50

Required: False. Automatically set to 30 if not assigned explicitly or loaded from defaults.

Type:float
inflation_rate

Inflation rate [%]

Constraints: MIN=-99

Required: True

Type:float
real_discount_rate

Real discount rate [%]

Constraints: MIN=-99

Required: True

Type:float

FinancialThirdPartyOwnership Group

class PySAM.Thirdpartyownership.Thirdpartyownership.FinancialThirdPartyOwnership
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

FinancialThirdPartyOwnership_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

FinancialThirdPartyOwnership_vals = { var: val, ...}

lease_or_ppa

Lease or PPA agreement [0/1]

Options: 0=lease,1=ppa

Constraints: INTEGER,MIN=0,MAX=1

Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.

Type:float

Common Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Common
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

Common_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

Common_vals = { var: val, ...}

annual_energy_value

Energy value [$]

Required: True

Type:sequence
gen

Power generated by renewable resource [kW]

Required: True

Type:sequence

AnnualOutput Group

class PySAM.Thirdpartyownership.Thirdpartyownership.AnnualOutput
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

AnnualOutput_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

AnnualOutput_vals = { var: val, ...}

degradation

Annual degradation [%]

Required: True

Type:sequence
system_use_lifetime_output

Lifetime hourly system outputs [0/1]

Options: 0=hourly first year,1=hourly lifetime

Constraints: INTEGER,MIN=0

Required: True

Type:float

CashFlow Group

class PySAM.Thirdpartyownership.Thirdpartyownership.CashFlow
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

CashFlow_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

CashFlow_vals = { var: val, ...}

lease_escalation

Monthly lease escalation [%/year]

Required: Required if lease_or_ppa=0

Type:float
lease_price

Monthly lease price [$/month]

Required: Required if lease_or_ppa=0

Type:float
ppa_escalation

Monthly lease escalation [%/year]

Required: Required if lease_or_ppa=1

Type:float
ppa_price

Monthly lease price [$/month]

Required: Required if lease_or_ppa=1

Type:float

ElectricityCost Group

class PySAM.Thirdpartyownership.Thirdpartyownership.ElectricityCost
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

ElectricityCost_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

ElectricityCost_vals = { var: val, ...}

elec_cost_with_system

Energy value [$]

Required: True

Type:sequence
elec_cost_without_system

Energy value [$]

Required: True

Type:sequence

Outputs Group

class PySAM.Thirdpartyownership.Thirdpartyownership.Outputs
assign(dict) → None

Assign attributes from dictionary, overwriting but not removing values.

Outputs_vals = { var: val, ...}

export() → dict

Export attributes into dictionary.

replace(dict) → None

Replace attributes from dictionary, unassigning values not present in input dict.

Outputs_vals = { var: val, ...}

cf_after_tax_cash_flow

After-tax cash flow [$]

Type:sequence
cf_after_tax_net_equity_cost_flow

After-tax annual costs [$]

Type:sequence
cf_agreement_cost

Agreement cost [$]

Type:sequence
cf_cumulative_payback_with_expenses

Cumulative simple payback with expenses [$]

Type:sequence
cf_energy_net

Electricity net generation [kWh]

Type:sequence
cf_energy_purchases

Electricity from grid to system [kWh]

Type:sequence
cf_energy_sales

Electricity generation [kWh]

Type:sequence
cf_length

Agreement period

Type:float
cf_nte

Host indifference point by year [cents/kWh]

Type:sequence
cf_payback_with_expenses

Simple payback with expenses [$]

Type:sequence
lnte_nom

Host indifference point real levelized value [cents/kWh]

Type:float
lnte_real

Host indifference point nominal levelized value [cents/kWh]

Type:float
npv

NPV Net present value [$]

Type:float
year1_nte

Host indifference point in Year 1 [cents/kWh]

Type:float