HomeGuidesAPI ReferenceChangelog
Log In
Guides

Determine System Peak Demand

Learn about System Peak Demand charges, how to identify them in tariffs, pass values to calculators, and calculate demand values from meter data.

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 rather on when the grid itself experiences peak demand. This class of charges is usually called "System Peak" charges, and utilities often use the term "System Peak Demand" to refer to 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 if your tariff has System Peak rates?

When you retrieve a tariff from Arcadia's Tariff API (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 510 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 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 them 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 from Arcadia's Properties API. We pass in the fields=ext query parameter to instruct the API to return all the publicly available fields.

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 a 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 events in the 2017 calendar year.

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 steps to determine the System Peak Demand value to pass into the calculator. You should also look at the property 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 60 by your interval length in minutes to calculate the multiplier for converting kWh to kW. For 15-minute 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 by the number of intervals. In this example: (10,000 / 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 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 system's peak and the site's peak are likely to occur around the same date and time.

You can make adjustments to this estimate if you know:

  • Your customer's hourly load profile is typically different from that of the grid, in which case the site's peak will not coincide with 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% per 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.