Energy Scheduling and Accounting (ESA)
ESA consists of an accounting function working in conjunction with an energy scheduling function to combine spreadsheet accounting features with an interchange scheduling tool.
- Collects, calculates and retains data values at various periodicities
- Stuffs current schedule data to pseudo measurement points in the scanned database
- Allows operators to schedule power interchange, reserve, and wheeling transactions
- Provides on-line update of account and calculation definitions
- Generates daily, weekly, monthly and yearly reports
- File Definitions (SOESPA): Logical grouping of accounts
- Account Definitions (SOVARS): Independent and dependent accounts
- Calculation Definitions (SODEPV): Algebraic equations for dependent accounts
- Report Definitions (SOREPT): Automated report generation
- Transaction Types (SOTTPY): Attributes for interchange schedules
| Transaction Type |
RESERV |
FIRM |
INTERU |
MW Level |
Comments |
| Interruptible Imports (Purchases) |
Y |
N |
Y |
<0 |
Add to Operating Reserve Requirements |
| Interruptible Exports (Sales) |
Y |
N |
Y |
>0 |
Add to non-spinning reserves |
| On-Demand Obligations (Firm Sales) |
Y |
Y |
N |
>0 |
Add to Operating Reserve Requirements |
| On-Demand Rights (Firm Purchases) |
Y |
Y |
N |
<0 |
Add to non-spinning reserves |
ESA File Definition (SOESPA)
Key Element: FILNAM (ESA File Name) | Maximum Files: SMP MXEFLS
Each ESA file may have different account and calculation definitions, future and historical data retention periods, data collection periodicities, and starting times for accounting periods.
| Element |
Description |
Format |
Default |
Updateable |
| FILNAM |
ESA file name - used to logically group ESA data |
ESFNSZ char |
Required |
No |
| DATSRC |
Source of data for ESA file (Network Manager / MSGFIL) |
8 char |
"Network Manager" |
No |
| PERIOD |
Data collection periodicity (5,10,15,20,30,60 minutes) |
INTEGER |
60 |
No |
| DELAY |
Time delay after hour/minute for collection/calculation (seconds) |
INTEGER |
0 |
No |
| FUTURE |
Future data retention period (days) |
INTEGER |
0 |
No |
| HISTRY |
Historical data retention period (days) |
INTEGER |
41 |
No |
| MXWEEK |
Maximum number of weeks of weekly data to retain |
INTEGER |
8 |
No |
| MXMONT |
Maximum number of months of monthly data to retain |
INTEGER |
3 |
No |
| MXYEAR |
Maximum number of years of yearly data to retain |
INTEGER |
1 |
No |
| SHRDAY |
Start hour of the accounting day (0-23) |
INTEGER |
0 |
No |
| SDAYWK |
Start day of the accounting week (1=Sunday, 7=Saturday) |
INTEGER |
1 |
No |
| SDAYMO |
Start day of the accounting month |
INTEGER |
1 |
No |
| SMONYR |
Start month of the accounting year |
INTEGER |
1 |
No |
Account Definition - Basic Information
| Element |
Description |
Format |
Default |
| VARNAM |
Account name - primary identifier |
ESVSIZ char |
Required |
| VARTYP |
Account type (I = Independent, D = Dependent) |
4 char |
"I" |
| FILEID |
ESA file number (populated automatically) |
INTEGER |
0 |
| ACCTID |
Numeric account identifier (e.g., WSCC account code) |
INTEGER |
0 |
| UNIT |
Engineering units (MW, MVAR, KV, $, etc.) |
4 char |
" " |
| IMPLM |
Implemented account flag (Y = implemented, N = spare) |
1 char |
"Y" |
Account Definition - Data Collection
| Element |
Description |
Format |
Default |
| RESID |
Collection/destination source code |
8 char |
"RTDB" |
Valid RESID values:
- "NOT COLL" = manually entered
- "IDBMS" = integrated database
- "RTDB" = scanned database
- "RTDBSTUF" = stuffed to scanned database
- "HIST" = historian database
|
| SUBNAM |
Substation name for RTDB/historian collection |
SUBSIZ char |
" " |
| PNTNAM |
Point name for RTDB/historian collection |
SPTSIZ char |
" " |
| PNTTYP |
Point type (ACCU, ANLG, STAT) |
4 char |
"ACCU" |
| DSCOL |
IDB data structure name |
8 char |
" " |
| ELCOL |
IDB data structure element name |
8 char |
" " |
| DSMODE |
IDB data structure mode |
INTEGER |
0 |
| DSBANK |
IDB data structure bank |
INTEGER |
0 |
| BANKFL |
Banking flag (ABSO = absolute, RELA = relative) |
4 char |
"ABSO" |
| RECORD |
IDB data structure record number |
INTEGER |
0 |
Account Definition - Key-Based Collection
| Element |
Description |
Format |
Default |
| KDSNAM |
Key data structure name |
8 char |
" " |
| KELNAM |
Key data structure element name |
8 char |
" " |
| KDSMOD |
Key data structure mode |
INTEGER |
0 |
| EQNAME |
Equipment name key value |
EQPSIZ char |
" " |
Account Definition - Historian Collection
| Element |
Description |
Format |
Default |
| HTAGNM |
Historian IDB tag name |
80 char |
" " |
| HTAGNO |
Historian IDB tag number |
INTEGER |
0 |
Account Definition - Grouping Keys
| Element |
Description |
Format |
Example |
| DATGRP |
Data group key |
4 char |
"ACCU", "ANLG", "GENU", "TIEL" |
| GENFLG |
Generic flag key |
4 char |
"THER", "HYDR", "INTL", "SINT" |
| GRPKY1 |
First account name key (e.g., plant name) |
ESKYSZ char |
" " |
| GRPKY2 |
Second account name key (e.g., unit name) |
ESKYSZ char |
" " |
Account Definition - Initialization & Storage
| Element |
Description |
Format |
Default |
| AUTINI |
Automatic initialization flag (DFLT/DAY/WEEK) |
4 char |
"DFLT" |
| DEFVAL |
Default initialization value |
REAL |
0.0 |
| DEFQAL |
Default initialization quality |
1 char |
"N" |
| Quality codes: A=good, B=good calc, C=verified, M=manual, N=uninit, O=bad calc, P=deactivated, Q=telemetry error |
| DATTYP |
Data storage format (ASIS/ROUN/TRUN) |
4 char |
"ASIS" |
Account Definition - Statistical Calculations
| Element |
Description |
Valid Values |
Default |
| TOTALS |
Total determination frequency |
NONE, DAY, WEEK, MON, YEAR |
"NONE" |
| AVERAG |
Average determination frequency |
NONE, DAY, WEEK, MON, YEAR |
"NONE" |
| MINMAX |
Min/Max determination frequency |
NONE, DAY, WEEK, MON, YEAR |
"NONE" |
Account Definition - Schedule Account Flags
| Element |
Description |
Default |
Notes |
| SCHED |
Schedule account flag |
"N" |
Y = interchange schedule account |
| TONAME |
To interchange company name |
" " |
Matches SOCNAM.CONAME |
| TRTYPE |
Interchange transaction type |
" " |
Matches SOTTPY.TRTYPE |
| NETINT |
Net scheduled interchange flag |
"N" |
Y = contributes to ACE calculation |
| FIRM |
Firm schedule flag |
"N" |
See Table 8.2.1 |
| INTERU |
Interruptible schedule flag |
"N" |
See Table 8.2.1 |
| RESERV |
Reserve schedule flag |
"N" |
See Table 8.2.1 |
| DYNAMIC |
Dynamic schedule flag |
"N" |
Not implemented |
| JOINT |
Jointly owned unit flag |
"N" |
Not implemented |
| PAYBAK |
Inadvertent payback flag |
"N" |
Not implemented |
| WHEEL |
Wheeling schedule flag |
"N" |
Not implemented |
Account Definition - Calculation Configuration
| Element |
Description |
Format |
Default |
| CALSEQ |
Calculation sequence number (unique) |
INTEGER |
0 |
ESA Calculation Definitions (SODEPV)
Key Element: DEPVAR (Calculated Account Name) | Maximum Records: SMP MXDEPV
Basic Operators
- ABS - Absolute value
- ADD - Add operand value
- ADDK - Add constant
- SUB - Subtract operand value
- SUBK - Subtract constant
- MUL - Multiply by operand
- MULK - Multiply by constant
- DIV - Divide by operand
- DIVK - Divide by constant
Conditional Operators (by sign)
- ADD+ - Add if positive
- ADD- - Add if negative
- SUB+ - Subtract if positive
- SUB- - Subtract if negative
- MUL+ - Multiply if positive
- MUL- - Multiply if negative
- DIV+ - Divide if positive
- DIV- - Divide if negative
Conditional Operators (peak/off-peak)
- ADD0 - Add if off-peak
- ADD1 - Add if on-peak
- SUB0 - Subtract if off-peak
- SUB1 - Subtract if on-peak
- MUL0 - Multiply if off-peak
- MUL1 - Multiply if on-peak
- DIV0 - Divide if off-peak
- DIV1 - Divide if on-peak
Note: ESA processes operators sequentially without regard for mathematical hierarchy.
| Element |
Description |
Format |
Required |
| DEPVAR |
Calculated account name (must be dependent account) |
ESVSIZ char |
Yes |
| FILEID |
ESA file number (populated automatically) |
INTEGER |
Auto |
| DEPVNO |
Calculation definition sequence number (for multi-record definitions) |
INTEGER |
Default: 1 |
| DATA1 |
First operand (account name or constant) |
ESVSIZ char |
Yes |
| OPER1 |
First operator |
4 char |
Yes |
| DATA2 |
Second operand (optional) |
ESVSIZ char |
No |
| OPER2 |
Second operator (optional) |
4 char |
No |
| DATA3 |
Third operand (optional) |
ESVSIZ char |
No |
| OPER3 |
Third operator (optional) |
4 char |
No |
| DATA4 |
Fourth operand (optional) |
ESVSIZ char |
No |
| OPER4 |
Fourth operator (optional) |
4 char |
No |
- Define base account containing data for every collection period
- Define on-peak dependent account:
OPER1 = ADD1, DATA1 = base_account
- Define off-peak dependent account:
OPER1 = ADD0, DATA1 = base_account
Daily/weekly/monthly/yearly totals will contain summations for the appropriate periods only.
ESA Report Definition (SOREPT)
Maximum Reports: SMP MXREPT
| Report Name |
Description |
File Name |
| esadly |
ESA Daily Report |
esadly |
| esawk |
ESA Weekly Report |
esawk |
| esamon |
ESA Monthly Report |
esamon |
| esayr |
ESA Yearly Report |
esayr |
| Element |
Description |
Format |
Default |
| REPFIL |
Report filesystem name (without extension, must exist in $REP_PATH) |
20 char |
" " |
| REPNAM |
Report long name (for display purposes) |
ESRSPSZ char |
" " |
| REPTYP |
Report type flag (DAILY/WEEKLY/MONTHLY/YEARLY) |
8 char |
" " |
| ACTIVE |
Active status (Y = active, N = inactive) |
1 char |
"Y" |
| DESTYP |
Destination type (PRINTER/SCREEN/FILE) for demand reports |
8 char |
" " |
| DESNAM |
Destination name (printer or file name) |
20 char |
" " |
| COPIES |
Number of copies to print |
INTEGER |
1 |
| Parameter |
Description (Baseline Reports) |
| PARAM1 |
ESA File Identifier (character string) |
| PARAM2 |
Date for the report (format: 'DD-MON-YYYY') |
| PARAM3 |
Threshold value for highlighting records with totals greater than this value |
| PARAM4 |
Available for custom reports |
Interchange Transaction Types (SOTTPY)
Maximum Types: SMP MXTTYP
| Element |
Description |
Format |
Default |
| TRTYPE |
Interchange transaction type code |
8 char |
Required |
| FIRM |
Firm transaction flag (Y/N) |
1 char |
"N" |
| INTERU |
Interruptible transaction flag (Y/N) |
1 char |
"N" |
| RESERV |
Reserve transaction flag (Y/N) |
1 char |
"N" |
| NETINT |
Net interchange contribution flag (Y/N) |
1 char |
"N" |
| DYNAMIC |
Dynamic transaction flag (Y/N) - Not implemented |
1 char |
"N" |
| JOINT |
Jointly owned unit flag (Y/N) - Not implemented |
1 char |
"N" |
| PAYBAK |
Inadvertent payback flag (Y/N) - Not implemented |
1 char |
"N" |
| WHEEL |
Wheeling transaction flag (Y/N) - Not implemented |
1 char |
"N" |
FIRM = "Y": Firm sales increase control area load and reserve requirements; firm purchases decrease them.
INTERU = "Y": Interruptible transactions supplement control area reserves.
RESERV = "Y": Reserve transactions supplement spinning reserves (see Table 8.2.1).
NETINT = "Y": Transaction contributes to net scheduled interchange used in ACE calculation.
Interchange Companies (SOCNAM)
Key Element: CONAME (Company Name) | Maximum Companies: SMP MXEXCO
| Element |
Description |
Format |
Required |
| CONAME |
Company name (unique) |
COMSIZ char |
Yes |
| ACONAM |
Company short name (4 characters, unique) |
4 char |
Yes |
| EXANO |
External generation control area number |
INTEGER |
0 |
Control Areas (SOCA)
| Element |
Description |
Format |
| CODE | CA registered code | 4 char |
| NAME | CA descriptive name | 255 char |
| ENTITY | Parent entity code | 4 char |
| NERCID | NERC Master Entity ID Number | Integer |
| REGION | Associated NERC region | 20 char |
| SCODE | Security coordinator code | 4 char |
| TAGTYP | Tag code type (PSE/CA/TP/SC) | 3 char |
| BEGIND | Effective begin date | 10 char |
| ENDDAT | Effective end date | 10 char |
| CONT24 | 24-hour contact person | 255 char |
| PHON24 | 24-hour phone number | 28 char |
| FAX | 24-hour fax number | 28 char |
| AGENT | URL for Agent Service | 255 char |
| AUTHOR | URL for Authority Service | 255 char |
| APPROV | URL for Approval Service | 255 char |
| FORWAR | URL for forward on IMPLEMENT State Change | 255 char |
Transmission Providers (SOTP)
Same structure as SOCA with CODE as provider code.
Purchasing/Selling Entities (SOPSE)
Same structure as SOCA with CODE as PSE code (8 characters).
Products (SOPROD)
| SEQ | Product sequence number | Integer |
| CODE | Product short code | 4 char |
| PROD | Product description | 255 char |
OASIS Interface (SOASIS)
| Element |
Description |
Default |
| PRIMARY_PROVIDER_CODE |
Unique code for primary provider |
"EKPC" |
| PRIMARY_PROVIDER_DUNS |
DUNS number for primary provider |
960307197 |
| REGION_CODE |
NERC region code (E,I,S,A,M,N,W,F) |
"E" |
| BASE_URL |
Base URL for OASIS node |
"http://oasisdev.ecar.org:488/OASIS/EKPC/data" |
| PRIMARY_GATEWAY |
Primary NT Server for RAS to OASIS connection |
"ekpcmmi1" |
| BACKUP_GATEWAY |
Backup NT Server for RAS to OASIS connection |
"ekpcmni2" |
| VERSION |
OASIS Standards version |
1.3 |
| TIME_ZONE |
Time zone for timestamps (ED/ES, CD/CS, MD/MS, PD/PS, UT) |
"ES" |
| OUTPUT_FORMAT |
Response output format (HTML/DATA) |
"data" |
| Element |
Description |
Default |
| POST_TEMPLATE | Template for posting service offerings | "transpost" |
| UPDATE_TEMPLATE | Template for updating service offerings | "transupdate" |
| POLL_TEMPLATE | Template for polling service requests | "transstatus" |
| Element |
Description |
Default |
| INPUT_POST_FILE | Input file for posting offerings | "data/TCPOST.TXT" |
| INPUT_UPDATE_FILE | Input file for updating offerings | "data/TCUPDATE.TXT" |
| QUERY_POLL_FILE | File for querying service offerings | "data/TRPOLL.TXT" |
| RESPONSE_POST_FILE | Response file for posting offerings | "data/RESPONSE_POST.TXT" |
| RESPONSE_UPDATE_FILE | Response file for updating offerings | "data/RESPONSE_UPDATE.TXT" |
| RESPONSE_POLL_FILE | Response file for service requests | "data/TRESPONSE.TXT" |