model.operatingcost

Operating Cost module calculations.

def annual_breakout( new_funits_per_year, new_annual_iunits_reqd, lifetime_replacement, var_oper_cost_per_funit, fuel_cost_per_funit, fixed_oper_cost_per_iunit, report_end_year, has_var_costs, conversion_factor_vom, conversion_factor_fom):
class OperatingCost(model.data_handler.DataHandler):

Implementation for the Operating Cost module.

Arguments: ac: advanced_cost.py object, storing settings to control model operation. soln_net_annual_funits_adopted: funits adopted each year, per region soln_pds_tot_iunits_reqd: total implementation units soln_ref_tot_iunits_reqd: total implementation units conv_ref_annual_tot_iunits: total implementation units required, per year soln_pds_annual_world_first_cost: first cost, per year soln_ref_annual_world_first_cost: first cost, per year conv_ref_annual_world_first_cost: first cost, per year single_iunit_purchase_year: year to calculate single iunit first cost soln_pds_install_cost_per_iunit: cost per implementation unit conv_ref_install_cost_per_iunit: cost per implementation unit conversion_factor: conversion factor from iunits to a more natural monetary unit. In almost all cases a single conversion factor is used for both fixed and variable operating costs. Passing a single integer or float to conversion_factor will suffice. For those cases where a different factor is needed for fixed versus variable costs, passing a tuple of (, ) can be used. At the time of this writing in 4/2019 there is only one solution which does this (heatpumps).

OperatingCost( ac, soln_net_annual_funits_adopted, soln_pds_tot_iunits_reqd, soln_ref_tot_iunits_reqd, conv_ref_annual_tot_iunits, soln_pds_annual_world_first_cost, soln_ref_annual_world_first_cost, conv_ref_annual_world_first_cost, single_iunit_purchase_year, soln_pds_install_cost_per_iunit, conv_ref_install_cost_per_iunit, conversion_factor)
def soln_pds_annual_operating_cost(self):

Total operating cost per year. SolarPVUtil 'Operating Cost'!D19:D64

def soln_pds_cumulative_operating_cost(self):

Cumulative operating cost. SolarPVUtil 'Operating Cost'!E19:E64

def conv_ref_annual_operating_cost(self):

Total operating cost per year. SolarPVUtil 'Operating Cost'!K19:K64

def conv_ref_cumulative_operating_cost(self):

Cumulative operating cost. SolarPVUtil 'Operating Cost'!L19:L64

def marginal_annual_operating_cost(self):

Marginal operating cost, difference between soln_pds and conv_ref. SolarPVUtil 'Operating Cost'!D69:D114

def soln_pds_new_funits_per_year(self):

New functional units required each year. SolarPVUtil 'Operating Cost'!F19:F64

def soln_pds_net_annual_iunits_reqd(self):

Total implementation units required each year. SolarPVUtil 'Operating Cost'!I531:I576

def soln_pds_new_annual_iunits_reqd(self):

New implementation units required each year. SolarPVUtil 'Operating Cost'!K531:K576

def soln_pds_annual_breakout(self):

Operating costs broken out per year for Solution-PDS This table calculates the contribution of each new set of SOLUTION implementation units installed over the lifetime of the units, but only for new or replacement units installed during our analysis period. Fixed and Variable costs that are constant or changing over time are included. SolarPVUtil 'Operating Cost'!B262:AV386

def soln_pds_annual_breakout_core(self):

Returns soln_pds_annual_breakout for CORE_START_YEAR:CORE_END_YEAR

def conv_ref_new_annual_iunits_reqd(self):

New implementation units required each year. SolarPVUtil 'Operating Cost'!L531:L576

def conv_ref_annual_breakout(self):

Operating costs broken out per year for Conventional-REF This table calculates the contribution of each new set of CONVENTIONAL implementation units installed over the lifetime of the units, but only for new or replacement units installed during our analysis period. Fixed and Variable costs that are constant or changing over time are included. SolarPVUtil 'Operating Cost'!B399:AV523

def conv_ref_annual_breakout_core(self):

Returns conv_ref_annual_breakout for CORE_START_YEAR:CORE_END_YEAR

def soln_marginal_first_cost(self):

Marginal First Cost. SolarPVUtil 'Operating Cost'!B126:B250

def soln_marginal_operating_cost_savings(self):

Marginal First Cost. SolarPVUtil 'Operating Cost'!C126:C250

def soln_net_cash_flow(self):

Marginal First Cost. SolarPVUtil 'Operating Cost'!D126:D250

def soln_net_present_value(self):

Marginal First Cost. SolarPVUtil 'Operating Cost'!E126:E250

def soln_vs_conv_single_iunit_cashflow(self):

Estimate the cash flows for a single solution implementation unit while matching the output of that unit (in functional units) with the equivalent output of a conventional implementation unit. This takes into account:

  • changes in first cost due to learning
  • differences in functional unit output of the solution and conventional unit
  • differences in lifetime of the solution and implementation unit (scaling appropriately in each case). SolarPVUtil 'Operating Cost'!I126:I250
def soln_vs_conv_single_iunit_npv(self):

Net Present Value of single iunit cashflow. SolarPVUtil 'Operating Cost'!J126:J250

def soln_vs_conv_single_iunit_payback(self):

Whether the solution has paid off versus the conventional, for each year. SolarPVUtil 'Operating Cost'!K126:K250

def soln_vs_conv_single_iunit_payback_discounted(self):

Whether the solution NPV has paid off versus the conventional, for each year. SolarPVUtil 'Operating Cost'!L126:L250

def soln_only_single_iunit_cashflow(self):

SolarPVUtil 'Operating Cost'!M126:M250

def soln_only_single_iunit_npv(self):

Net Present Value of single iunit cashflow, looking only at costs of the Solution. SolarPVUtil 'Operating Cost'!N126:N250

def soln_only_single_iunit_payback(self):

Whether the solution has paid off, for each year. SolarPVUtil 'Operating Cost'!O126:O250

def soln_only_single_iunit_payback_discounted(self):

Whether the solution NPV has paid off, for each year. SolarPVUtil 'Operating Cost'!P126:P250