What is a System Peak Demand charge?

Some utilities, most notably those in Texas and the PJM ISO, have a special type of Demand Charge that is not based on when the customer uses their peak power (as “regular” Demand Charges are), but when the grid itself experiences a peak. This class of charges are usually called “System Peak” charges, and the utility often uses the term “System Peak Demand” for the customer’s usage during these specifically designated times of system-wide peak usage.

The customer’s demand during the “System Peak” intervals is calculated once for a specific year. Once calculated, the System Peak Demand Charge for the following year is determined using this calculated demand value.

Let’s illustrate with a real-world example used by Oncor in Texas. Every year ERCOT (the Texas ISO) determined the peak 15 minute interval on the Texas Grid in each of the four summer months. These four Coincident Peak intervals (known as “4CP” events in industry parlance) are published retroactively. In November of 2017 ERCOT published the following:

Month Peak Interval Demand
June 6/23 4:30-4:45 510 kW
July 7/28 4:45-5:00 510 kW
August 8/16 4:45-5:00 520 kW
September 9/20 4:30-4:45 500 kW

The utility calculates the customer’s average demand values for the four intervals identified above to determine the customer’s 4 CP “System Peak Demand” value.

(510 + 510 + 520 + 500)/4 = 510 kW

Then for every bill in 2018, the customer will be charged for their 4 CP Demand set in 2017.

510 @ $3.667418 = $1870.38

How do you know your Tariff has System Peak rates?

When you retrieve a tariff from the Genability Tariff API ( with all its properties by using populateProperties=true), you can identify whether a rate based on the sites share of System Peak Demand is included. If there is one, you will find a property with a property type of RATE_CRITERIA and with a family of systemDemand. Here’s an example:

GET /rest/public/tariffs/3153598?populateProperties=true
1
2
3
4
5
6
7
8
9
10
11
12
{
    "keyName": "4CPDemand2288",
    "quantityKey": "4CPDemand2288",
    "displayName": "4 Coincident Peak Demand",
    "family": "systemDemand",
    "keyspace": "tariff",
    "description": "The average of the 4 Coincident Peaks as determined by ERCOT in the previous summer.",
    "dataType": "DECIMAL",
    "propertyTypes": "RATE_CRITERIA",
    "operator": null,
    "isDefault": false
},

How do you pass a System Peak value to the calculator?

The site’s System Peak Demand quantity is nearly always included explicitly on the customer bill, and this is the most straight-forward and accurate way for you to include the correct System Peak Demand in your calculations. You pass this System Peak Demand value just as you would any other calculation input. Here’s an example of a calculation call that passes a System Peak Demand of 100 kW along with a monthly consumption amount of 2000 kWh:

POST /rest/v1/ondemand/calculate
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "masterTariffId" : 3153598,
  "fromDateTime" : "2017-07-01",
  "toDateTime" : "2017-08-01",
  "minimums" : "true",
  "detailLevel" : "RATE",
  "groupBy" : "MONTH",
  "billingPeriod" : "false",
  "propertyInputs" : [{
    "keyName" : "consumption",
    "dataValue" : "2000"
  },
  {
    "keyName" : "4CPDemand2288",
    "dataValue" : "510"}
  ]
}

It’s important to pass a value in for System Peak Demand charges. The calculate API will default to 0 which is typically not suitable (unlike almost all other default values).

How do you find when a System Peak occurred?

When a utility publishes their System Peak events (dates and times) Genability enters it into our database. Note that utilities usually publish these several months AFTER the event actually occurred. To determine the specific intervals that are used in calculating System Peak Demand, you can use the System Peak Demand property to retrieve when the System Peak Demand was set. It starts with retrieving the tariff property.

GET /rest/public/properties/4CPDemand2288?fields=ext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    "status": "success",
    "count": 1,
    "type": "PropertyKey",
    "results": [
        {
            "keyName": "4CPDemand2288",
            "displayName": "4 Coincident Peak Demand",
            "family": "systemDemand",
            "keyspace": "tariff",
            "description": "The average of the 4 Coincident Peaks as determined by ERCOT in the previous summer.",
            "dataType": "DECIMAL",
            "quantityUnit": "kW",
            "lookbackIntervalQuantity": 15,
            "lookbackPeriod": "",
            "lookbackTimeOfUseId": 4894,
            "entityId": 2288,
            "entityType": "LSE",
            "privacy": "PUBLIC"
        }
    ]
}

We capture the System Peak events as a Time of Use definition that typically includes a calendar of specific dates and times. The lookbackTimeofUseId on the System Peak’s property indicates the unique ID (the timeOfUseId) of this Time of Use definition. Grab this timeOfUseId and use it to retrieve the TOU definition from the Time of Use API.

GET /rest/public/timeofuses/4894
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
    "status": "success",
    "count": 1,
    "type": "TimeOfUse",
    "results": [
        {
            "touId": 4894,
            "touGroupId": 1,
            "lseId": 2288,
            "touName": "4 Coincident Peak Hours",
            "calendarId": 637,
            "isDynamic": true,
            "season": null,
            "touType": "CRITICAL_PEAK",
            "touPeriods": []
        }
    ]
}

As you can see above, this TOU definition points to a calendar, which in this case has calendarId of 637. You use the calendarId to retrieve the specific System Peak Demand intervals from the Calendar API. The example below is for all event in calendar year 2016.

GET /rest/public/calendars/dates?calendarId=637&fromDateTime=2017-01-01&toDateTime=2018-01-01
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
{
    "status": "success",
    "count": 4,
    "type": "CalendarDate",
    "results": [
        {
            "eventDateId": 58705,
            "subKey": null,
            "eventName": "4 CP Hours",
            "startDateTime": "2017-06-23T16:30:00+00:00",
            "endDateTime": "2017-06-23T16:45:00+00:00",
            "calendarEventId": 348,
            "lseId": 2288
        },
        {
            "eventDateId": 58706,
            "subKey": null,
            "eventName": "4 CP Hours",
            "startDateTime": "2017-07-28T16:45:00+00:00",
            "endDateTime": "2017-07-28T17:00:00+00:00",
            "calendarEventId": 348,
            "lseId": 2288
        },
        {
            "eventDateId": 58707,
            "subKey": null,
            "eventName": "4 CP Hours",
            "startDateTime": "2017-08-16T16:45:00+00:00",
            "endDateTime": "2017-08-16T17:00:00+00:00",
            "calendarEventId": 348,
            "lseId": 2288
        },
        {
            "eventDateId": 58708,
            "subKey": null,
            "eventName": "4 CP Hours",
            "startDateTime": "2017-09-20T16:30:00+00:00",
            "endDateTime": "2017-09-20T16:45:00+00:00",
            "calendarEventId": 348,
            "lseId": 2288
        }
    ],
    "pageCount": 25,
    "pageStart": 0
}

How can you calculate a System Peak Demand value from meter data?

If you have access to revenue grade interval data for the site, you can use the event intervals you found in the previous step to determine the System Peak Demand value to pass in to the calculator. You should also look at the properties lookbackIntervalQuantity (which you queried above) which indicates the length of the demand interval, in minutes. This will typically be 15 minutes, 30 minutes or an hour. Take care, because the system peak demand interval can be different from your meter data intervals and the other demand intervals on the bill.

To better understand how, let’s review example meter data for Peak Load Share in the PJM ISO. In this case we have a System Peak Demand whose peaks are measured in 60 minutes increments and meter data measured in kWh at the 15-minute level.

Step 1. Retrieve meter data for the System Peak Hour

Using the methodology described above, find the System Peak intervals for the appropriate year (in this case, PJM ISO in 2017):

Date Start End kWh
6/12 17:00 17:15 140
6/12 17:15 17:30 135
6/12 17:30 17:45 130
6/12 17:45 18:00 115
6/13 16:00 16:15 115
6/13 16:15 16:30 120
6/13 16:30 16:45 120
6/13 16:45 17:00 115
7/19 17:00 17:15 120
7/19 17:15 17:30 130
7/19 17:30 17:45 130
7/19 17:45 18:00 140
7/20 16:00 16:15 110
7/20 16:15 16:30 120
7/20 16:30 16:45 130
7/20 16:45 17:00 120
7/21 16:00 16:15 130
7/21 16:15 16:30 130
7/21 16:30 16:45 125
7/21 16:45 17:00 125

Step 2. Convert kWh to kW

Divide your interval length in minutes by 60 to calculate the multiplier for converting kWh to kW. For 15 minutes intervals 60/15 = 4.

Date Start End kW
6/12 17:00 17:15 560
6/12 17:15 17:30 540
6/12 17:30 17:45 520
6/12 17:45 18:00 460
6/13 16:00 16:15 460
6/13 16:15 16:30 480
6/13 16:30 16:45 480
6/13 16:45 17:00 460
7/19 17:00 17:15 480
7/19 17:15 17:30 520
7/19 17:30 17:45 520
7/19 17:45 18:00 560
7/20 16:00 16:15 440
7/20 16:15 16:30 480
7/20 16:30 16:45 520
7/20 16:45 17:00 480
7/21 16:00 16:15 520
7/21 16:15 16:30 520
7/21 16:30 16:45 500
7/21 16:45 17:00 500

Step 3. Calculate System Peak Demand

Sum the kW values and divide the number of intervals. In this example its (10000 / 20 = 500).

This assumes that you have a reading for each interval. If you have a gap in your meter data, you will need to estimate the missing data.

How can you approximate System Peak Demand values?

Don’t have a bill that tells you the sites System Peak Demand? Don’t have historical revenue grade meter data data in order to calculate it?

A reasonable proxy for System Peak Demand is to use the customer’s peak demand for the billing period on or around when the System Peak event(s) occured. This makes the reasonable assumption that the systems peak and the sites peak are likely to be around the same date and time.

You can make adjustments to this estimate if you know:

  • Your customers hourly load profile is typically different from that of the grid, in which case the sites peak will not be when the system peaks, and you will want to lower the estimated value.
  • This year’s usage is different to last year’s usage. For example, if your customer’s usage increases by 5% a year, you may want to use 95% of your peak usage as the System Peak Demand Value. In addition, if you know your customer is taking action to limit their exposure to System Peak Demand charges, you may want to factor the system peak down further, say to 80% of the peak demand.