---------------------- Forwarded by Robin Rodrigue/HOU/ECT on 11/03/2000 
02:13 PM ---------------------------
   
	Enron North America Corp.
	
	From:  Frank Hayden @ ENRON                           11/03/2000 09:10 AM
	

To: Bilal Bajwa/NA/Enron@Enron, Robin Rodrigue/HOU/ECT@ECT
cc:  
Subject: Re: 'NG' positions roll-off logic


---------------------- Forwarded by Frank Hayden/Corp/Enron on 11/03/2000 
09:13 AM ---------------------------
   
	
	
	From:  Frank Hayden                           08/26/2000 04:02 PM
	

To: Bilal Bajwa/NA/Enron@Enron
cc:  

Subject: Re: 'NG' positions roll-off logic


---------------------- Forwarded by Frank Hayden/Corp/Enron on 08/26/2000 
04:01 PM ---------------------------


Ganapathy Ramesh@ECT
08/26/2000 03:37 PM
To: Frank Hayden/Corp/Enron@Enron
cc:  

Subject: Re: 'NG' positions roll-off logic  


Roll-Off logic as requested by you.

Ramesh



   
	Enron North America Corp.
	
	From:  Wei Hu                           08/07/2000 03:37 PM
	

To: Jeremy Wong/HOU/ECT@ECT
cc: Ganapathy Ramesh/HOU/ECT@ECT 
Subject: 'NG' positions roll-off logic

Jeremy,

Here is the roll-off logic for 'NG':

1.  For regular ERMS books (not Intra Month book),  first we get the promptDt,

 promptDt := TO_DATE('01'||TO_CHAR(ADD_MONTHS(TO_DATE(p_effDt,'J'),1), 
'MONYYYY'), 'DDMONYYYY');

 Then if p_commodity_cd = 'NG', we go get the cutOff date,
  SELECT exp_dt
           INTO expDate
           FROM egs_expiration_dates
         WHERE expiration_rule_cd = 'Natural Gas Futures'
             AND ref_period_dt = promptDt;

 IF (TO_DATE(p_effDt, 'J') > expDate) THEN
        cutOff := ADD_MONTHS(promptDt,1);
      ELSE
        cutOff := promptDt;
      END IF;

 The strip flag, when populated into rms_deal_legs table, is computed using 
the following DECODE statement,

 DECODE(SIGN(TO_NUMBER(TO_CHAR(ref_period_dt,'J')) - 
TO_NUMBER(TO_CHAR(cutOff,'J'))),-1,-2,NULL).

 Positions with strip flag as -2 will be rolled off by V@R program.

2.  For Intra Month books, first we get the nextMonthDt,
 nextMonthDt := 
TO_NUMBER(TO_CHAR(TO_DATE('01'||TO_CHAR(ADD_MONTHS(TO_DATE(p_effDt,'J'),1),'MM
')||
        TO_CHAR(ADD_MONTHS(TO_DATE(p_effDt,'J'),1),'YYYY'), 'DDMMYYYY'),'J'));

 Then if book flag is 'P', the strip flag, when populated into rms_deal_legs 
table, is computed using the 
 following DECODE statement,

     if pub cd starts with 'GD', then the positions are taken in as 
'FLOATVSFLOAT', and strip flags for
  two legs are,
  DECODE(SIGN(TO_NUMBER(TO_CHAR(ref_period_dt,'J')) - nextMonthDt), 1, -1, 0, 
-1, -1, -2, NULL) and
  DECODE(SIGN(TO_NUMBER(TO_CHAR(ref_period_dt,'J')) - nextMonthDt), 1, 1, 0, 
1, -1, -2, NULL),
  respectively.

     else if pub cd does not start with 'GD', then only positions with 
swap_cd as 'S' are captured as    'SWAP'.  The strip flag is,
  DECODE(SIGN(TO_NUMBER(TO_CHAR(ref_period_dt,'J')) - nextMonthDt), 1, 1, 0, 
1, -1, -2, NULL)

 Else if book flag is 'G', the strip flag in rms_deal_legs is hard coded as 1.


Thanks,

Wei