Explore the latest updates and features in our new Signal Product Documentation and Switch Product Documentation.
Please note, this site’s retirement date will be announced soon, so make sure to update your bookmarks.
On-Demand Mass Calculation
The On-Demand Cost Calculation allows you to calculate the cost of a given usage amount for a single tariff rate plan. Sometimes you want to run multiple calculations on the same input data, such as to find out what the best available tariff rate plan is. This is where the On-demand Mass Calculation API comes in. With this API, you can specify a number of scenarios (up to 20) and calculate the results for all of them at once. Each scenario can include different combinations of tariffs, property inputs, and usage values.
The Mass Calculation endpoint is only available under special circumstances to Enterprise customers using our Signal Product.
Data Definitions
Mass Calculation
The top level response object that contains the scenarios calculated by the mass calculation.
Name | Type | Fields | Description |
---|---|---|---|
fromDateTime | DateTime | M | The start date and time of this calculation. |
toDateTime | DateTime | M | The end date and time of this calculation. |
scenarios | Map of CalculatedCost | M | Map connecting a scenario to its calculation result via scenarioName which is specified in the request’s Calculation Scenario |
Calculated Cost
The CalculatedCost
object contains the results of the calculation. The totalCost
field holds the overall cost while the details of the calculation are contained within a list of Calculated Cost Item(s).
Name | Type | Fields | Description |
---|---|---|---|
masterTariffId | Long | M | Unique Genability ID for the master tariff of this calculation’s tariff. |
tariffName | String | M | The name of this tariff. |
totalCost | Decimal | M | Total summed up cost of all cost items (see below). |
fromDateTime | DateTime | M | The start date and time of this calculation. |
toDateTime | DateTime | M | The end date and time of this calculation. |
accuracy | Decimal [0,100] | M | A decimal value between 0 and 100 representing the accuracy of the calculation. As more “best guess” assumptions are made, the calculation will become less accurate and the accuracy value will be smaller. |
currency | String | The currency represented in the calculation. | |
summary | Map | Summary of cost and resource totals. | |
items | Array of CalculatedCostItem | M | Breakdown of the summary data with variable granularity and grouping. |
assumptions | Array of PropertyData | The properties, modeling assumptions, and other key info used in the calculation. | |
calculatedCostId | String | M | Unique identifier for this calculation. |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"masterTariffId": 522,
"tariffName": "Residential",
"totalCost": 198.35,
"fromDateTime": "2013-12-01T00:00:00-08:00",
"toDateTime": "2014-01-01T00:00:00-08:00",
"accuracy": 1,
"currency": "USD",
"summary": {
"subTotalCost": 198.35,
"taxCost": 0,
"totalCost": 198.35,
"adjustedTotalCost": 198.64,
"kWh": 1000,
"kW": 0
},
"items": [...],
"assumptions": [...],
"calculatedCostId": "67afe5d7-19f1-4c35-8e83-6868f6402da8",
}
Calculated Cost Item
The calculated cost items contain the details of the calculations. By default, there is one CalculatedCostItem
object for each tariff rate that is included in the calculation.
Name | Type | Fields | Description |
---|---|---|---|
tariffId | Long | E | Unique Genability ID for the tariff associated with this cost item. |
tariffRateId | Long | M | Unique Genability ID for the tariff rate associated with this cost item. |
tariffRateBandId | Long | M | Unique Genability ID for the band associated with this cost item. |
rateSequenceNumber | Integer | M | The sequence number of the rate group that the tariff rate belongs to. |
rateGroupName | String | M | The name of the group this rate belongs to. |
rateName | String | M | The name of this rate. |
fromDateTime | DateTime | M | The start date and time of the period applicable for this cost item. |
toDateTime | DateTime | M | The end date and time of the period applicable for this cost item. |
quantityKey | String | M | The key for the quantity this calculated cost item refers to. Possible values include: fixed , consumption , minimum , and demand . |
quantityKeyDescription | String | E | The textual description of the quantity key specified by quantityKey. |
rateType | String | M | The type of rate this charge is. Current values include COST_PER_UNIT which is a cost for each unit of quantity consumed (e.g. $0.10 per kWh), and PERCENTAGE which is a percent of another cost (e.g. 10% of your bill). BLOCK and BLOCK_SELL_BACK are also supported. See Block and Index Rates |
rateAmount | Decimal | M | The monetary amount of the rate associated with this cost item. |
tierLowerLimit | Decimal | E | For a tiered rate, the minimum quantity needed to invoke this tier. |
tierUpperLimit | Decimal | E | For a tiered rate, the maximum quantity at which this tier is invoked. |
itemQuantity | Decimal | M | Total quantity used for this item’s charge. This will typically be 1 but will have different values for charges related to the number of units of some items (e.g. number of billing meters at a facility). |
cost | Decimal | M | This is the total cost for this line item. |
rateProration | Decimal | E | The amount this rate is being prorated compared to the full rate amount. |
chargeType | String | The type of rate: CONSUMPTION_BASED , DEMAND_BASED , FIXED_TYPE , QUANTITY , MINIMUM , TAX or NET_EXCESS_GENERATION . |
|
chargeClass | String | The class of rate: TRANSMISSION , DISTRIBUTION , SUPPLY , TAX , CONTRACTED , USER_ADJUSTED , AFTER_TAX , or OTHER . |
|
period | String | M | The Time of Use type: SUPER_OFF_PEAK , OFF_PEAK , PARTIAL_PEAK , ON_PEAK , SUPER_ON_PEAK or CRITICAL_PEAK . |
demandInterval | DateTime | M | For demand charges, the time from which demand is measured. |
duration | Integer | The duration in milliseconds (Optional) | |
touId | Long | The unique Genability ID of the time of use associated with this cost item. (Optional) | |
touName | String | Human-readable name of the time of use specified by touId. (Optional) | |
seasonId | Long | The unique Genability ID of the season in which the time of use period is situated, which can affect the rate. (Optional) | |
seasonName | String | Human-readable name for the season in which the time of use period is situated. (Optional) | |
formula | String | E | The formula associated with the quantityKey. |
transactionType | Enumeration | E | Transaction type categories: BUY , SELL , NET , BUY_IMPORT or SELL_EXPORT |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"tariffId": 3163175,
"tariffRateId": 17091206,
"tariffRateBandId": 10341335,
"rateSequenceNumber": 3,
"rateGroupName": "Transmission",
"rateName": "Reliability Service Charge",
"fromDateTime": "2013-12-01T00:00:00-08:00",
"toDateTime": "2014-01-01T00:00:00-08:00",
"quantityKey": "consumption",
"rateType": "COST_PER_UNIT",
"rateAmount": -0.00015,
"itemQuantity": 1000,
"cost": -0.15,
"chargeType": "CONSUMPTION_BASED"
}
Property Data
The PropertyData
object is used both as an input object, as part of the propertyInputs
list, and also as an output object when returned in the assumptions
list. It has the following data structure:
Name | Type | Fields | Description |
---|---|---|---|
keyName | String | M | The key name of the property associated with this input. The most common one will be consumption (which is the kWh for the period), and second most common is demand (kW), but can also be applicability properties like cityLimits or hasElectricVehicle (Required on input) |
displayName | String | M | A display-friendly name for this property. (Output only) |
description | String | E | A text description of this property. (Output only) |
fromDateTime | DateTime | M | The start of the period where this property is applicable. (Optional on input, Default= fromDateTime for the calculation request) |
toDateTime | DateTime | M | The end of the period where this property is applicable. (Optional on input, Default= toDateTime for the calculation request) |
period | String | M | The Time of Use type: SUPER_OFF_PEAK , OFF_PEAK , PARTIAL_PEAK , ON_PEAK , SUPER_ON_PEAK or CRITICAL_PEAK .As input, can alternatively be specified as a Date Period |
dataType | Enumeration | M | The type of this property. Possible values are: STRING , CHOICE , BOOLEAN , DATE , DECIMAL , INTEGER , and FORMULA (Output only) |
dataValue | String | M | The value to use for this property. Can be input as the native type, but when populated will be returned as a string. (Required on input when not using dataSeries ) |
dataSeries | Array of Decimal | Used for properties which have many values, such as consumption time series data. (Required on input when not using dataValue ) |
|
duration | Integer | Used with dataSeries to specify the time span corresponding to each value in the dataSeries . (Required on input when using dataSeries ) |
|
dataFactor | Decimal | For applicable properties (like usage data) scales the inputs by the value provided (Optional, Input Only) | |
operator | Enumeration | For profile data only. Specifies how profiles should be joined. Possible values are + and - . |
|
unit | String | M | Where applicable, this is the unit of the value. Most common are: "kWh" - for keys of consumption, "kW" - for keys of demand. (Optional) |
accuracy | Decimal [0,100] | M | Estimated accuracy of the property value. Properties which you set explicitly will have an accuracy value of 100. (Output only) |
As an object used for inputs, you will pass in zero or more PropertyData
records to set calculation properties via the propertyInputs
parameter. For example, if you tell the calculator that your customer is enrolled in the “SmartRate” program, you would pass in that program’s keyName
and dataValue
:
1
2
3
4
5
6
7
"propertyInputs": [
{
"keyName": "isSmartRateCustomer",
"dataValue": true
},
...
]
When passing in inputs, we require the keyName
and dataValue
(for one value) or dataSeries
and duration
(for multiple). Typically, that’s all that is required. However, where necessary, you can set some of the other fields too, such as fromDateTime
and toDateTime
. You do not need to pass in informational fields such as dataType
or description
as these are defined by the property’s meta-data.
The APIs will populate these metadata fields when a PropertyData
is returned as an output. The assumptions
list of PropertyData
returned will tell you what assumptions were made for a particular calculation and what information might be required for a future calculation. The API will usually return the dataValue or dataSeries of the value that was actually used, if there is one. Here’s an example:
1
2
3
4
5
6
7
8
9
10
11
12
13
"assumptions": [
{
"keyName": "isSmartRateCustomer",
"displayName": "Is SmartRate Customer",
"description": "The residential SmartRate program is a voluntary rate supplement to the customer's \r\notherwise applicable rate schedule (OAS).\r\nThe customer will be billed for all regular charges applicable under the customer's OAS. \r\nAdditional charges (based on usage during SmartDay High-Price Periods) and \r\nSmartRate credits will be determined according to the rates specified in this schedule. The customer must have a SmartMeter system to participate in the residential \r\nSmartRate program",
"fromDateTime": "2013-01-01T00:00:00-08:00",
"toDateTime": "2014-01-01T00:00:00-08:00",
"dataType": "BOOLEAN",
"dataValue": "true",
"accuracy": 100 // implies this property was either passed in explicitly or must be true contextually
},
...
]
Every valid keyName
that you can use in a PropertyData
is available via our Property Key API. This will tell you its meta-data, such as its title, description, data type and possible values.
Calculation Scenario
A Calculation Scenario
defines the individual calculations that are done as part of running a Mass Calculation. Put them into the scenarios
array in your Mass Calculate request.
Name | Type | Description |
---|---|---|
masterTariffId | Integer | The Genability ID of the tariff used for this particular calculation. |
scenarioName | String | A user-provided identifier for this calculation. If provided, it will be used to identify the scenario in the calculation results. Defaults to a simple index. (Optional) |
propertyInputs | Array of PropertyData | This is where you’ll specify the usage data and applicabilities for the calculation. |
rateInputs | Array of TariffRate | Any custom rates that you want to supply for this scenario. |
expected | Map | Set expectations on calculation results (totalCost , adjustedTotalCost , kWh , kW ) to enable accuracy validation. (Optional) See an example |
Shared Scenario
Very often, there will be some inputs that you want to share across all (or some) of the calculations that you’re doing. For example, maybe you want to compare the cost of 1,000 kWh for a number of different tariffs. Instead of entering those values multiple times for every scenario, you can specify those inputs as part of the sharedScenario
(see below). Inputs added to this field will be used for every scenario that you specify, unless they are overwritten in an individual scenario. The only exception is usage data: any usage data added to the sharedScenario
will be added to usage data specified for an individual scenario.
Address
Used to find the appropriate tax when doing a calculation with utility tax.
Name | Type | Description |
---|---|---|
addressString | String | Full free text string representing address. This is the property that is usually passed in. Zip will suffice but the full address is better. |
addressName | String | A name associated with the address (e.g. Headquarters). Not usually set. |
address1 | String | First part of the address. Usually populated by our address validation from the addressString passed in. |
address2 | String | Second part of the address. Usually populated by our address validation from the addressString passed in. |
city | String | City of the address. Usually populated by our address validation from the addressString passed in. |
state | String | State of the address. Usually populated by our address validation from the addressString passed in. |
zip | String | Postcode or ZIP code of the address. Usually populated by our address validation from the addressString passed in. |
country | String | Usually the ISO Country Code of the address. Usually populated by our address validation from the addressString passed in. |
lon | Double | Longitude of the address. We’ll populate this by geo-tagging the address. |
lat | Double | Latitude of the address. We’ll populate this by geo-tagging the address. |
Request ID
In the top level response object a requestId
field is returned from this request. The requestId
value is generated randomly for each request.
The primary use case of the requestId
is to submit it along with a support ticket when there is a question regarding a particular calculation result.
1
2
3
4
5
6
7
{
"status": "success",
"count": 1,
"type": "CalculatedCost",
"requestId": "b9418ae1-af32-473a-b86a-b308fdbd48d1",
"results": [...]
}
Run a Mass Calculation
A Mass Calculation request is very similar to a request for a single calculation. The primary difference is that each individual calculation is defined as a separate CalculationScenario inside of the scenarios
array rather than as part of the top-level request.
Resource URI
POST /rest/v1/ondemand/calculate/mass
Request Parameters
Name | Type | Description |
---|---|---|
fromDateTime | DateTime | Starting date and time for this request. (Required) |
toDateTime | DateTime | End date and time for this request. (Required) |
detailLevel | Enumeration | Toggles the level of details for the calculation result. Examples (Optional, Default=ALL ) |
groupBy | Enumeration | This controls how the calculation details are grouped. Examples (Optional, Defaults to the natural grouping for the rates) |
billingPeriod | Boolean | A true or false flag. If the dates of the calculation represent an actual billing cycle, then you should set this to true . This will give you precise values for items like fixed charges. When it’s not set, or set to false , these charges will be prorated across the number of days in the calculation. Default is false . (Optional) |
scenarios | List of CalculationScenario | A list of the scenarios to calculate. See discussion of sharedScenario, above. |
sharedScenario | CalculationScenario | A single scenario, the values for which will be shared among all calculations. |
applyUtilityTax | Boolean | When true, the calculation attempts to apply a utility tax to the provided address. (Optional, Default = true when address provided, false otherwise) |
address | Address | Specifies the location in which to apply a utility tax. (Required if applyUtilityTax = true ) |
minimums | Boolean | This field enables enforcing minimum charges on this calculation. (Optional) |
excludeChargeClass | Comma Separated String | Specifies a charge class to exclude from the calculation results. Available options are TRANSMISSION , DISTRIBUTION , SUPPLY , TAX , CONTRACTED , USER_ADJUSTED , AFTER_TAX , and OTHER .(Optional) |
tariffEffectiveOn | DateTime | Use the version of the tariff that was active on the given date. By default the calculation uses the tariff version(s) effective between fromDateTime and toDateTime . (Optional) |
Examples
Example 1 - A Calculation with Multiple Tariffs
In this example, we do the most basic Mass Calculate possible – the cost of 1000 kWh calculated for two different tariffs.
Since we want to use 1000 kWh for both scenarios, notice how we use the sharedScenario
property to specify the usage:
Request
POST /rest/v1/ondemand/calculate/mass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"groupBy": "MONTH",
"detailLevel": "CHARGE_TYPE",
"billingPeriod": true,
"scenarios": [{
"scenarioName": "E-1",
"masterTariffId": 522
}, {
"scenarioName": "E-6-TOU",
"masterTariffId": 525
}, {
"scenarioName": "E-6-TOU-SmartRate",
"masterTariffId": 525,
"propertyInputs": [{
"keyName": "isSmartRateCustomer",
"dataValue": true
}]
}],
"sharedScenario": {
"propertyInputs": [{
"keyName": "consumption",
"dataValue": 1000
}]
}
}
Response
In the results, you’ll see that the scenarios
dictionary uses the scenarioName
that we provided in the request.
The results for each scenario are represented as Calculated Cost objects:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
{
"status": "success",
"count": 1,
"type": "MassCalculation",
"requestId": "7c9e7708-07d9-466f-879c-6ce8055b6eac",
"results": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"scenarios": {
"E-1": {
"masterTariffId": 522,
"tariffName": "Residential",
"totalCost": 249.13,
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"currency": "USD",
"summary": {
"subTotalCost": 249.13,
"taxCost": 0,
"totalCost": 249.13,
"adjustedTotalCost": 249.42,
"kWh": 1000,
"kW": 0
},
"accuracy": 1,
"items": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"quantityKey": "fixed",
"rateAmount": 0,
"itemQuantity": 0,
"cost": 0,
"chargeType": "FIXED_PRICE"
},
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"quantityKey": "consumption",
"rateAmount": 0.24942061,
"itemQuantity": 1000,
"cost": 249.42061,
"chargeType": "CONSUMPTION_BASED"
}
],
"assumptions": [
{
"keyName": "tariffId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "3258081"
},
{
"keyName": "territoryId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "3534",
"accuracy": 80
},
{
"keyName": "dailyMedicalAllowance",
"displayName": "Daily Medical Allowance ",
"description": "Residential customers on a medical allowance get additional quantities of energy at the lowest (baseline) price. The medical allowance is a daily value. ",
"dataType": "DECIMAL",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "0",
"accuracy": 80
},
{
"keyName": "hasCAEnergySurchargeExemption",
"displayName": "Has Energy Surcharge Exemption",
"description": "Exemptions for CA Energy Surcharge apply to the following:\r\n1. Federal Agencies\r\n2. American National Red Cross facilities\r\n3. Energy consumed on Indian reservations\r\n4. Foreign consular employees\r\n5. Federal Credit Unions",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "smartMeterOptOut",
"displayName": "Has Smart Meter Opt-Out",
"description": "Customers who elect to opt-out of receiving a smart meter and choose to retain a non-smart meter, are subject to the Smart Meter Opt-Out fees.\r\n\r\nSmart Meter Opt-Out Customers are subject to one-time, up-front fee and a recurring monthly fee ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "isSmartRateCustomer",
"displayName": "Is SmartRate Customer",
"description": "The residential SmartRate program is a voluntary rate supplement to the customer's \r\notherwise applicable rate schedule (OAS).\r\nThe customer will be billed for all regular charges applicable under the customer's OAS. \r\nAdditional charges (based on usage during SmartDay High-Price Periods) and \r\nSmartRate credits will be determined according to the rates specified in this schedule. The customer must have a SmartMeter system to participate in the residential \r\nSmartRate program",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "utilityEmployee",
"displayName": "Is Utility Employee",
"description": "Applicable to domestic service utility employees ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "powerChargeIndifferenceAdjustmentVintageYear",
"displayName": "Power Charge Indifference Adjustment Vintage Year ",
"description": "The adjustment (either a \r\ncharge or credit) is intended to ensure that customers that purchase electricity from \r\nnon-utility suppliers pay their share of cost for generation acquired prior to 2003",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
},
{
"keyName": "solarChoiceCustomerCategory",
"displayName": "Solar Choice Customer Category",
"description": "The customer is a solar choice customer taking service under Schedule E-GT. The customer will pay the applicable Program Charge based on the year service under this schedule was started. ",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
}
],
"calculatedCostId": "c792e7eb-1f2a-40e2-845a-40a00c2c7370"
},
"E-6-TOU": {
"masterTariffId": 525,
"tariffName": "Residential - Time of Use",
"totalCost": 339.42,
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"currency": "USD",
"summary": {
"subTotalCost": 339.42,
"taxCost": 0,
"totalCost": 339.42,
"adjustedTotalCost": 339.71,
"kWh": 1000,
"kW": 0
},
"accuracy": 1,
"items": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"quantityKey": "fixed",
"rateAmount": 0,
"itemQuantity": 0,
"cost": 0,
"chargeType": "FIXED_PRICE"
},
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"quantityKey": "consumption",
"rateAmount": 0.33971225,
"itemQuantity": 1000,
"cost": 339.7122546,
"chargeType": "CONSUMPTION_BASED"
}
],
"assumptions": [...],
"calculatedCostId": "9e9e1957-ac6c-4647-9027-dcc61284181b"
},
"E-6-TOU-SmartRate": {
"masterTariffId": 525,
"tariffName": "Residential - Time of Use",
"totalCost": 309.96,
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"currency": "USD",
"summary": {
"subTotalCost": 309.96,
"taxCost": 0,
"totalCost": 309.96,
"adjustedTotalCost": 310.25,
"kWh": 1000,
"kW": 0
},
"accuracy": 100,
"items": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"quantityKey": "fixed",
"rateAmount": 0,
"itemQuantity": 0,
"cost": 0,
"chargeType": "FIXED_PRICE"
},
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-11T00:00:00-07:00",
"quantityKey": "consumption",
"rateAmount": 0.3102515,
"itemQuantity": 1000,
"cost": 310.2515046,
"chargeType": "CONSUMPTION_BASED"
}
],
"assumptions": [...],
"calculatedCostId": "281a791b-ba04-4748-9a43-f46aa008bd4c"
}
}
}
]
}
Example 2 - Granular usage data
In this example, instead of providing usage inputs one at a time, we use a list of values. When dataSeries
is provided in an input, it must have a fromDateTime
and duration
(in milliseconds) to populate the date ranges to which each value in dataSeries
is associated. duration
refers to the interval size associated with each entry in dataSeries
. For instance, the duration below of 3600000 means that the usage values in dataSeries
correspond to 60-minute intervals starting from 2016-07-01T00:00:00-07:00.
Request
POST /rest/v1/ondemand/calculate/mass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"groupBy": "MONTH",
"detailLevel": "TOTAL",
"billingPeriod": true,
"scenarios": [{
"scenarioName": "E-1",
"masterTariffId": 522
}, {
"scenarioName": "E-6-TOU",
"masterTariffId": 525
}, {
"scenarioName": "E-6-TOU-SmartRate",
"masterTariffId": 525,
"propertyInputs": [{
"keyName": "isSmartRateCustomer",
"dataValue": true
}]
}],
"sharedScenario": {
"propertyInputs": [{
"keyName": "consumption",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"duration": 3600000,
"dataSeries": [1.58, 1.55, 1.58, 1.58, 1.59, 1.60, 1.61, 1.62, 1.63, 1.63, 1.64, 1.64, 1.66, 1.68, 1.70, 1.73, 1.75, 1.76, 1.78, 1.80, 1.80, 1.81, 1.81, 1.81, 1.84, 1.88, 1.91, 1.95, 1.97, 1.98, 2.00, 2.01, 2.02, 2.03, 2.04, 2.05, 2.06, 2.07, 2.08, 2.09, 2.09, 2.11, 2.12, 2.13, 2.13, 2.11, 2.09, 2.08, 2.07, 2.05, 2.03, 2.02, 2.01, 2.01, 2.01, 2.01, 2.02, 2.02, 2.03, 2.04, 2.02, 1.99, 1.96, 1.92, 1.90, 1.89, 1.88, 1.86, 1.85, 1.83, 1.82, 1.79, 1.77, 1.74, 1.71, 1.67, 1.65, 1.63, 1.61, 1.60, 1.58, 1.55, 1.53, 1.51, 1.51, 1.51, 1.52, 1.52, 1.54, 1.56, 1.58, 1.60, 1.60, 1.59, 1.58, 1.58, 1.58, 1.59, 1.59, 1.60, 1.61, 1.63, 1.65, 1.67, 1.67, 1.67, 1.67, 1.67, 1.69, 1.72, 1.74, 1.77, 1.78, 1.79, 1.79, 1.80, 1.80, 1.79, 1.79, 1.78, 1.81, 1.85, 1.89, 1.94, 1.96, 1.97, 1.98, 2.00, 2.01, 2.02, 2.04, 2.05, 2.06, 2.06, 2.07, 2.07, 2.08, 2.09, 2.11, 2.12, 2.12, 2.12, 2.12, 2.12, 2.12, 2.11, 2.09, 2.08, 2.08, 2.08, 2.08, 2.08, 2.07, 2.07, 2.06, 2.05, 2.03, 2.00, 1.97, 1.94, 1.91, 1.90, 1.88, 1.86, 1.84, 1.83, 1.82, 1.81, 1.78, 1.74, 1.70, 1.66, 1.65, 1.64, 1.64, 1.63, 1.61, 1.57, 1.54, 1.51, 1.51, 1.51, 1.52, 1.52, 1.54, 1.56, 1.58, 1.60, 1.60, 1.59, 1.58, 1.57, 1.54, 1.54, 1.54, 1.54, 1.55, 1.56, 1.56, 1.57, 1.58, 1.57, 1.57, 1.57, 1.58, 1.61, 1.63, 1.65, 1.68, 1.71, 1.73, 1.76, 1.78, 1.79, 1.80, 1.81, 1.83, 1.85, 1.88, 1.90, 1.91, 1.92, 1.92, 1.93, 1.93, 1.93, 1.92, 1.91, 1.92, 1.93, 1.93, 1.94, 1.95, 1.97, 1.99, 2.01, 2.01, 2.00, 1.99, 1.98, 1.97, 1.97, 1.96, 1.96, 1.96, 1.95, 1.95, 1.94, 1.95, 1.96, 1.97, 1.98, 1.97, 1.96, 1.94, 1.92, 1.90, 1.89, 1.87, 1.86, 1.84, 1.81, 1.79, 1.76, 1.74, 1.72, 1.71, 1.69, 1.66, 1.64, 1.61, 1.58, 1.56, 1.54, 1.52, 1.49, 1.48, 1.49, 1.49, 1.50, 1.52, 1.53, 1.55, 1.57, 1.57, 1.56, 1.55, 1.53, 1.51, 1.51, 1.52, 1.52, 1.53, 1.53, 1.54, 1.55, 1.55, 1.55, 1.55, 1.55, 1.56, 1.58, 1.61, 1.62, 1.65, 1.67, 1.70, 1.73, 1.74, 1.74, 1.75, 1.76, 1.77, 1.80, 1.82, 1.85, 1.86, 1.86, 1.86, 1.86, 1.86, 1.86, 1.85, 1.85, 1.85, 1.86, 1.86, 1.87, 1.88, 1.90, 1.91, 1.93, 1.93, 1.92, 1.91, 1.90, 1.90, 1.89, 1.89, 1.88, 1.88, 1.88, 1.88, 1.87, 1.88, 1.90, 1.91, 1.93, 1.92, 1.90, 1.88, 1.86, 1.85, 1.84, 1.83, 1.82, 1.80, 1.78, 1.76, 1.73, 1.71, 1.69, 1.68, 1.66, 1.64, 1.61, 1.58, 1.55, 1.52, 1.50, 1.48, 1.46, 1.46, 1.46, 1.47, 1.47, 1.49, 1.51, 1.53, 1.55, 1.54, 1.53, 1.52, 1.50, 1.48, 1.48, 1.49, 1.50, 1.51, 1.51, 1.52, 1.52, 1.52, 1.52, 1.52, 1.52, 1.54, 1.56, 1.58, 1.60, 1.62, 1.64, 1.66, 1.69, 1.70, 1.70, 1.70, 1.70, 1.72, 1.74, 1.77, 1.79, 1.80, 1.80, 1.80, 1.80, 1.80, 1.79, 1.79, 1.78, 1.78, 1.79, 1.79, 1.80, 1.81, 1.82, 1.83, 1.85, 1.85, 1.84, 1.83, 1.83, 1.82, 1.82, 1.81, 1.80, 1.80, 1.80, 1.80, 1.80, 1.82, 1.83, 1.85, 1.87, 1.86, 1.85, 1.83, 1.81, 1.80, 1.79, 1.79, 1.78, 1.76, 1.74, 1.73, 1.71, 1.69, 1.67, 1.65, 1.63, 1.61, 1.57, 1.54, 1.51, 1.49, 1.47, 1.45, 1.43, 1.43, 1.44, 1.44, 1.45, 1.46, 1.48, 1.50, 1.52, 1.52, 1.51, 1.49, 1.49, 1.52, 1.53, 1.53, 1.54, 1.55, 1.55, 1.56, 1.56, 1.57, 1.57, 1.57, 1.57, 1.58, 1.60, 1.62, 1.64, 1.66, 1.68, 1.70, 1.73, 1.73, 1.73, 1.74, 1.74, 1.76, 1.78, 1.80, 1.83, 1.84, 1.84, 1.84, 1.85, 1.84, 1.84, 1.83, 1.83, 1.83, 1.83, 1.84, 1.85, 1.86, 1.86, 1.88, 1.89, 1.89, 1.88, 1.87, 1.86, 1.86, 1.85, 1.85, 1.84, 1.84, 1.84, 1.84, 1.84, 1.85, 1.87, 1.88, 1.90, 1.89, 1.88, 1.86, 1.84, 1.83, 1.82, 1.82, 1.81, 1.79, 1.77, 1.75, 1.73, 1.71, 1.69, 1.68, 1.66, 1.63, 1.60, 1.57, 1.55, 1.52, 1.50, 1.48, 1.46, 1.46, 1.47, 1.48, 1.48, 1.50, 1.52, 1.54, 1.55, 1.56, 1.54, 1.53, 1.54, 1.57, 1.57, 1.58, 1.58, 1.59, 1.59, 1.60, 1.60, 1.61, 1.61, 1.61, 1.61, 1.62, 1.64, 1.66, 1.68, 1.70, 1.72, 1.74, 1.76, 1.76, 1.77, 1.77, 1.78, 1.79, 1.82, 1.84, 1.86, 1.88, 1.88, 1.88, 1.89, 1.89, 1.88, 1.88, 1.88, 1.88, 1.88, 1.88, 1.89, 1.90, 1.91, 1.92, 1.93, 1.93, 1.91, 1.91, 1.90, 1.89, 1.89, 1.89, 1.88, 1.88, 1.88, 1.88, 1.88, 1.89, 1.90, 1.92, 1.93, 1.92, 1.91, 1.89, 1.87, 1.86, 1.85, 1.85, 1.84, 1.82, 1.80, 1.78, 1.76, 1.74, 1.72, 1.70, 1.68, 1.66, 1.63, 1.61, 1.58, 1.56, 1.54, 1.52, 1.49, 1.49, 1.50, 1.51, 1.52, 1.53, 1.55, 1.57, 1.59, 1.59, 1.58, 1.58, 1.57, 1.58, 1.58, 1.58, 1.58, 1.59, 1.60, 1.62, 1.63, 1.64, 1.64, 1.63, 1.63, 1.64, 1.67, 1.70, 1.73, 1.74, 1.76, 1.77, 1.78, 1.79, 1.79, 1.78, 1.78, 1.80, 1.83, 1.86, 1.90, 1.91, 1.92, 1.92, 1.93, 1.93, 1.94, 1.94, 1.95, 1.96, 1.97, 1.98, 1.99, 1.99, 2.01, 2.01, 2.02, 2.02, 2.01, 2.01, 2.00, 2.00, 1.73, 1.74, 1.76, 1.77, 1.78, 1.79, 1.79, 1.78, 1.78, 1.80, 1.83, 1.86, 1.90, 1.91, 1.92, 1.92, 1.93, 1.93, 1.94, 1.94, 1.95, 1.96, 1.97, 1.98, 1.99, 1.99, 2.01, 2.01, 2.02, 2.02, 2.01, 2.01, 2.00, 2.00, 2.02, 2.01, 2.01, 2.00, 2.00, 1.73, 1.74, 1.76, 1.77, 1.78, 1.79, 1.79, 1.78, 1.78, 1.80, 1.83, 1.86, 1.90, 1.91, 1.92, 1.92, 1.93, 1.93, 1.94, 1.94, 1.95, 1.96, 1.97, 1.98, 1.99, 1.99, 2.01, 2.01, 2.02, 2.02, 2.01, 2.01]
}]
}
}
Response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
{
"status": "success",
"count": 1,
"type": "MassCalculation",
"requestId": "93fae983-977b-43a4-ba83-616aeb5730a5",
"results": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"scenarios": {
"E-1": {
"masterTariffId": 522,
"tariffName": "Residential",
"totalCost": 389.03,
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"currency": "USD",
"summary": {
"subTotalCost": 389.03,
"taxCost": 0,
"totalCost": 389.03,
"adjustedTotalCost": 389.44,
"kWh": 1401.93,
"kW": 0
},
"accuracy": 1,
"items": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"quantityKey": "consumption",
"rateAmount": 0.27778495,
"itemQuantity": 1401.93,
"cost": 389.43505369
}
],
"assumptions": [
{
"keyName": "territoryId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "3534",
"accuracy": 80
},
{
"keyName": "dailyMedicalAllowance",
"displayName": "Daily Medical Allowance ",
"description": "Residential customers on a medical allowance get additional quantities of energy at the lowest (baseline) price. The medical allowance is a daily value. ",
"dataType": "DECIMAL",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "0",
"accuracy": 80
},
{
"keyName": "hasCAEnergySurchargeExemption",
"displayName": "Has Energy Surcharge Exemption",
"description": "Exemptions for CA Energy Surcharge apply to the following:\r\n1. Federal Agencies\r\n2. American National Red Cross facilities\r\n3. Energy consumed on Indian reservations\r\n4. Foreign consular employees\r\n5. Federal Credit Unions",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "smartMeterOptOut",
"displayName": "Has Smart Meter Opt-Out",
"description": "Customers who elect to opt-out of receiving a smart meter and choose to retain a non-smart meter, are subject to the Smart Meter Opt-Out fees.\r\n\r\nSmart Meter Opt-Out Customers are subject to one-time, up-front fee and a recurring monthly fee ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "isSmartRateCustomer",
"displayName": "Is SmartRate Customer",
"description": "The residential SmartRate program is a voluntary rate supplement to the customer's \r\notherwise applicable rate schedule (OAS).\r\nThe customer will be billed for all regular charges applicable under the customer's OAS. \r\nAdditional charges (based on usage during SmartDay High-Price Periods) and \r\nSmartRate credits will be determined according to the rates specified in this schedule. The customer must have a SmartMeter system to participate in the residential \r\nSmartRate program",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "utilityEmployee",
"displayName": "Is Utility Employee",
"description": "Applicable to domestic service utility employees ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "powerChargeIndifferenceAdjustmentVintageYear",
"displayName": "Power Charge Indifference Adjustment Vintage Year ",
"description": "The adjustment (either a \r\ncharge or credit) is intended to ensure that customers that purchase electricity from \r\nnon-utility suppliers pay their share of cost for generation acquired prior to 2003",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
},
{
"keyName": "solarChoiceCustomerCategory",
"displayName": "Solar Choice Customer Category",
"description": "The customer is a solar choice customer taking service under Schedule E-GT. The customer will pay the applicable Program Charge based on the year service under this schedule was started. ",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
},
{
"keyName": "tariffId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-01T00:00:00-07:00",
"dataValue": "3258081",
"accuracy": 100
},
{
"keyName": "tariffId",
"dataType": "INTEGER",
"fromDateTime": "2016-08-01T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "3261115",
"accuracy": 100
}
],
"calculatedCostId": "6e6df89a-9355-4758-9402-6db245fd6894"
},
"E-6-TOU": {
"masterTariffId": 525,
"tariffName": "Residential - Time of Use",
"totalCost": 493.87,
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"currency": "USD",
"summary": {
"subTotalCost": 493.87,
"taxCost": 0,
"totalCost": 493.87,
"adjustedTotalCost": 494.28,
"kWh": 1401.93,
"kW": 0
},
"accuracy": 1,
"items": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"quantityKey": "consumption",
"rateAmount": 0.35256931,
"itemQuantity": 1401.93,
"cost": 494.27749715
}
],
"assumptions": [
{
"keyName": "territoryId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "3535",
"accuracy": 80
},
{
"keyName": "dailyMedicalAllowance",
"displayName": "Daily Medical Allowance ",
"description": "Residential customers on a medical allowance get additional quantities of energy at the lowest (baseline) price. The medical allowance is a daily value. ",
"dataType": "DECIMAL",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "0",
"accuracy": 80
},
{
"keyName": "hasCAEnergySurchargeExemption",
"displayName": "Has Energy Surcharge Exemption",
"description": "Exemptions for CA Energy Surcharge apply to the following:\r\n1. Federal Agencies\r\n2. American National Red Cross facilities\r\n3. Energy consumed on Indian reservations\r\n4. Foreign consular employees\r\n5. Federal Credit Unions",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "smartMeterOptOut",
"displayName": "Has Smart Meter Opt-Out",
"description": "Customers who elect to opt-out of receiving a smart meter and choose to retain a non-smart meter, are subject to the Smart Meter Opt-Out fees.\r\n\r\nSmart Meter Opt-Out Customers are subject to one-time, up-front fee and a recurring monthly fee ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "isSmartRateCustomer",
"displayName": "Is SmartRate Customer",
"description": "The residential SmartRate program is a voluntary rate supplement to the customer's \r\notherwise applicable rate schedule (OAS).\r\nThe customer will be billed for all regular charges applicable under the customer's OAS. \r\nAdditional charges (based on usage during SmartDay High-Price Periods) and \r\nSmartRate credits will be determined according to the rates specified in this schedule. The customer must have a SmartMeter system to participate in the residential \r\nSmartRate program",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "utilityEmployee",
"displayName": "Is Utility Employee",
"description": "Applicable to domestic service utility employees ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "powerChargeIndifferenceAdjustmentVintageYear",
"displayName": "Power Charge Indifference Adjustment Vintage Year ",
"description": "The adjustment (either a \r\ncharge or credit) is intended to ensure that customers that purchase electricity from \r\nnon-utility suppliers pay their share of cost for generation acquired prior to 2003",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
},
{
"keyName": "solarChoiceCustomerCategory",
"displayName": "Solar Choice Customer Category",
"description": "The customer is a solar choice customer taking service under Schedule E-GT. The customer will pay the applicable Program Charge based on the year service under this schedule was started. ",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
},
{
"keyName": "tariffId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-01T00:00:00-07:00",
"dataValue": "3258138",
"accuracy": 100
},
{
"keyName": "tariffId",
"dataType": "INTEGER",
"fromDateTime": "2016-08-01T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "3261119",
"accuracy": 100
}
],
"calculatedCostId": "e2034a47-bad4-4dd6-ab03-02bcce64fcbe"
},
"E-6-TOU-SmartRate": {
"masterTariffId": 525,
"tariffName": "Residential - Time of Use",
"totalCost": 457.98,
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"currency": "USD",
"summary": {
"subTotalCost": 457.98,
"taxCost": 0,
"totalCost": 457.98,
"adjustedTotalCost": 458.39,
"kWh": 1401.93,
"kW": 0
},
"accuracy": 1,
"items": [
{
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"quantityKey": "consumption",
"rateAmount": 0.32696827,
"itemQuantity": 1401.93,
"cost": 458.38663034
}
],
"assumptions": [
{
"keyName": "territoryId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "3535",
"accuracy": 80
},
{
"keyName": "dailyMedicalAllowance",
"displayName": "Daily Medical Allowance ",
"description": "Residential customers on a medical allowance get additional quantities of energy at the lowest (baseline) price. The medical allowance is a daily value. ",
"dataType": "DECIMAL",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "0",
"accuracy": 80
},
{
"keyName": "hasCAEnergySurchargeExemption",
"displayName": "Has Energy Surcharge Exemption",
"description": "Exemptions for CA Energy Surcharge apply to the following:\r\n1. Federal Agencies\r\n2. American National Red Cross facilities\r\n3. Energy consumed on Indian reservations\r\n4. Foreign consular employees\r\n5. Federal Credit Unions",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "smartMeterOptOut",
"displayName": "Has Smart Meter Opt-Out",
"description": "Customers who elect to opt-out of receiving a smart meter and choose to retain a non-smart meter, are subject to the Smart Meter Opt-Out fees.\r\n\r\nSmart Meter Opt-Out Customers are subject to one-time, up-front fee and a recurring monthly fee ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "utilityEmployee",
"displayName": "Is Utility Employee",
"description": "Applicable to domestic service utility employees ",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "false",
"accuracy": 80
},
{
"keyName": "powerChargeIndifferenceAdjustmentVintageYear",
"displayName": "Power Charge Indifference Adjustment Vintage Year ",
"description": "The adjustment (either a \r\ncharge or credit) is intended to ensure that customers that purchase electricity from \r\nnon-utility suppliers pay their share of cost for generation acquired prior to 2003",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
},
{
"keyName": "solarChoiceCustomerCategory",
"displayName": "Solar Choice Customer Category",
"description": "The customer is a solar choice customer taking service under Schedule E-GT. The customer will pay the applicable Program Charge based on the year service under this schedule was started. ",
"dataType": "STRING",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "None",
"accuracy": 80
},
{
"keyName": "tariffId",
"dataType": "INTEGER",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-01T00:00:00-07:00",
"dataValue": "3258138",
"accuracy": 100
},
{
"keyName": "tariffId",
"dataType": "INTEGER",
"fromDateTime": "2016-08-01T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "3261119",
"accuracy": 100
},
{
"keyName": "isSmartRateCustomer",
"displayName": "Is SmartRate Customer",
"description": "The residential SmartRate program is a voluntary rate supplement to the customer's \r\notherwise applicable rate schedule (OAS).\r\nThe customer will be billed for all regular charges applicable under the customer's OAS. \r\nAdditional charges (based on usage during SmartDay High-Price Periods) and \r\nSmartRate credits will be determined according to the rates specified in this schedule. The customer must have a SmartMeter system to participate in the residential \r\nSmartRate program",
"dataType": "BOOLEAN",
"fromDateTime": "2016-07-13T00:00:00-07:00",
"toDateTime": "2016-08-15T00:00:00-07:00",
"dataValue": "true",
"accuracy": 100
}
],
"calculatedCostId": "4d8a6a6f-9bdb-4db3-80fd-8559030296db"
}
}
}
]
}