Contracted Rate Intervals
Apply contracted rates to explicit time intervals by adding fromDateTime and toDateTime values to each contracted rate object.
Use interval-specific contracted rates when a supply price changes by hour, multi-hour period, or day.
Understand contracted rate intervals
Use contracted rate intervals when the contracted supply price changes across specific hours, multi-hour periods, or days. Each interval is represented as its own rate object in rateInputs.
Apply full timestamps with UTC offset values so the contracted rate intervals align with the calculation context.
Set interval-specific contracted rates
The following request shows the pattern for applying different contracted rates to consecutive hourly intervals. The same structure can be extended to cover a full day, multiple days, or longer multi-hour periods.
{
"fromDateTime": "2026-01-01T00:00:00-05:00",
"toDateTime": "2026-01-01T03:00:00-05:00",
"detailLevel": "RATE",
"fields": "ext",
"groupBy": "HOUR",
"billingPeriod": false,
"bundleRates": false,
"minimums": false,
"propertyInputs": [
{
"keyName": "baselineType",
"dataValue": "typicalElectricity",
"operator": "+",
"dataFactor": 1
},
{
"keyName": "buildingId",
"dataValue": "MEDIUM_COMMERCIAL"
}
],
"masterTariffId": 122972,
"rateInputs": [
{
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"chargeType": "CONSUMPTION_BASED",
"rateName": "Hourly Interval 1",
"transactionType": "BUY",
"fromDateTime": "2026-01-01T00:00:00-05:00",
"toDateTime": "2026-01-01T01:00:00-05:00",
"rateBands": [
{
"hasPropertyLimit": false,
"rateAmount": "0.010000",
"rateUnit": "COST_PER_UNIT",
"hasConsumptionLimit": false,
"hasDemandLimit": false
}
]
},
{
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"chargeType": "CONSUMPTION_BASED",
"rateName": "Hourly Interval 2",
"transactionType": "BUY",
"fromDateTime": "2026-01-01T01:00:00-05:00",
"toDateTime": "2026-01-01T02:00:00-05:00",
"rateBands": [
{
"hasPropertyLimit": false,
"rateAmount": "0.015000",
"rateUnit": "COST_PER_UNIT",
"hasConsumptionLimit": false,
"hasDemandLimit": false
}
]
},
{
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"chargeType": "CONSUMPTION_BASED",
"rateName": "Hourly Interval 3",
"transactionType": "BUY",
"fromDateTime": "2026-01-01T02:00:00-05:00",
"toDateTime": "2026-01-01T03:00:00-05:00",
"rateBands": [
{
"hasPropertyLimit": false,
"rateAmount": "0.020000",
"rateUnit": "COST_PER_UNIT",
"hasConsumptionLimit": false,
"hasDemandLimit": false
}
]
}
]
}Extend the interval pattern
To model a longer interval schedule:
- Set the top-level
fromDateTimeandtoDateTimeto cover the full calculation range. - Add one contracted rate object for each interval that needs a distinct rate.
- Set each rate object's
fromDateTimeandtoDateTimeto the interval when that rate applies. - Use full timestamps with UTC offsets for every interval.
- Keep
chargeClassset toCONTRACTEDso the calculation replaces contracted tariff components with your supplied rates.
Related guides
Updated 1 day ago
