Contracted Rates
Model third-party supply charges in deregulated markets by passing contracted rates in calculation rateInputs.
Use contracted rates when customers buy energy supply separately from utility delivery service in deregulated markets.
Understand contracted rates
Contracted rates are useful when customers are located in deregulated markets that have separate rate structures for energy supply versus transmission and delivery services. The term "contracted rate" refers to any situation where a customer's electricity bill is divided between two providers: one for the energy itself, called the supply rate, and another for the right to use the transmission and distribution system to deliver that energy, called the transmission and distribution or T&D rate.
Typically, customers in these markets can choose from many different providers for their energy supply, but they have no choice for delivery services. The Arcadia Signal calculation APIs support this situation. The rates for energy supply can be passed into the calculator as separate rate inputs and will be used to replace some or all of the tariff's energy supply components.
Identify tariffs with contracted rates
How do you know if your customer is on a tariff with contracted rates, and which rates are contractable? You can identify tariffs with contracted rates by using the hasContractedRates parameter when retrieving a list of tariffs. Rates with a chargeClass of CONTRACTED are eligible for replacement by third-party suppliers.
Here's an example of retrieving tariffs with contracted rates in New York City:
GET /rest/public/tariffs/?zipCode=10001&country=US&serviceTypes=ELECTRICITY&customerClasses=GENERAL&tariffTypes=ALTERNATIVE&effectiveOn=2017-11-01&populateRates=true&hasContractedRates=trueThe response includes rates eligible for contracted replacement. This snippet shows contracted rates returned for ConEd's Small General (EL2) tariff:
{
"tariffRateId": 17827306,
"tariffId": 3282860,
"tariffSequenceNumber": 9,
"rateGroupName": "Merchant Function Charge",
"rateName": "Merchant Function Charge",
"fromDateTime": "2017-04-01T00:00:00-04:00",
"toDateTime": null,
"chargeType": "CONSUMPTION_BASED",
"chargeClass": "SUPPLY,CONTRACTED",
"chargePeriod": "MONTHLY",
"variableRateKey": "2252MerchantFunctionChargeSC2",
"rateBands": [
{
"tariffRateBandId": 11560550,
"tariffRateId": 17827306,
"rateSequenceNumber": 1,
"hasConsumptionLimit": false,
"hasDemandLimit": false,
"hasPropertyLimit": false,
"rateAmount": 0,
"rateUnit": "COST_PER_UNIT",
"isCredit": false,
"prevUpperLimit": null
}
]
},
{
"tariffRateId": 17827307,
"tariffId": 3282860,
"tariffSequenceNumber": 10,
"rateGroupName": "Monthly Adjustment Clause",
"rateName": "Monthly Adjustment Clause",
"fromDateTime": "2017-04-01T00:00:00-04:00",
"toDateTime": null,
"chargeType": "CONSUMPTION_BASED",
"chargeClass": "DISTRIBUTION",
"chargePeriod": "MONTHLY",
"variableRateKey": "MonthlyAdjustmentClause2252",
"rateBands": [
{
"tariffRateBandId": 11560551,
"tariffRateId": 17827307,
"rateSequenceNumber": 1,
"hasConsumptionLimit": false,
"hasDemandLimit": false,
"hasPropertyLimit": false,
"rateAmount": 0,
"rateUnit": "COST_PER_UNIT",
"isCredit": false,
"prevUpperLimit": null
}
]
},
{
"tariffRateId": 17827308,
"tariffId": 3282860,
"tariffSequenceNumber": 11,
"rateGroupName": "Ancillary Service Charge",
"rateName": "Ancillary Service Charge",
"fromDateTime": "2017-04-01T00:00:00-04:00",
"toDateTime": null,
"chargeType": "CONSUMPTION_BASED",
"chargeClass": "SUPPLY,CONTRACTED",
"chargePeriod": "MONTHLY",
"variableRateKey": "ancillaryServiceCharge",
"rateBands": [
{
"tariffRateBandId": 11560552,
"tariffRateId": 17827308,
"rateSequenceNumber": 1,
"hasConsumptionLimit": false,
"hasDemandLimit": false,
"hasPropertyLimit": false,
"rateAmount": 0,
"rateUnit": "COST_PER_UNIT",
"isCredit": false,
"prevUpperLimit": null
}
]
}Set a contracted rate on a calculation
To include contracted rates in your calculation, pass those rates as rate inputs with the chargeClass set to "CONTRACTED". This tells the calculation engine to replace all rates with a charge class of CONTRACTED with the rate provided in the rate input. In this example, we're setting a contracted rate of $0.05/kWh for a calculation.
POST /rest/v1/ondemand/calculate/Use the following request body:
{
"fromDateTime": "2018-04-03T00:00:00-04:00",
"toDateTime": "2018-05-02T00:00:00-04:00",
"masterTariffId": "122972",
"groupBy": "MONTH",
"detailLevel": "CHARGE_TYPE_AND_TOU",
"billingPeriod": true,
"rateInputs": [
{
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"chargeType": "CONSUMPTION_BASED",
"rateName": "Contracted Rate",
"transactionType": "NET",
"rateBands": [
{
"hasPropertyLimit": false,
"rateAmount": "0.05",
"rateUnit": "COST_PER_UNIT",
"hasConsumptionLimit": false,
"hasDemandLimit": false
}
]
}
],
"propertyInputs": [
{
"keyName": "consumption",
"fromDateTime": "2018-04-03T00:00:00-04:00",
"duration": 900000,
"dataSeries": [
15.43451690673828,
13.85958480834961,
10.963741302490234,
18.40724182128906,
14.999061584472656,
... // edited for length
18.467796325683594,
14.12566375732422,
12.47233581542969,
11.939910888671875,
10.56745147705078,
15.05100631713867,
9.197296142578125
],
"unit": "kWh"
}
]
}The key element here is the rateInputs section where you can pass in one or more contracted rates. Let's break down the request:
- Even though we're setting a special rate for the customer's supply, they still have to pay the Transmission and Distribution (T&D) costs to deliver the energy to their home. This customer is residential in Pennsylvania, so they're on the "PD" tariff in PECO territory, which has a
masterTariffIdof122972. - We want to replace all of this customer's kWh charges with our special $0.05 per kWh rate. To do that, we specify in our contracted rate that it only applies to a
chargeTypeofCONSUMPTION_BASED, which means it applies only to the customer's energy consumption. There are many other charge types, includingFIXED_PRICE(like service charges),DEMAND_BASED(kW charges), orQUANTITY(per meter or per lamp for certain tariffs). You can read more about all the different tariff and tariff rate parameters on the tariff page. - We have set
transactionType = NET, meaning that if the customer sends kWh to the grid, they will be credited for kWh at the same rate they buy kWh. You also have the option to indicate that the customer gets no compensation (transactionType=BUY) when sending kWh to the grid.
Advanced contracted-rate examples
Use these examples when a contracted supply agreement needs more than one flat replacement rate or explicit interval-specific pricing.
Model contracted rates with fixed blocks, indexed pricing, time-of-use blocks, and sellback provisions.
Apply contracted rates to explicit time intervals using fromDateTime and toDateTime values.
Related guides
Include contracted supply rates when matching bills in deregulated markets.
Return to the rates and charges workflow hub.
Updated 16 days ago
