Skip to content

Economics

16 object types from idfpy.models.economics · EnergyPlus 26.2

Object Summary
ComponentCost:Adjustments Used to perform various modifications to the construction costs to arrive at an estimate for total project …
ComponentCost:LineItem Each instance of this object creates a cost line item and will contribute to the total for a cost estimate.
ComponentCost:Reference Used to allow comparing the current cost estimate to the results of a previous estimate for a reference …
CurrencyType If CurrencyType is not specified, it will default to USD and produce $ in the reports.
LifeCycleCost:NonrecurringCost A non-recurring cost happens only once during the study period.
LifeCycleCost:Parameters Provides inputs related to the overall life-cycle analysis.
LifeCycleCost:RecurringCosts Recurring costs are costs that repeat over time on a regular schedule during the study period.
LifeCycleCost:UseAdjustment Used by advanced users to adjust the energy or water use costs for future years.
LifeCycleCost:UsePriceEscalation Life cycle cost escalation factors.
UtilityCost:Charge:Block Used to compute energy and demand charges (or any other charges) that are structured in blocks of charges.
UtilityCost:Charge:Simple UtilityCost:Charge:Simple is one of the most often used objects for tariff calculation.
UtilityCost:Computation The object lists a series of computations that are used to perform the utility bill calculation.
UtilityCost:Qualify The qualify object allows only tariffs to be selected based on limits which may apply such as maximum or …
UtilityCost:Ratchet Allows the modeling of tariffs that include some type of seasonal ratcheting.
UtilityCost:Tariff Defines the name of a utility cost tariff, the type of tariff, and other details about the overall tariff.
UtilityCost:Variable Allows for the direct entry of monthly values into a utility tariff variable.

ComponentCost:Adjustments

from idfpy.models import ComponentCostAdjustments

Used to perform various modifications to the construction costs to arrive at an estimate for total project costs. This object allows extending the line item model so that the overall costs of the project will reflect various profit and fees.

Field Type Default Details
miscellaneous_cost_per_conditioned_area
Miscellaneous Cost per Conditioned Area
number
$/m2
based on conditioned floor area for cost not accounted for in current line item cost model
design_and_engineering_fees
Design and Engineering Fees
number
dimensionless
contractor_fee
Contractor Fee
number
dimensionless
contingency
Contingency
number
dimensionless
permits_bonding_and_insurance
Permits, Bonding and Insurance
number
dimensionless
commissioning_fee
Commissioning Fee
number
dimensionless
regional_adjustment_factor
Regional Adjustment Factor
number
dimensionless
for use with average data in line item and Misc cost models

ComponentCost:LineItem

from idfpy.models import ComponentCostLineItem

Each instance of this object creates a cost line item and will contribute to the total for a cost estimate.

Field Type Default Details
name
Name
string
type
Type
string
line_item_type
Line Item Type required
choice extend choice-keys as Cases are added to code
One of Chiller:Electric, Coil:Cooling:DX, Coil:Cooling:DX:SingleSpeed, Coil:DX, Coil:Heating:Fuel, Construction, Daylighting:Controls, General, Generator:Photovoltaic, Lights, Shading:Zone:Detailed
item_name
Item Name required
string wildcard "*" is acceptable for some components
object_end_use_key
Object End-Use Key
string not yet used
cost_per_each
Cost per Each
number
$
cost_per_area
Cost per Area
number
$/m2
cost_per_unit_of_output_capacity
Cost per Unit of Output Capacity
number
$/kW
cost_per_unit_of_output_capacity_per_cop
Cost per Unit of Output Capacity per COP
number
$/kW
The value is per change in COP.
cost_per_volume
Cost per Volume
number
$/m3
cost_per_volume_rate
Cost per Volume Rate
number
$/(m3/s)
cost_per_energy_per_temperature_difference
Cost per Energy per Temperature Difference
number
$/(W/K)
as in for use with UA sizing of Coils
quantity
Quantity
number
dimensionless
optional for use with Cost per Each and "General" object Type

ComponentCost:Reference

from idfpy.models import ComponentCostReference

Used to allow comparing the current cost estimate to the results of a previous estimate for a reference building. This object parallels the ComponentCost:Adjustments object but adds a field for entering the cost line item model result for the reference building. The factors entered in this object are applied to the reference building while the factors listed in the ComponentCost:Adjustments object are applied to the current building model cost estimate.

Field Type Default Details
reference_building_line_item_costs
Reference Building Line Item Costs
number
$
should be comparable to the components in current line item cost model
reference_building_miscellaneous_cost_per_conditioned_area
Reference Building Miscellaneous Cost per Conditioned Area
number
$/m2
based on conditioned floor area for cost not accounted for in reference line item costs
reference_building_design_and_engineering_fees
Reference Building Design and Engineering Fees
number
dimensionless
reference_building_contractor_fee
Reference Building Contractor Fee
number
dimensionless
reference_building_contingency
Reference Building Contingency
number
reference_building_permits_bonding_and_insurance
Reference Building Permits, Bonding and Insurance
number
dimensionless
reference_building_commissioning_fee
Reference Building Commissioning Fee
number
dimensionless
reference_building_regional_adjustment_factor
Reference Building Regional Adjustment Factor
number
dimensionless
for use with average data in line item and Misc cost models

CurrencyType

from idfpy.models import CurrencyType unique

If CurrencyType is not specified, it will default to USD and produce $ in the reports.

Field Type Default Details
monetary_unit
Monetary Unit required
choice The commonly used three letter currency code for the units of money for the country or region. Based on ISO 4217 currency codes. Common currency codes are USD for $ and EUR for Euros.
One of AFN, ALL, ANG, ARS, AUD, AWG, AZN, BAM, BBD, BGN, BMD, BND, BOB, BRL, BSD, BWP, BYR, BZD, CAD, CHF, CLP, CNY, COP, CRC, CUP, CZK, DKK, DOP, EEK, EGP, EUR, FJD, GBP, GHC, GIP, GTQ, GYD, HKD, HNL, HRK, HUF, IDR, ILS, IMP, INR, IRR, ISK, JEP, JMD, JPY, KGS, KHR, KPW, KRW, KYD, KZT, LAK, LBP, LKR, LRD, LTL, LVL, MKD, MNT, MUR, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, SAR, SBD, SCR, SEK, SGD, SHP, SOS, SRD, SVC, SYP, THB, TRL, TRY, TTD, TVD, TWD, UAH, USD, UYU, UZS, VEF, VND, XCD, YER, ZAR, ZWD

LifeCycleCost:NonrecurringCost

from idfpy.models import LifeCycleCostNonrecurringCost

A non-recurring cost happens only once during the study period. For costs that occur more than once during the study period on a regular schedule, use the LifeCycleCost:RecurringCost object.

Field Type Default Details
name
Name required
string
category
Category
choice Construction One of Construction, OtherCapital, Salvage
cost
Cost
number Enter the non-recurring cost value. For construction and other capital costs the value entered is typically a positive value. For salvage costs the value entered is typically a negative value which represents the money paid to the investor for the equipment at the end of the study period.
start_of_costs
Start of Costs
choice ServicePeriod Enter when the costs start. The First Year of Cost is based on the number of years past the Start of Costs. For most non-recurring costs the Start of Costs should be Base Period which begins at the base month and year.
One of BasePeriod, ServicePeriod
years_from_start
Years from Start
integer This field and the Months From Start field together represent the time from either the start of the Service Period on the service month and year or start of the Base Period on the base month and year (depending on the Start of Cost field) that the costs start to occur. Only integers should be entered representing whole years.
Range: ≥ 0, ≤ 100
months_from_start
Months from Start
integer This field and the Years From Start field together represent the time from either the start of the Service Period on the service month and year or start of the Base Period on the base month and year (depending on the Start of Cost field) that the costs start to occur. Only integers should be entered representing whole months. The Years From Start (times 12) and Months From Start are added together.
Range: ≥ 0, ≤ 1200

LifeCycleCost:Parameters

from idfpy.models import LifeCycleCostParameters unique

Provides inputs related to the overall life-cycle analysis. It establishes many of the assumptions used in computing the present value. It is important that when comparing the results of multiple simulations that the fields in the LifeCycleCost:Parameters objects are the same for all the simulations. When this object is present the tabular report file will contain the Life-Cycle Cost Report.

Field Type Default Details
name
Name required
string
discounting_convention
Discounting Convention
choice EndOfYear The field specifies if the discounting of future costs should be computed as occurring at the end of each year or the middle of each year or the beginning of each year. The most common discounting convention uses the end of each year.
One of BeginningOfYear, EndOfYear, MidYear
inflation_approach
Inflation Approach
choice ConstantDollar This field is used to determine if the analysis should use constant dollars or current dollars which is related to how inflation is treated. If ConstantDollar is selected then the Real Discount Rate input is used and it excludes the rate of inflation. If CurrentDollar is selected then the Nominal Discount Rate input is used and it includes the rate of inflation.
One of ConstantDollar, CurrentDollar
real_discount_rate
Real Discount Rate
number Enter the real discount rate as a decimal. For a 3% rate enter the value 0.03. This input is used when the Inflation Approach is ConstantDollar. The real discount rate reflects the interest rates needed to make current and future expenditures have comparable equivalent values when general inflation is ignored. When Inflation Approach is set to CurrentDollar this input is ignored.
nominal_discount_rate
Nominal Discount Rate
number Enter the nominal discount rate as a decimal. For a 5% rate enter the value 0.05. This input is used when the Inflation Approach is CurrentDollar. The real discount rate reflects the interest rates needed to make current and future expenditures have comparable equivalent values when general inflation is included. When Inflation Approach is set to ConstantDollar this input is ignored.
inflation
Inflation
number Enter the rate of inflation for general goods and services as a decimal. For a 2% rate enter the value 0.02.
base_date_month
Base Date Month
choice January Enter the month that is the beginning of study period also known as the beginning of the base period.
One of April, August, December, February, January, July, June, March, May, November, October, September
base_date_year
Base Date Year
integer Enter the four digit year that is the beginning of study period such as 2010. The study period is also known as the base period.
Range: ≥ 1900, ≤ 2100
service_date_month
Service Date Month
choice January Enter the month that is the beginning of building occupancy. Energy costs computed by EnergyPlus are assumed to occur during the year following the service date. The service date must be the same or later than the Base Date. This field could also be referred to as part of beneficial occupancy date.
One of April, August, December, February, January, July, June, March, May, November, October, September
service_date_year
Service Date Year
integer Enter the four digit year that is the beginning of occupancy such as 2010.
Range: ≥ 1900, ≤ 2100
length_of_study_period_in_years
Length of Study Period in Years
integer Enter the number of years of the study period. It is the number of years that the study continues based on the start at the base date. The default value is 25 years. Only integers may be used indicating whole years.
Range: ≥ 1, ≤ 100
tax_rate
Tax rate
number Enter the overall marginal tax rate for the project costs. This does not include energy or water taxes. The tax rate entered should be based on the marginal tax rate for the entity and not the average tax rate. Enter the tax rate results in present value calculations after taxes. Most analyses do not factor in the impact of taxes and assume that all options under consideration have roughly the same tax impact. Due to this many times the tax rate can be left to default to zero and the present value results before taxes are used to make decisions. The value should be entered as a decimal value. For 15% enter 0.15. For an analysis that does not include tax impacts enter 0.0.
Range: ≥ 0
depreciation_method
Depreciation Method
choice None For an analysis that includes income tax impacts this entry describes how capital costs are depreciated. Only one depreciation method may be used for an analysis and is applied to all capital expenditures.
One of ModifiedAcceleratedCostRecoverySystem-10year, ModifiedAcceleratedCostRecoverySystem-15year, ModifiedAcceleratedCostRecoverySystem-20year, ModifiedAcceleratedCostRecoverySystem-3year, ModifiedAcceleratedCostRecoverySystem-5year, ModifiedAcceleratedCostRecoverySystem-7year, None, StraightLine-27year, StraightLine-31year, StraightLine-39year, StraightLine-40year

LifeCycleCost:RecurringCosts

from idfpy.models import LifeCycleCostRecurringCosts

Recurring costs are costs that repeat over time on a regular schedule during the study period. If costs associated with equipment do repeat but not on a regular schedule, use LifeCycleCost:NonrecurringCost objects instead.

Field Type Default Details
name
Name required
string
category
Category
choice Maintenance One of Maintenance, MajorOverhaul, MinorOverhaul, Operation, OtherOperational, Repair, Replacement
cost
Cost
number Enter the cost in dollars (or the appropriate monetary unit) for the recurring costs. Enter the cost for each time it occurs. For example if the annual maintenance cost is 500 dollars enter 500 here.
start_of_costs
Start of Costs
choice ServicePeriod Enter when the costs start. The First Year of Cost is based on the number of years past the Start of Costs. For most maintenance costs the Start of Costs should be Service Period.
One of BasePeriod, ServicePeriod
years_from_start
Years from Start
integer This field and the Months From Start field together represent the time from either the start of the Service Period on the service month and year or start of the Base Period on the base month and year (depending on the Start of Costs field) that the costs start to occur. Only integers should be entered representing whole years.
Range: ≥ 0, ≤ 100
months_from_start
Months from Start
integer This field and the Years From Start field together represent the time from either the start of the Service Period on the service month and year or start of the Base Period on the base month and year (depending on the Start of Costs field) that the costs start to occur. Only integers should be entered representing whole months. The Years From Start (times 12) and Months From Start are added together.
Range: ≥ 0, ≤ 1200
repeat_period_years
Repeat Period Years
integer 1 This field and the Repeat Period Months field indicate how much time elapses between re-occurrences of the cost. For costs that occur every year such the Repeat Period Years should be 1 and Repeat Period Months should be 0. Only integers should be entered representing whole years.
Range: ≥ 0, ≤ 100
repeat_period_months
Repeat Period Months
integer 0 This field and the Repeat Period Years field indicate how much time elapses between re-occurrences of the cost. Only integers should be entered representing whole years. The Repeat Period Years (times 12) and Repeat Period Months are added together.
Range: ≥ 0, ≤ 1200
annual_escalation_rate
Annual escalation rate
number Enter the annual escalation rate as a decimal. For a 1% rate enter the value 0.01. This input is used when the Inflation Approach is CurrentDollar. When Inflation Approach is set to ConstantDollar this input is ignored.
Range: ≥ -0.3, ≤ 0.3

LifeCycleCost:UseAdjustment

from idfpy.models import LifeCycleCostUseAdjustment extensible

Used by advanced users to adjust the energy or water use costs for future years. This should not be used for compensating for inflation but should only be used to increase the costs of energy or water based on assumed changes to the actual usage, such as anticipated changes in the future function of the building. The adjustments begin at the start of the service period.

Field Type Default Details
name
Name required
string
resource
Resource required
choice One of Coal, Diesel, DistrictCooling, DistrictHeatingSteam, DistrictHeatingWater, Electricity, ElectricityNet, ElectricityProduced, ElectricityPurchased, ElectricitySurplusSold, FuelOilNo1, FuelOilNo2, Gasoline, NaturalGas, OtherFuel1, OtherFuel2, Propane, Water
multipliers list Each item: year_multiplier

LifeCycleCost:UsePriceEscalation

from idfpy.models import LifeCycleCostUsePriceEscalation extensible

Life cycle cost escalation factors. The values for this object may be found in the annual supplement to NIST Handbook 135 in Tables Ca-1 to Ca-5 and are included in an EnergyPlus dataset file.

Field Type Default Details
lcc_price_escalation_name
LCC Price Escalation Name required
string The identifier used for the object. The name usually identifies the location (such as the state or region or country or census area) that the escalations apply to. In addition the name should identify the building class such as residential or commercial or industrial and the use type such as electricity or natural gas or water.
resource
Resource required
choice One of Coal, Diesel, DistrictCooling, DistrictHeatingSteam, DistrictHeatingWater, Electricity, ElectricityNet, ElectricityProduced, ElectricityPurchased, ElectricitySurplusSold, FuelOilNo1, FuelOilNo2, Gasoline, NaturalGas, OtherFuel1, OtherFuel2, Propane, Water
escalation_start_year
Escalation Start Year
integer This field and the Escalation Start Month define the time that corresponds to Year 1 Escalation such as 2010 when the escalation rates are applied. This field and the Escalation Start Month define the time that escalation begins.
Range: ≥ 1900, ≤ 2100
escalation_start_month
Escalation Start Month
choice January This field and the Escalation Start Year define the time that corresponds to Year 1 Escalation such as 2010 when the escalation rates are applied. This field and the Escalation Start Year define the time that escalation begins.
One of April, August, December, February, January, July, June, March, May, November, October, September
escalations list Each item: year_escalation

UtilityCost:Charge:Block

from idfpy.models import UtilityCostChargeBlock

Used to compute energy and demand charges (or any other charges) that are structured in blocks of charges. Multiple UtilityCost:Charge:Block objects may be defined for a single tariff and they will be added together.

Field Type Default Details
utility_cost_charge_block_name
Utility Cost Charge Block Name required
string Charge Variable Name This is the name associated with the UtilityCost:Charge:Block object and will appear in the report. In addition the results of the UtilityCost:Charge:Block are stored in a variable with the same name. That way the results may be used for further calculation.
tariff_name
Tariff Name required
reference The name of the UtilityCost:Tariff that is associated with this UtilityCost:Charge:Block.
Names a UtilityCost:Tariff
source_variable
Source Variable required
string The name of the source used by the UtilityCost:Charge:Block. This is usually the name of the variable holding the energy or demand but may also be the name of any variable including the subtotal or basis if other charges are based on those. Typical values include totalEnergy totalDemand EnergyCharges DemandCharges ServiceCharges Basis Adjustments Surcharges Subtotal Taxes and Total. If it is a time-of-use rate then peakEnergy peakDemand shoulderEnergy shoulderDemand offPeakEnergy offPeakDemand midPeakEnergy and midPeakDemand. In addition see the Tariff Report to see other native variables that may be available. Also you can create additional user defined variables to model complex tariffs.
season
Season
choice Annual If this is set to annual the calculations are performed for the UtilityCost:Charge:Block for the entire year (all months) otherwise it is calculated only for those months in the season defined.
One of Annual, Fall, Spring, Summer, Winter
category_variable_name
Category Variable Name required
choice This field shows where the charge should be added. The reason to enter this field appropriately is so that the charge gets reported in a reasonable category. The charge automatically gets added to the variable that is the category.
One of Adjustment, Basis, DemandCharges, EnergyCharges, NotIncluded, ServiceCharges, Subtotal, Surcharge, Taxes, Total
remaining_into_variable
Remaining Into Variable
string If the blocks do not use all of the energy or demand from the source some energy and demand remains then the remaining amount should be assigned to a variable. If no variable is assigned and some amount of energy or demand is not used in the block structure a warning will be issued.
block_size_multiplier_value_or_variable_name
Block Size Multiplier Value or Variable Name
number or string The sizes of the blocks are usually used directly but if a value or a variable is entered here the block sizes entered in the rest of the charge are first multiplied by the entered value prior to being used. This is common for rates that are kWh/kW rates and in that case the variable that holds the monthly total electric demand would be entered. If no value is entered a default value of one is assumed so that the block sizes remain exactly as entered. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_1_value_or_variable_name
Block Size 1 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_1_cost_per_unit_value_or_variable_name
Block 1 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_2_value_or_variable_name
Block Size 2 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_2_cost_per_unit_value_or_variable_name
Block 2 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_3_value_or_variable_name
Block Size 3 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_3_cost_per_unit_value_or_variable_name
Block 3 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_4_value_or_variable_name
Block Size 4 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_4_cost_per_unit_value_or_variable_name
Block 4 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_5_value_or_variable_name
Block Size 5 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_5_cost_per_unit_value_or_variable_name
Block 5 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_6_value_or_variable_name
Block Size 6 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_6_cost_per_unit_value_or_variable_name
Block 6 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_7_value_or_variable_name
Block Size 7 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_7_cost_per_unit_value_or_variable_name
Block 7 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_8_value_or_variable_name
Block Size 8 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_8_cost_per_unit_value_or_variable_name
Block 8 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_9_value_or_variable_name
Block Size 9 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_9_cost_per_unit_value_or_variable_name
Block 9 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_10_value_or_variable_name
Block Size 10 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_10_cost_per_unit_value_or_variable_name
Block 10 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_11_value_or_variable_name
Block Size 11 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_11_cost_per_unit_value_or_variable_name
Block 11 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_12_value_or_variable_name
Block Size 12 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_12_cost_per_unit_value_or_variable_name
Block 12 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_13_value_or_variable_name
Block Size 13 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_13_cost_per_unit_value_or_variable_name
Block 13 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_14_value_or_variable_name
Block Size 14 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_14_cost_per_unit_value_or_variable_name
Block 14 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.
block_size_15_value_or_variable_name
Block Size 15 Value or Variable Name
number or string The size of the block of the charges is entered here. For most rates that use multiple blocks this will be the value for the block size. Using remaining may be used when the remaining amount should be included in that block. This field is unusual because it can be either a number or a name of a variable.
block_15_cost_per_unit_value_or_variable_name
Block 15 Cost per Unit Value or Variable Name
number or string The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number or a name of a variable.

UtilityCost:Charge:Simple

from idfpy.models import UtilityCostChargeSimple

UtilityCost:Charge:Simple is one of the most often used objects for tariff calculation. It is used to compute energy and demand charges that are very simple. It may also be used for taxes, surcharges and any other charges that occur on a utility bill. Multiple UtilityCost:Charge:Simple objects may be defined for a single tariff and they will be added together.

Field Type Default Details
utility_cost_charge_simple_name
Utility Cost Charge Simple Name required
string Charge Variable Name This is the name associated with the UtilityCost:Charge:Simple object and will appear in the report. In addition the results of the UtilityCost:Charge:Simple calculation are stored in a variable with the same name. That way the results may be used for further calculation. Spaces are not significant in Charge variable names. They are removed during the utility bill calculation process.
tariff_name
Tariff Name required
reference The name of the UtilityCost:Tariff that is associated with this UtilityCost:Charge:Simple.
Names a UtilityCost:Tariff
source_variable
Source Variable required
string The name of the source used by the UtilityCost:Charge:Simple. This is usually the name of the variable holding the energy or demand but may also be the name of any variable including the subtotal or basis if other charges are based on those. Typical values include totalEnergy totalDemand EnergyCharges DemandCharges ServiceCharges Basis Adjustments Surcharges Subtotal Taxes and Total. If it is a time-of-use rate then peakEnergy peakDemand shoulderEnergy shoulderDemand offPeakEnergy offPeakDemand midPeakEnergy and midPeakDemand. In addition see the Tariff Report to see other native variables that may be available. Also you can create additional user defined variables to model complex tariffs.
season
Season
choice If this is set to annual the calculations are performed for the UtilityCost:Charge:Simple for the entire year (all months) otherwise it is calculated only for those months in the season defined.
One of Annual, Fall, Spring, Summer, Winter
category_variable_name
Category Variable Name required
choice This field shows where the charge should be added. The reason to enter this field appropriately is so that the charge gets reported in a reasonable category. The charge automatically gets added to the variable that is the category.
One of Adjustment, Basis, DemandCharges, EnergyCharges, NotIncluded, ServiceCharges, Subtotal, Surcharge, Taxes, Total
cost_per_unit_value_or_variable_name
Cost per Unit Value or Variable Name required
number or string This field contains either a single number or the name of a variable. The number is multiplied with all of the energy or demand or other source that is specified in the source field. If a variable is used then the monthly values of the variable are multiplied against the variable specified in the source field. This field makes it easy to include a simple charge without specifying block sizes. This is a good way to include a tax or cost adjustment.

UtilityCost:Computation

from idfpy.models import UtilityCostComputation

The object lists a series of computations that are used to perform the utility bill calculation. The object is only used for complex tariffs that cannot be modeled any other way. For most utility tariffs, UtilityCost:Computation is unnecessary and should be avoided. If UtilityCost:Computation is used, it must contain references to all objects involved in the rate in the order that they should be computed.

Field Type Default Details
name
Name required
string
tariff_name
Tariff Name required
reference The name of the UtilityCost:Tariff that is associated with this UtilityCost:Variable.
Names a UtilityCost:Tariff
compute_step_1
Compute Step 1
string Contain a simple language that describes the steps used in the computation process similar to a programming language.
compute_step_2
Compute Step 2
string
compute_step_3
Compute Step 3
string
compute_step_4
Compute Step 4
string
compute_step_5
Compute Step 5
string
compute_step_6
Compute Step 6
string
compute_step_7
Compute Step 7
string
compute_step_8
Compute Step 8
string
compute_step_9
Compute Step 9
string
compute_step_10
Compute Step 10
string
compute_step_11
Compute Step 11
string
compute_step_12
Compute Step 12
string
compute_step_13
Compute Step 13
string
compute_step_14
Compute Step 14
string
compute_step_15
Compute Step 15
string
compute_step_16
Compute Step 16
string
compute_step_17
Compute Step 17
string
compute_step_18
Compute Step 18
string
compute_step_19
Compute Step 19
string
compute_step_20
Compute Step 20
string
compute_step_21
Compute Step 21
string
compute_step_22
Compute Step 22
string
compute_step_23
Compute Step 23
string
compute_step_24
Compute Step 24
string
compute_step_25
Compute Step 25
string
compute_step_26
Compute Step 26
string
compute_step_27
Compute Step 27
string
compute_step_28
Compute Step 28
string
compute_step_29
Compute Step 29
string
compute_step_30
Compute Step 30
string

UtilityCost:Qualify

from idfpy.models import UtilityCostQualify

The qualify object allows only tariffs to be selected based on limits which may apply such as maximum or minimum demand requirements. If the results of the simulation fall outside of the range of qualifications, that tariff is still calculated but the "Qualified" entry will say "No" and the UtilityCost:Qualify that caused its exclusion is shown. Multiple UtilityCost:Qualify objects can appear for the same tariff and they can be based on any variable.

Field Type Default Details
utility_cost_qualify_name
Utility Cost Qualify Name required
string Displayed in the report if the tariff does not qualify
tariff_name
Tariff Name required
reference The name of the UtilityCost:Tariff that is associated with this UtilityCost:Qualify.
Names a UtilityCost:Tariff
variable_name
Variable Name required
string The name of the variable used. For energy and demand the automatically created variables totalEnergy and totalDemand should be used respectively.
qualify_type
Qualify Type
choice Maximum One of Maximum, Minimum
threshold_value_or_variable_name
Threshold Value or Variable Name required
number or string The minimum or maximum value for the qualify. If the variable has values that are less than this value when the qualify type is minimum then the tariff may be disqualified. If the variable has values that are greater than this value when the qualify type is maximum then the tariff may be disqualified.
season
Season
choice If the UtilityCost:Qualify only applies to a season enter the season name. If this field is left blank it defaults to Annual.
One of Annual, Fall, Spring, Summer, Winter
threshold_test
Threshold Test
choice Consecutive Uses the number in Number of Months in one of two different ways depending on the Threshold Test. If the Threshold Test is set to Count then the qualification is based on the count of the total number of months per year. If the Threshold Test is set to consecutive then the qualification is based on a consecutive number of months.
One of Consecutive, Count
number_of_months
Number of Months
number A number from 1 to 12. If no value entered 12 is assumed when the qualify type is minimum and 1 when the qualify type is maximum. This is the number of months that the threshold test applies to determine if the rate qualifies or not. If the season is less than 12 months (if it is not annual) then the value is automatically reduced to the number of months of the season.
Range: ≥ 1, ≤ 12

UtilityCost:Ratchet

from idfpy.models import UtilityCostRatchet

Allows the modeling of tariffs that include some type of seasonal ratcheting. Ratchets are most common when used with electric demand charges. A ratchet is when a utility requires that the demand charge for a month with a low demand may be increased to be more consistent with a month that set a higher demand charge.

Field Type Default Details
name
Name required
string Ratchet Variable Name The name of the ratchet and the name of the result of this single ratchet.
tariff_name
Tariff Name required
reference The name of the UtilityCost:Tariff that is associated with this UtilityCost:Ratchet.
Names a UtilityCost:Tariff
baseline_source_variable
Baseline Source Variable required
string When the ratcheted value exceeds the baseline value for a month the ratcheted value is used but when the baseline value is greater then the ratcheted value the baseline value is used. Usually the electric demand charge is used. The baseline source variable can be the results of another ratchet object. This allows utility tariffs that have multiple ratchets to be modeled.
adjustment_source_variable
Adjustment Source Variable required
string The variable that the ratchet is calculated from. It is often but not always the same as the baseline source variable. The ratcheting calculations using offset and multiplier are using the values from the adjustment source variable. If left blank the adjustment source variable is the same as the baseline source variable.
season_from
Season From
choice The name of the season that is being examined. The maximum value for all of the months in the named season is what is used with the multiplier and offset. This is most commonly Summer or Annual. When Monthly is used the adjustment source variable is used directly for all months.
One of Annual, Fall, Monthly, Spring, Summer, Winter
season_to
Season To
choice The name of the season when the ratchet would be calculated. This is most commonly Winter. The ratchet only is applied to the months in the named season. The resulting variable for months not in the Season To selection will contain the values as appear in the baseline source variable.
One of Annual, Fall, Spring, Summer, Winter
multiplier_value_or_variable_name
Multiplier Value or Variable Name
number or string Often the ratchet has a clause such as "the current month demand or 90% of the summer month demand". For this case a value of 0.9 would be entered here as the multiplier. This value may be left blank if no multiplier is needed and a value of one will be used as a default.
offset_value_or_variable_name
Offset Value or Variable Name
number or string A less common strategy is to say that the ratchet must be all demand greater than a value in this case an offset that is added to the demand may be entered here. If entered it is common for the offset value to be negative representing that the demand be reduced. If no value is entered it is assumed to be zero and not affect the ratchet.

UtilityCost:Tariff

from idfpy.models import UtilityCostTariff

Defines the name of a utility cost tariff, the type of tariff, and other details about the overall tariff. Each other object that is part of the tariff model references the tariff name. See UtilityCost:Charge:Simple, UtilityCost:Charge:Block, UtilityCost:Ratchet, UtilityCost:Qualify, UtilityCost:Variable and UtilityCost:Computation objects.

Field Type Default Details
name
Name required
string The name of the tariff. Tariffs are sometimes called rates. The name is used in identifying the output results and in associating all of the charges and other objects that make up a tariff.
output_meter_name
Output Meter Name required
string The name of any standard meter or custom meter or but usually set to either Electricity:Facility or Gas:Facility
conversion_factor_choice
Conversion Factor Choice
choice A choice that allows several different predefined conversion factors to be used; otherwise user defined conversion factors are used as defined in the next two fields. If left blank m3 is used for water meters and kWh are used for all other meters.
One of CCF, MCF, MJ, MMBtu, Therm, UserDefined, gal, kBtu, kWh, kgal, m3
energy_conversion_factor
Energy Conversion Factor
number Is a multiplier used to convert energy into the units specified by the utility in their tariff. If left blank it defaults to 1 (no conversion). This field should will be used only if Conversion Factor Choice is set to UserDefined. Within EnergyPlus energy always has units of J (joules). For conversion from J to kWh use the value of 0.0000002778. This is also used for all objects that reference the UtilityCost:Tariff.
demand_conversion_factor
Demand Conversion Factor
number Is a multiplier used to convert demand into the units specified by the utility in their tariff. If left blank it defaults to 1 (no conversion). This field should will be used only if Conversion Factor Choice is set to UserDefined. Within EnergyPlus demand always has units of J/s (joules/sec) which equivalent to W (watts). For conversion from W to kW use the value of 0.001. This is also used for all objects that reference the UtilityCost:Tariff.
time_of_use_period_schedule_name
Time of Use Period Schedule Name
reference The name of the schedule that defines the time-of-use periods that occur each day. The values for the different variables are: 1 for Peak. 2 for Shoulder. 3 for OffPeak. 4 for MidPeak. The following variables are created automatically if these different periods are used in the schedule and include: TotalEnergy, TotalDemand, PeakEnergy, PeakDemand, ShoulderEnergy, ShoulderDemand, OffPeakEnergy, OffPeakDemand, MidPeakEnergy, MidPeakDemand Some special variables are created that include: PeakExceedsOffPeak, OffPeakExceedsPeak, PeakExceedsMidPeak, MidPeakExceedsPeak, PeakExceedsShoulder, ShoulderExceedsPeak, Others include: PeakAndShoulderEnergy, PeakAndShoulderDemand, PeakAndMidPeakEnergy, PeakAndMidPeakDemand, ShoulderAndOffPeakEnergy, ShoulderAndOffPeakDemand, PeakAndOffPeakEnergy, PeakAndOffPeakDemand, RealTimePriceCosts, AboveCustomerBaseCosts, BelowCustomerBaseCosts, AboveCustomerBaseEnergy, BelowCustomerBaseEnergy
Names a ExternalInterface:FunctionalMockupUnitExport:To:Schedule, ExternalInterface:FunctionalMockupUnitImport:To:Schedule, ExternalInterface:Schedule, Schedule:Compact, Schedule:Constant, Schedule:File, Schedule:Year, Schedule:Year:Rules
season_schedule_name
Season Schedule Name
reference The name of a schedule that defines the seasons. The schedule values are: 1 for Winter. 2 for Spring. 3 for Summer. 4 for Autumn. Variables are automatically created if a season schedule is used. These variables are set to 1 within the season and 0 for the months that are not in the season. The variables are: IsWinter, IsNotWinter, IsSpring, IsNotSpring, IsSummer, IsNotSummer, IsAutumn, IsNotAutumn.
Names a ExternalInterface:FunctionalMockupUnitExport:To:Schedule, ExternalInterface:FunctionalMockupUnitImport:To:Schedule, ExternalInterface:Schedule, Schedule:Compact, Schedule:Constant, Schedule:File, Schedule:Year, Schedule:Year:Rules
month_schedule_name
Month Schedule Name
reference The name of the schedule that defines the billing periods of the year. Normally this entry is allowed to default and a schedule will be internally used that has the breaks between billing periods occurring at the same time as the breaks between months i.e. at midnight prior to the first day of the month. If other billing periods are used such as two month cycles or a single bill for an entire season such as some natural gas companies do in the summer then the month schedule may be used to redefine it. Make sure that the month schedule and season schedule are consistent otherwise an error will be issued.
Names a ExternalInterface:FunctionalMockupUnitExport:To:Schedule, ExternalInterface:FunctionalMockupUnitImport:To:Schedule, ExternalInterface:Schedule, Schedule:Compact, Schedule:Constant, Schedule:File, Schedule:Year, Schedule:Year:Rules
demand_window_length
Demand Window Length
choice The determination of demand can vary by utility. Some utilities use the peak instantaneous demand measured but most use a fifteen minute average demand or a one hour average demand. Some gas utilities measure demand as the use during the peak day or peak week.
One of Day, FullHour, HalfHour, QuarterHour, Week
monthly_charge_or_variable_name
Monthly Charge or Variable Name
number or string The fixed monthly service charge that many utilities have. The entry may be numeric and gets added to the ServiceCharges variable or if a variable name is entered here its values for each month are used.
minimum_monthly_charge_or_variable_name
Minimum Monthly Charge or Variable Name
number or string The minimum total charge for the tariff or if a variable name is entered here its values for each month are used.
real_time_pricing_charge_schedule_name
Real Time Pricing Charge Schedule Name
reference Used with real time pricing rates. The name of a schedule that contains the cost of energy for that particular time period of the year. Real time rates can be modeled using a charge schedule with the actual real time prices entered in the schedule.
Names a ExternalInterface:FunctionalMockupUnitExport:To:Schedule, ExternalInterface:FunctionalMockupUnitImport:To:Schedule, ExternalInterface:Schedule, Schedule:Compact, Schedule:Constant, Schedule:File, Schedule:Year, Schedule:Year:Rules
customer_baseline_load_schedule_name
Customer Baseline Load Schedule Name
reference Used with real time pricing rates. The name of a schedule that contains the baseline energy use for the customer. Many real time rates apply the charges as a credit or debit only to the difference between the baseline use and the actual use.
Names a ExternalInterface:FunctionalMockupUnitExport:To:Schedule, ExternalInterface:FunctionalMockupUnitImport:To:Schedule, ExternalInterface:Schedule, Schedule:Compact, Schedule:Constant, Schedule:File, Schedule:Year, Schedule:Year:Rules
group_name
Group Name
string The group name of the tariff such as distribution transmission supplier etc. If more than one tariff with the same group name is present and qualifies only the lowest cost tariff is used. Usually the group name field is left blank which results in all tariffs using the same meter variable being compared and the lowest cost one being selected.
buy_or_sell
Buy Or Sell
choice BuyFromUtility Sets whether the tariff is used for buying selling or both to the utility. This should be allowed to default to buyFromUtility unless a power generation system is included in the building that may generate more power than the building needs during the year
One of BuyFromUtility, NetMetering, SellToUtility
Referenced by 6 object types

UtilityCost:Charge:Block, UtilityCost:Charge:Simple, UtilityCost:Computation, UtilityCost:Qualify, UtilityCost:Ratchet, UtilityCost:Variable

UtilityCost:Variable

from idfpy.models import UtilityCostVariable

Allows for the direct entry of monthly values into a utility tariff variable.

Field Type Default Details
name
Name required
string
tariff_name
Tariff Name required
reference The name of the UtilityCost:Tariff that is associated with this UtilityCost:Variable.
Names a UtilityCost:Tariff
variable_type
Variable Type
choice Dimensionless One of Currency, Demand, Dimensionless, Energy
january_value
January Value
number
february_value
February Value
number
march_value
March Value
number
april_value
April Value
number
may_value
May Value
number
june_value
June Value
number
july_value
July Value
number
august_value
August Value
number
september_value
September Value
number
october_value
October Value
number
november_value
November Value
number
december_value
December Value
number