HomeGuidesAPI ReferenceChangelog
Log In
Guides

Determine System Peak Demand

Identify tariffs with system peak demand charges, pass system peak values into calculations, and estimate values from meter data when needed.

Identify tariffs with system peak demand charges, pass system peak values into calculations, and estimate values from meter data when needed.

System peak demand workflow

  1. Retrieve the tariff with populateProperties=true.
  2. Look for a property where propertyTypes includes RATE_CRITERIA and family is systemDemand.
  3. If the customer bill includes the system peak demand value, pass it as a propertyInput.
  4. If you need to calculate the value, retrieve the system peak event intervals from the property’s lookbackTimeOfUseId.
  5. Convert meter data for those intervals to kW using the interval length.
  6. Average the interval kW values and pass the result into the calculator.
  7. If bill and interval data are unavailable, use a conservative proxy and document the assumption.

Choose a system peak demand method

Input availableRecommended methodWhy
Customer bill has a system peak demand valueUse the bill value.Most accurate and simplest.
Revenue-grade interval data is availableCalculate from event intervals.Uses measured site demand during system peaks.
Only monthly billing data is availableApproximate from nearby billing peak.Provides a proxy when exact data is unavailable.

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

Identify tariffs with system peak rates

When you retrieve a tariff from the Arcadia Tariffs 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 a family of systemDemand. Use this request:

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  
}  

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 to include the correct system peak demand in your calculations. Pass this system peak demand value as you would any other calculation input. This calculation request passes a system peak demand of 510 kW along with a monthly consumption amount of 2000 kWh:

{
  "keyName": "4CPDemand2288",
  "dataValue": "510"
}
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"}  
  ]  
}  

Pass a value for system peak demand charges. The Calculate API defaults to 0, which is typically not suitable for system peak demand.

Find when a system peak occurred

When a utility publishes its system peak events, including dates and times, Arcadia enters them into our database. Utilities usually publish these several months after the event occurred. To determine the specific intervals that are used in calculating system peak demand, use the system peak demand property to retrieve when the system peak demand was set. Start by 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 property indicates the unique ID, the timeOfUseId, of this Time of Use definition. Use this timeOfUseId 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 Calendars API. The example below is for all events in the calendar year 2017.

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  
}  

Calculate system peak demand 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 lookbackIntervalQuantity property, 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.

Use this formula to convert interval kWh to kW:

kW = kWh * (60 / intervalMinutes)

Then average the interval kW values:

systemPeakDemand = sum(interval kW values) / number of intervals

If your meter interval is shorter than the system peak interval, aggregate the meter intervals inside each system peak window before averaging across events.

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, it is (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.

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 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 events occurred. This makes the reasonable assumption that the system 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.

Next steps