Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion BuildingSync.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -4564,7 +4564,7 @@
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:extension base="xs:nonNegativeInteger">
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perfect

<xs:attribute ref="auc:Source"/>
</xs:extension>
</xs:simpleContent>
Expand Down Expand Up @@ -4777,6 +4777,20 @@
<xs:element name="DiscountFactor" minOccurs="0">
<xs:annotation>
<xs:documentation>Discount factor applied to calculate present values of future cash flows. (0-100) (%)</xs:documentation>
<xs:documentation>Discount factors $v$ are related to discount rates $i$ by the following equation: $v=\frac{1}{1+i}$.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute ref="auc:Source"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="DiscountRate" minOccurs="0">
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! And thanks for updating the documentation of the discount factor.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed!

<xs:annotation>
<xs:documentation>Discount rate applied to calculate present values of future cash flows. (0-100) (%)</xs:documentation>
<xs:documentation>Discount rates $i$ are related to discount factors $v$ by the following equation: $i=\frac{1-v}{v}$ where $v \neq 0$.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
Expand Down
20 changes: 10 additions & 10 deletions examples/AT_example_NYC_audit_report_property.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4223,7 +4223,7 @@
<auc:OMCostAnnualSavings>3000.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>500.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>6.0</auc:UsefulLife>
<auc:UsefulLife>6</auc:UsefulLife>
<auc:MeasureTotalFirstCost>10000.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4260,7 +4260,7 @@
<auc:OMCostAnnualSavings>900.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>200.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>10.0</auc:UsefulLife>
<auc:UsefulLife>10</auc:UsefulLife>
<auc:MeasureTotalFirstCost>1800.0</auc:MeasureTotalFirstCost>
<auc:ImplementationStatus>Proposed</auc:ImplementationStatus>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4297,7 +4297,7 @@
<auc:OMCostAnnualSavings>2800.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>1500.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>15.0</auc:UsefulLife>
<auc:UsefulLife>15</auc:UsefulLife>
<auc:MeasureTotalFirstCost>50000.0</auc:MeasureTotalFirstCost>
<auc:ImplementationStatus>Proposed</auc:ImplementationStatus>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4334,7 +4334,7 @@
<auc:OMCostAnnualSavings>1200.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>500.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>10.0</auc:UsefulLife>
<auc:UsefulLife>10</auc:UsefulLife>
<auc:MeasureTotalFirstCost>20000.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4371,7 +4371,7 @@
<auc:OMCostAnnualSavings>1800.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>0.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>12.0</auc:UsefulLife>
<auc:UsefulLife>12</auc:UsefulLife>
<auc:MeasureTotalFirstCost>10000.0</auc:MeasureTotalFirstCost>
<auc:ImplementationStatus>Evaluated</auc:ImplementationStatus>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4408,7 +4408,7 @@
<auc:OMCostAnnualSavings>150.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>100.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>20.0</auc:UsefulLife>
<auc:UsefulLife>20</auc:UsefulLife>
<auc:MeasureTotalFirstCost>400.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4445,7 +4445,7 @@
<auc:OMCostAnnualSavings>200.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>50.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>20.0</auc:UsefulLife>
<auc:UsefulLife>20</auc:UsefulLife>
<auc:MeasureTotalFirstCost>250.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4482,7 +4482,7 @@
<auc:OMCostAnnualSavings>100.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>0.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>20.0</auc:UsefulLife>
<auc:UsefulLife>20</auc:UsefulLife>
<auc:MeasureTotalFirstCost>300.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4519,7 +4519,7 @@
<auc:OMCostAnnualSavings>300.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>1000.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>10.0</auc:UsefulLife>
<auc:UsefulLife>10</auc:UsefulLife>
<auc:MeasureTotalFirstCost>4800.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -4556,7 +4556,7 @@
<auc:OMCostAnnualSavings>150.0</auc:OMCostAnnualSavings>
<auc:FundingFromIncentives>0.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>10.0</auc:UsefulLife>
<auc:UsefulLife>10</auc:UsefulLife>
<auc:MeasureTotalFirstCost>1200.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down
4 changes: 2 additions & 2 deletions examples/AT_example_SF_audit_report.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2387,7 +2387,7 @@ This example is configured to import and export with BuildingSync version 2.2.0.
<auc:MeasureSavingsAnalysis>
<auc:FundingFromIncentives>10000.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>20.0</auc:UsefulLife>
<auc:UsefulLife>20</auc:UsefulLife>
<auc:MeasureTotalFirstCost>300000.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down Expand Up @@ -2420,7 +2420,7 @@ This example is configured to import and export with BuildingSync version 2.2.0.
<auc:MeasureSavingsAnalysis>
<auc:FundingFromIncentives>500.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>15.0</auc:UsefulLife>
<auc:UsefulLife>15</auc:UsefulLife>
<auc:MeasureTotalFirstCost>2500.0</auc:MeasureTotalFirstCost>
<auc:ImplementationStatus>Proposed</auc:ImplementationStatus>
<auc:UserDefinedFields>
Expand Down
6 changes: 3 additions & 3 deletions examples/BuildingSync Website Invalid Schema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,7 @@
</auc:CalculationMethod>
<auc:FundingFromIncentives>1000.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>8.0</auc:UsefulLife>
<auc:UsefulLife>8</auc:UsefulLife>
<auc:MeasureTotalFirstCost>30000.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand All @@ -540,7 +540,7 @@
</auc:CalculationMethod>
<auc:FundingFromIncentives>100.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>2.0</auc:UsefulLife>
<auc:UsefulLife>2</auc:UsefulLife>
<auc:MeasureTotalFirstCost>500.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand All @@ -566,7 +566,7 @@
</auc:CalculationMethod>
<auc:FundingFromIncentives>50.0</auc:FundingFromIncentives>
</auc:MeasureSavingsAnalysis>
<auc:UsefulLife>2.0</auc:UsefulLife>
<auc:UsefulLife>2</auc:UsefulLife>
<auc:MeasureTotalFirstCost>100.0</auc:MeasureTotalFirstCost>
<auc:Recommended>true</auc:Recommended>
<auc:UserDefinedFields>
Expand Down
8 changes: 4 additions & 4 deletions examples/BuildingSync Website Valid Schema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@
<auc:MeasureScaleOfApplication>Entire building</auc:MeasureScaleOfApplication>
<auc:LongDescription>Install plug load controls</auc:LongDescription>
<auc:MVCost>0</auc:MVCost>
<auc:UsefulLife>5.6</auc:UsefulLife>
<auc:UsefulLife>6</auc:UsefulLife>
<auc:MeasureTotalFirstCost>56950.64</auc:MeasureTotalFirstCost>
<auc:MeasureInstallationCost>0</auc:MeasureInstallationCost>
<auc:MeasureMaterialCost>0</auc:MeasureMaterialCost>
Expand Down Expand Up @@ -568,7 +568,7 @@
<auc:MeasureScaleOfApplication>Entire building</auc:MeasureScaleOfApplication>
<auc:LongDescription>Replace ice/refrigeration equipment with high efficiency units</auc:LongDescription>
<auc:MVCost>0</auc:MVCost>
<auc:UsefulLife>12.5</auc:UsefulLife>
<auc:UsefulLife>13</auc:UsefulLife>
<auc:MeasureTotalFirstCost>135431.4</auc:MeasureTotalFirstCost>
<auc:MeasureInstallationCost>0</auc:MeasureInstallationCost>
<auc:MeasureMaterialCost>0</auc:MeasureMaterialCost>
Expand Down Expand Up @@ -778,7 +778,7 @@
<auc:MeasureScaleOfApplication>Entire building</auc:MeasureScaleOfApplication>
<auc:LongDescription>Improve ventilation fans</auc:LongDescription>
<auc:MVCost>0</auc:MVCost>
<auc:UsefulLife>4.4</auc:UsefulLife>
<auc:UsefulLife>4</auc:UsefulLife>
<auc:MeasureTotalFirstCost>69452.0</auc:MeasureTotalFirstCost>
<auc:MeasureInstallationCost>0</auc:MeasureInstallationCost>
<auc:MeasureMaterialCost>0</auc:MeasureMaterialCost>
Expand Down Expand Up @@ -838,7 +838,7 @@
<auc:MeasureScaleOfApplication>Entire building</auc:MeasureScaleOfApplication>
<auc:LongDescription>Add or repair economizer</auc:LongDescription>
<auc:MVCost>0</auc:MVCost>
<auc:UsefulLife>12.5</auc:UsefulLife>
<auc:UsefulLife>13</auc:UsefulLife>
<auc:MeasureTotalFirstCost>55561.600000000006</auc:MeasureTotalFirstCost>
<auc:MeasureInstallationCost>0</auc:MeasureInstallationCost>
<auc:MeasureMaterialCost>0</auc:MeasureMaterialCost>
Expand Down
37 changes: 37 additions & 0 deletions proposals/2022/Add DiscountRate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Add Discount Rate

## Overview

This proposal is support the assertion of discount rates in BuildingSync XML schema.

## Justification

### Present Value Calculation

The equation for net present value is:

$$ NPV\left({i,N}\right) = \sum_{t=0}^{N}{\frac{R_{t}}{\left({1+i}\right)^t}} $$

where
* $i$ is the discount rate (percentage).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we say i is the interest rate here since v is the discount rate where v=1/(1+i)?

* $N$ is the total number of periods (non-negative integer).
* $t$ is the time of the cash flow (non-negative integer).
* $R_{t}$ is the cash flow at time $t$ (decimal).

Currently, BuildingSync XML schema supports the assertion of discount factors via the `<auc:DiscountFactor>` element, where the discount factor $v$ is related to the discount rate $i$ by the following equation:

$$ v = \frac{1}{1 + i} $$

### Service Life

BuildingSync XML schema supports the assertion of the service life in years via the `<auc:UsefulLife>` element.
Currently, the datatype is `xsd:decimal`, which allows for fractional and negative years.
However, ASHRAE [reports](http://weblegacy.ashrae.org/publicdatabase/) median life in non-negative integer years.

## Implementation

The proposed implementation consists of 3 tasks:

1. Add `<auc:DiscountRate>` element (non-breaking change).
2. Add documentation to definitions of `<auc:DiscountFactor>` and `<auc:DiscountRate>` elements to clarify their mathematical relationship (non-breaking change).
3. Constrain datatype of `<auc:UsefulLife>` element to `xsd:nonNegativeInteger` (breaking change).