HomeGuidesRecipesAPI ReferenceChangelog
Log In
Guides

Determine System Peak Demand

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 is 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) determines 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 2017 ERCOT published the following:

MonthPeak IntervalDemand
June6/23 4:30-4:45510 kW
July7/28 4:45-5:00510 kW
August8/16 4:45-5:00520 kW
September9/20 4:30-4:45500 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 Arcadia [Tariff API][tariff_api_ref] ( with all its properties by using populateProperties=true), you can identify whether a rate based on the site's 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
{  
    "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 straightforward 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
{  
  "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 its System Peak events (dates and times) Arcadia enters it into our database. Note that utilities usually publish these several months AFTER the event 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
{  
    "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
{  
    "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][calendar_api_ref]. The example below is for all events in the calendar year 2016.

GET /rest/public/calendars/dates?calendarId=637&fromDateTime=2017-01-01&toDateTime=2018-01-01
{  
    "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 into 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-minute 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):

DateStartEndkWh
6/1217:0017:15140
6/1217:1517:30135
6/1217:3017:45130
6/1217:4518:00115
6/1316:0016:15115
6/1316:1516:30120
6/1316:3016:45120
6/1316:4517:00115
7/1917:0017:15120
7/1917:1517:30130
7/1917:3017:45130
7/1917:4518:00140
7/2016:0016:15110
7/2016:1516:30120
7/2016:3016:45130
7/2016:4517:00120
7/2116:0016:15130
7/2116:1516:30130
7/2116:3016:45125
7/2116:4517:00125

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.

DateStartEndkW
6/1217:0017:15560
6/1217:1517:30540
6/1217:3017:45520
6/1217:4518:00460
6/1316:0016:15460
6/1316:1516:30480
6/1316:3016:45480
6/1316:4517:00460
7/1917:0017:15480
7/1917:1517:30520
7/1917:3017:45520
7/1917:4518:00560
7/2016:0016:15440
7/2016:1516:30480
7/2016:3016:45520
7/2016:4517:00480
7/2116:0016:15520
7/2116:1516:30520
7/2116:3016:45500
7/2116:4517:00500

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 site's 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) occurred. This makes the reasonable assumption that the systems peak and the site 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 site's peak will not be when the system peaks, and you will want to lower the estimated value.
  • This year’s usage is different from 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.