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_Miscellaneous Cost per Conditioned Area |
number $/m2 |
based on conditioned floor area for cost not accounted for in current line item cost model | |
design_Design and Engineering Fees |
number dimensionless |
||
contractor_Contractor Fee |
number dimensionless |
||
contingencyContingency |
number dimensionless |
||
permits_Permits, Bonding and Insurance |
number dimensionless |
||
commissioning_Commissioning Fee |
number dimensionless |
||
regional_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 |
|---|---|---|---|
nameName |
string | ||
typeType |
string | ||
line_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_Item Name required |
string | wildcard "*" is acceptable for some components | |
object_Object End-Use Key |
string | not yet used | |
cost_Cost per Each |
number $ |
||
cost_Cost per Area |
number $/m2 |
||
cost_Cost per Unit of Output Capacity |
number $/kW |
||
cost_Cost per Unit of Output Capacity per COP |
number $/kW |
The value is per change in COP. | |
cost_Cost per Volume |
number $/m3 |
||
cost_Cost per Volume Rate |
number $/(m3/s) |
||
cost_Cost per Energy per Temperature Difference |
number $/(W/K) |
as in for use with UA sizing of Coils | |
quantityQuantity |
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_Reference Building Line Item Costs |
number $ |
should be comparable to the components in current line item cost model | |
reference_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_Reference Building Design and Engineering Fees |
number dimensionless |
||
reference_Reference Building Contractor Fee |
number dimensionless |
||
reference_Reference Building Contingency |
number | ||
reference_Reference Building Permits, Bonding and Insurance |
number dimensionless |
||
reference_Reference Building Commissioning Fee |
number dimensionless |
||
reference_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_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 |
|---|---|---|---|
nameName required |
string | ||
categoryCategory |
choice | Construction |
One of Construction, OtherCapital, Salvage |
costCost |
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_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_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_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 |
|---|---|---|---|
nameName required |
string | ||
discounting_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_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_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_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. | |
inflationInflation |
number | Enter the rate of inflation for general goods and services as a decimal. For a 2% rate enter the value 0.02. | |
base_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_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_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_Service Date Year |
integer | Enter the four digit year that is the beginning of occupancy such as 2010. Range: ≥ 1900, ≤ 2100 |
|
length_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_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_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 |
|---|---|---|---|
nameName required |
string | ||
categoryCategory |
choice | Maintenance |
One of Maintenance, MajorOverhaul, MinorOverhaul, Operation, OtherOperational, Repair, Replacement |
costCost |
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_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_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_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_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_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_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 |
|---|---|---|---|
nameName required |
string | ||
resourceResource 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_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. | |
resourceResource required |
choice | One of Coal, Diesel, DistrictCooling, DistrictHeatingSteam, DistrictHeatingWater, Electricity, ElectricityNet, ElectricityProduced, ElectricityPurchased, ElectricitySurplusSold, FuelOilNo1, FuelOilNo2, Gasoline, NaturalGas, OtherFuel1, OtherFuel2, Propane, Water |
|
escalation_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_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_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_Tariff Name required |
reference | The name of the UtilityCost:Tariff that is associated with this UtilityCost:Charge:Block. Names a UtilityCost:Tariff |
|
source_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. | |
seasonSeason |
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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_Tariff Name required |
reference | The name of the UtilityCost:Tariff that is associated with this UtilityCost:Charge:Simple. Names a UtilityCost:Tariff |
|
source_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. | |
seasonSeason |
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_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_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 |
|---|---|---|---|
nameName required |
string | ||
tariff_Tariff Name required |
reference | The name of the UtilityCost:Tariff that is associated with this UtilityCost:Variable. Names a UtilityCost:Tariff |
|
compute_Compute Step 1 |
string | Contain a simple language that describes the steps used in the computation process similar to a programming language. | |
compute_Compute Step 2 |
string | ||
compute_Compute Step 3 |
string | ||
compute_Compute Step 4 |
string | ||
compute_Compute Step 5 |
string | ||
compute_Compute Step 6 |
string | ||
compute_Compute Step 7 |
string | ||
compute_Compute Step 8 |
string | ||
compute_Compute Step 9 |
string | ||
compute_Compute Step 10 |
string | ||
compute_Compute Step 11 |
string | ||
compute_Compute Step 12 |
string | ||
compute_Compute Step 13 |
string | ||
compute_Compute Step 14 |
string | ||
compute_Compute Step 15 |
string | ||
compute_Compute Step 16 |
string | ||
compute_Compute Step 17 |
string | ||
compute_Compute Step 18 |
string | ||
compute_Compute Step 19 |
string | ||
compute_Compute Step 20 |
string | ||
compute_Compute Step 21 |
string | ||
compute_Compute Step 22 |
string | ||
compute_Compute Step 23 |
string | ||
compute_Compute Step 24 |
string | ||
compute_Compute Step 25 |
string | ||
compute_Compute Step 26 |
string | ||
compute_Compute Step 27 |
string | ||
compute_Compute Step 28 |
string | ||
compute_Compute Step 29 |
string | ||
compute_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_Utility Cost Qualify Name required |
string | Displayed in the report if the tariff does not qualify | |
tariff_Tariff Name required |
reference | The name of the UtilityCost:Tariff that is associated with this UtilityCost:Qualify. Names a UtilityCost:Tariff |
|
variable_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_Qualify Type |
choice | Maximum |
One of Maximum, Minimum |
threshold_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. | |
seasonSeason |
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_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_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 |
|---|---|---|---|
nameName required |
string | Ratchet Variable Name The name of the ratchet and the name of the result of this single ratchet. | |
tariff_Tariff Name required |
reference | The name of the UtilityCost:Tariff that is associated with this UtilityCost:Ratchet. Names a UtilityCost:Tariff |
|
baseline_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_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_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_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_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_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 |
|---|---|---|---|
nameName 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 |
|---|---|---|---|
nameName required |
string | ||
tariff_Tariff Name required |
reference | The name of the UtilityCost:Tariff that is associated with this UtilityCost:Variable. Names a UtilityCost:Tariff |
|
variable_Variable Type |
choice | Dimensionless |
One of Currency, Demand, Dimensionless, Energy |
january_January Value |
number | ||
february_February Value |
number | ||
march_March Value |
number | ||
april_April Value |
number | ||
may_May Value |
number | ||
june_June Value |
number | ||
july_July Value |
number | ||
august_August Value |
number | ||
september_September Value |
number | ||
october_October Value |
number | ||
november_November Value |
number | ||
december_December Value |
number |