Detailed Instructions
Certified Supplier Detailed Instructions for Weather Response Functions (WRFs)
Weather Response Functions (WRFs) model hourly demands as a piecewise linear function of weather variables (temperature and either relative humidity or wind speed depending on season). Each WRF is a Least Square Error regression of historical hourly load data for a particular season and day type (e.g., June Weekday, June Weekend Day, etc.). A set of WRFs will be created for each customer segment (RS0, RS5, etc.).
A WRF is constructed for each hourly (124) demand, from data in hourending format. Each WRF is composed of one to three line segments, with two to four temperature breakpoints defining the beginning and end of each line segment. The WRF for each daytype may have 24 to 72 equations (1 to 3 line segments per hour x 24 hours).
This document will review the equations used in each line segment, and give examples of how WRFs may be used to construct a forecast. The weather station used for the construction of these WRFs is CVG.
Equation:
Given,
Equation for a line: Y = MX + B
Therefore,
LoadHS = M1X1 + M2X2 + B
Where,
H = a particular hour
S = the particular line segment of the WRF determined by the temperature for that hour
M1 = temperature coefficient for segment (S)
X1 = temperature value (forecast or actual) for that hour
M2 = humidity or wind (depending upon season) coefficient for segment (S)
X2 = humidity or wind value (forecast or actual) for that hour
B = constant for line segment (S)
Sample Weather Response Function Coefficients:
A sample WRF was generated using temperature only for use in this document. The WRF generated was for a Hypothetical Profile Segment, June Weekday, and had 3 line segments for each hour. However, the table below illustrates coefficients for only one line segment (segment 2) of the three.
Line Segment 2  
Hour  T min  T max  B (constant)  M1(Temp)  M2(RH)  M3(Wind) 
1  55  85  1.493  0.035  0  0 
2  55  85  1.449  0.033  0  0 
3  55  85  1.147  0.028  0  0 
4  55  85  1.031  0.026  0  0 
5  55  85  0.694  0.022  0  0 
6  55  85  0.196  0.017  0  0 
7  55  85  0.304  0.019  0  0 
8  55  85  0.664  0.024  0  0 
9  55  85  0.943  0.027  0  0 
10  55  85  1.217  0.031  0  0 
11  55  85  1.260  0.032  0  0 
12  55  85  1.537  0.036  0  0 
13  55  85  1.970  0.042  0  0 
14  55  85  1.878  0.041  0  0 
15  55  85  2.272  0.046  0  0 
16  55  85  1.923  0.043  0  0 
17  55  85  1.861  0.043  0  0 
18  55  85  2.034  0.047  0  0 
19  55  85  2.194  0.050  0  0 
20  55  85  2.255  0.051  0  0 
21  55  85  1.784  0.046  0  0 
22  55  85  1.536  0.043  0  0 
23  55  85  1.571  0.041  0  0 
24  55  85  1.396  0.035  0  0 
Tmin and Tmax represent the range of temperatures covered by this particular line segment. E.g., If the forecast temperature for a given hour is under 55 or over 85 degrees F, a different line segment would be used. This is determined by the relationship, Tmin < X <= Tmax, where X is the forecast (or actual) temperature value for that hour.
There is a different equation for each hour of the day, based upon the weather response for each particular hour. Once the forecasted weather data is retrieved from a weather service such as WSI (http://www.wsi.com), an algorithm may be constructed to determine which WRF line segment equation should be used for each particular hour. Once the proper WRF line segment is determined, the weather variables are applied to the line segment equation to yield a demand for that hour in kW. This demand represents an average single customer. The magnitude of the hourly demand will increase depending upon how many customers are in that Load Profile Segment (RS5, RS6, etc.) and will then be adjusted by the average usage factor of that Load Profile Segment.
StepbyStep: How to use a WRF to create a forecast and schedule. Things you will need:
 A spreadsheet program, e.g., Excel, Quattro Pro, etc.
 Forecast hourly weather data (Temperature in degrees F, Humidity in %, Wind speed in mph)
 Appropriate WRF for segment
 Number of customers you have signed up in a particular segment.
 Average usage factor for that segment.
 Loss factors
6.1 Bulk transmission  2.3%
6.2 Common transmission  1.0%
6.3 Distribution  3.43%
Step 1. Using the forecast hourly weather data, determine the proper line segment equation of the WRF you will need to use for each hour. For illustrative purposes, let's use the following WRF line segment that is used throughout this document:
Hour  T min  T max  B (constant)  M1(Temp)  M2(RH)  M3(Wind) 
1  55  85  1.493  0.035  0  0 
1.1  If the forecast temperature is 73 degrees for hour 1, then it falls between Tmin and Tmax for this segment. This is determined by the relationship, Tmin < X <= Tmax, where X is the forecast (or actual) temperature value for that hour. 
Step 2. Using the equation for the WRF line segment listed above, we get the following equation:
2.1  Equation for a line: Y = MX + B, therefore: 
2.2  Demand (kW)1 = (0.035*73) + (1.493) 
2.3  Demand (kW)1 = 1.06 kW 
Step 3. Multiple Coefficients: If there are multiple coefficients in the equation (Temperature and Humidity, or Temperature and Wind speed), they are simply added together (ex. September WD, WRF line segment 1):
Hour  T min  T max  B (constant)  M1(Temp)  M2(RH)  M3(Wind) 
1  0  75  0.7346  0.0216  0.0036  0 
3.1  Temperature = 73, Humidity = 80% 
3.2  Equation: Y = M1X1 + M2X2 + B 
3.3  Demand (kW)1 = (0.0216*73) + (0.0036*80) + (0.7346) 3.4 Demand (kW)1 = 1.13 kW 
Step 4. Applying this process to all the other hours, using temperature data and the WRF coefficients for each hour:
Applying this process to all the other hours, using temperature data and the WRF coefficients for each hour:
X  B  M  Y  
Hour  Tdb(F)  Constant  T Coefficient  Demand 
1  73  1.4928  0.0348  1.05 
2  73  1.4486  0.0334  0.99 
3  72  1.1465  0.0283  0.89 
4  70  1.0313  0.0262  0.80 
5  68  0.6941  0.022  0.80 
6  68  0.1959  0.0167  0.94 
7  67  0.304  0.0188  0.96 
8  69  0.6644  0.0237  0.97 
9  71  0.9426  0.0274  1.00 
10  71  1.2166  0.0313  1.01 
11  72  1.2595  0.032  1.04 
12  73  1.5369  0.0359  1.08 
13  74  1.9702  0.042  1.14 
14  76  1.878  0.0408  1.22 
15  77  2.2719  0.0461  1.28 
16  78  1.9225  0.043  1.43 
17  77  1.8608  0.0434  1.48 
18  77  2.0341  0.0471  1.59 
19  75  2.1942  0.0496  1.53 
20  73  2.2554  0.0514  1.50 
21  72  1.7843  0.0464  1.56 
22  71  1.5363  0.043  1.52 
23  70  1.5714  0.0411  1.31 
24  69  1.3962  0.0354  1.05 
A graph of this data can be seen below.
Step 5. Scale up for the number of customers
5.1  Example, you currently have 1000 customers that qualify for our Hypothetical Segment 
5.2  Multiply each hourly kW value by 1000. 
X  B  M  Y  Customer  
Hour  Tdb(F)  Constant  T Coefficient  Demand  Adjust 
1  73  1.4928  0.0348  1.05  1050 
2  73  1.4486  0.0334  0.99  990 
3  72  1.1465  0.0283  0.89  890 
4  70  1.0313  0.0262  0.80  800 
5  68  0.6941  0.022  0.80  800 
6  68  0.1959  0.0167  0.94  940 
7  67  0.304  0.0188  0.96  960 
8  69  0.6644  0.0237  0.97  970 
9  71  0.9426  0.0274  1.00  1000 
10  71  1.2166  0.0313  1.01  1010 
11  72  1.2595  0.032  1.04  1040 
12  73  1.5369  0.0359  1.08  1080 
13  74  1.9702  0.042  1.14  1140 
14  76  1.878  0.0408  1.22  1220 
15  77  2.2719  0.0461  1.28  1280 
16  78  1.9225  0.043  1.43  1430 
17  77  1.8608  0.0434  1.48  1480 
18  77  2.0341  0.0471  1.59  1590 
19  75  2.1942  0.0496  1.53  1530 
20  73  2.2554  0.0514  1.50  1500 
21  72  1.7843  0.0464  1.56  1560 
22  71  1.5363  0.043  1.52  1520 
23  70  1.5714  0.0411  1.31  1310 
24  69  1.3962  0.0354  1.05  1050 
Step 6. Adjusting for the average usage factor
6.1  Usage Factors are used in forecasting to account for the deviation of individual customers' usage levels from segment average usage levels. An individual customer's usage factor can be calculated by dividing their most recent consumption by the average customer consumption for the same period. The formula is as following:
Usage_Factor = Most_Recent_Consumption / Average_Customer_Consumption Where, Average_Customer_Consumption = Xs, t = S Yi, s, t ( i = 1,…, n) Where, Y = Average Hourly Demand for the current segment (Click here to download this file) t = most recent consumption start date, hour 1 through most recent consumption end date, hour 24 n = number of hours in consumption period t = (most recent consumption end date  most recent consumption start date + 1) * 24 s = customer segment i = an hour in time period t Xs, t = Energy (kwh) for time period t in segment s Yi, s, t = Hourly demand (kw) for hour i in time period t in segment s Assume the most recent consumption for a customer in the Hypothetical Profile Segment is 400 kwh. The consumption start date is Feb 28, 2001 and the end date is March 25, 2001. Segment Average Hourly Demand over the same period is given in the table found at this link. Average_customer_consumption over the same period = (0.706 + 0.591 + 0.538 + … + 0.745) = 423.2 Usage factor for the customer = 400 / 423.2 = 0.945 The same method can be used to calculate the usage factors for all the 1000 customers in our Hypothetical segment and then the average usage factor for the segment can be derived: Average usage factor = (0.945 + 1.04 + 0.81 + … + 1.21) / 1000 = 0.991 Note this average usage factor is calculated in May and used for June forecast.

6.2  Multiply each hourly KW value by the average usage factor. 
X  B  M  Y  Customer  Usage Factor  
Hour  Tdb (F)  Constant  T Coefficient  Demand  Adjust  Adjust 
1  73  1.4928  0.0348  1.05  1050  1041 
2  73  1.4486  0.0334  0.99  990  981 
3  72  1.1465  0.0283  0.89  890  882 
4  70  1.0313  0.0262  0.8  800  793 
5  68  0.6941  0.022  0.8  800  793 
6  68  0.1959  0.0167  0.94  940  932 
7  67  0.304  0.0188  0.96  960  951 
8  69  0.6644  0.0237  0.97  970  961 
9  71  0.9426  0.0274  1  1000  991 
10  71  1.2166  0.0313  1.01  1010  1001 
11  72  1.2595  0.032  1.04  1040  1031 
12  73  1.5369  0.0359  1.08  1080  1070 
13  74  1.9702  0.042  1.14  1140  1130 
14  76  1.878  0.0408  1.22  1220  1209 
15  77  2.2719  0.0461  1.28  1280  1268 
16  78  1.9225  0.043  1.43  1430  1417 
17  77  1.8608  0.0434  1.48  1480  1467 
18  77  2.0341  0.0471  1.59  1590  1576 
19  75  2.1942  0.0496  1.53  1530  1516 
20  73  2.2554  0.0514  1.5  1500  1487 
21  72  1.7843  0.0464  1.56  1560  1546 
22  71  1.5363  0.043  1.52  1520  1506 
23  70  1.5714  0.0411  1.31  1310  1298 
24  69  1.3962  0.0354  1.05  1050  1041 
Step 7. Apply losses:
7.1  Losses must be "scaled up" from the point of delivery (POD), which are the enduse customers, to the point of receipt (POR), the point at which energy is delivered to Duke Energy and before it incurs losses.  
7.2  Loss Rates  
7.2.1  Bulk transmission  2.23%  
7.2.2  Common transmission  1.0%  
7.2.3  Distribution  3.43%  
7.3  Loss Calculation  
7.3.1  Supply = (((Load/(10.0343))/(10.01))/(10.0223))  
7.3.2  The resulting loss factor is 1.06984, so we can simplify this to:  
7.3.3  Supply = Load x 1.06984 
X  B  M  Y  Customer  Usage Factor  Loss  
Hour  Tdb (F)  Constant  T Coefficient  Demand  Adjust  Adjust  Adjust 
1  73  1.4928  0.0348  1.05  1050  1041  1114 
2  73  1.4486  0.0334  0.99  990  981  1050 
3  72  1.1465  0.0283  0.89  890  882  944 
4  70  1.0313  0.0262  0.8  800  793  849 
5  68  0.6941  0.022  0.8  800  793  849 
6  68  0.1959  0.0167  0.94  940  932  997 
7  67  0.304  0.0188  0.96  960  951  1018 
8  69  0.6644  0.0237  0.97  970  961  1029 
9  71  0.9426  0.0274  1  1000  991  1061 
10  71  1.2166  0.0313  1.01  1010  1001  1072 
11  72  1.2595  0.032  1.04  1040  1031  1103 
12  73  1.5369  0.0359  1.08  1080  1070  1146 
13  74  1.9702  0.042  1.14  1140  1130  1209 
14  76  1.878  0.0408  1.22  1220  1209  1294 
15  77  2.2719  0.0461  1.28  1280  1268  1358 
16  78  1.9225  0.043  1.43  1430  1417  1517 
17  77  1.8608  0.0434  1.48  1480  1467  1570 
18  77  2.0341  0.0471  1.59  1590  1576  1687 
19  75  2.1942  0.0496  1.53  1530  1516  1623 
20  73  2.2554  0.0514  1.5  1500  1487  1591 
21  72  1.7843  0.0464  1.56  1560  1546  1655 
22  71  1.5363  0.043  1.52  1520  1506  1613 
23  70  1.5714  0.0411  1.31  1310  1298  1390 
24  69  1.3962  0.0354  1.05  1050  1041  1114 
Step 8. In order to submit a schedule to Duke Energy Control Area Operations, a schedule in whole MWh must be created.
8.1  Three methods  
8.1.1  Rounding  
8.1.1.1  Pros  Easy to calculate  
8.1.1.2  Cons  May not best account for all MWh in a day.  
8.1.2  Truncate and Carry  
8.1.2.1  Pros  Closely accounts for all MWh in a day.  
8.1.2.2  Cons  May possibly shift the peak hour or other hours.  
8.1.3  Combination  
8.1.3.1  Pros  Closely accounts for all MWh in a day, and tends to more accurately represent peaks.  
8.1.3.2  Cons  More complex to calculate.  
8.2  For this example, we will use the Combination method.  
8.2.1  Start out by rounding the forecast value in the ROUND column, then we subtract the rounded value from the forecast value and are left with a RESIDUAL value.  
8.2.2  This residual is added to the next forecast value in the SUM column.  
8.2.3  We round the value in the SUM column, subtract the rounded value from the SUM value and repeat 8.2.2.  
8.2.4  The values in the ROUND column are used to create the schedules (eTags) for the delivery of power. 
Round, Truncate & Carry  
Forecast  Round  Residual  Sum  
Hour  MW  MW  MW  MW 
1  1.114  1  0.114  
2  1.050  1  0.164  1.164 
3  0.944  1  0.108  1.108 
4  0.849  1  0.043  0.957 
5  0.849  1  0.194  0.806 
6  0.997  1  0.197  0.803 
7  1.018  1  0.178  0.822 
8  1.029  1  0.149  0.851 
9  1.061  1  0.088  0.912 
10  1.072  1  0.017  0.983 
11  1.103  1  0.087  1.087 
12  1.146  1  0.232  1.232 
13  1.209  1  0.442  1.442 
14  1.294  2  0.264  1.736 
15  1.358  1  0.094  1.094 
16  1.517  2  0.389  1.611 
17  1.570  1  0.181  1.181 
18  1.687  2  0.132  1.868 
19  1.623  1  0.491  1.491 
20  1.591  2  0.083  2.083 
21  1.655  2  0.262  1.738 
22  1.613  1  0.350  1.350 
23  1.390  2  0.260  1.740 
24  1.114  1  0.146  0.854 
Sum  29.854  30 
Scheduling Example
As stated previously, the numbers in the "Round" column in the previous table are used to create an hourly schedule for the delivery of energy. This schedule, listed again below and now titled "Schedule," will be used to create an Electronic Tag (eTag). This eTag must be submitted to the Duke Energy Control Area prior to the delivery of power, according to the terms described in the Duke Energy OATT.
Forecast  Schedule  
Hour  MW  MW 
1  1.114  1 
2  1.050  1 
3  0.944  1 
4  0.849  1 
5  0.849  1 
6  0.997  1 
7  1.018  1 
8  1.029  1 
9  1.061  1 
10  1.072  1 
11  1.103  1 
12  1.146  1 
13  1.209  1 
14  1.294  2 
15  1.358  1 
16  1.517  2 
17  1.570  1 
18  1.687  2 
19  1.623  1 
20  1.591  2 
21  1.655  2 
22  1.613  1 
23  1.390  2 
24  1.114  1 
Sum  29.854  30 
These examples have been given using only one WRF profile segment. Steps 1 through 7 must be completed for each group of customers that fall within a particular WRF segment category (RS5, DM0, DS4, etc.). These examples also do not include forecasts that must be generated for any interval metered customers that a Certified Supplier may have.
As with all mathematical equations, sometimes an input temperature will result in an undesirable value. Exceptions in WRFs are defined as any condition that could result in an invalid load value (negative, zero load, or excessively high number).
Since WRFs represent linear equations regressed against three years of load research sample data, the possibility exists that certain temperature values may exist where:

There is no WRF line segment equation for a given temperature value, a temperature value is below Tmin, or a temperature value exceeds Tmax for the existing WRF line segment.

A given temperature value produces negative results, or; a given temperature value produces load values greater than historical maximums or less than historical minimums.

Where there is no existing WRF line segment for a given temperature value, the next closest WRF line segment will be used.

Historical power minimum (Pmin) and power maximum (Pmax) for the sample data will be available for each WRF, included with the WRF file. If a temperature value yields a negative result or a result less than the historical minimum, the Pmin value will be used. Likewise, for calculated load values that are greater than historical maximums, the Pmax value will be used.