I realized in my first post that I wasn't initializing values for the different variables, so I have added another DO loop. In the newest version the program correctly sets the starting values but doesn't complete the table. Clarification of variable names: Core_Pmt = the payment received that includes principal and interest BOM_PRINCIPAL = Beginning of the month principal balance INT_PMT = Interest payment PP_PMT = Principal payment EOM_PRINCIPAL = End of month principal balance DATA test;
SET schedule;
BY MAST_CTRCT_ID;
IF MONTH = 1 THEN DO;
BOM_PRINCIPAL=EQUIPMENT_COST;
INT_PMT=(EQUIPMENT_COST* ((INT_RATE/100)/12));
PP_PMT=CORE_PMT_USD_AMT - (EQUIPMENT_COST * ((INT_RATE/100)/12));
EOM_PRINCIPAL= (EQUIPMENT_COST + (EQUIPMENT_COST * ((INT_RATE/100)/12)) - CORE_PMT_USD_AMT);
END;
IF MONTH ne 1 THEN DO;
BOM_PRINCIPAL=LAG(EOM_PRINCIPAL);
INT_PMT=BOM_PRINCIPAL * ((INT_RATE/100)/12);
PP_PMT=CORE_PMT_USD_AMT - (BOM_PRINCIPAL * ((INT_RATE/100)/12));
EOM_PRINCIPAL= (BOM_PRINCIPAL + (BOM_PRINCIPAL * ((INT_RATE/100)/12)) - CORE_PMT_USD_AMT);
END;
RUN;
... View more