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"
        }
      }
    }
  ]
}