data test; array loan_bal{0:72}; loan_bal{0}=amf; /* initiate debt */ do i=1 to 72; loan_bal{i}=loan_bal{i-1}-(pmt-(loan_bal{i-1}*(rate/12))); end; run; by explicitely definining the array index starting with 0, you handle start however, this implementation does not handle the last partial payment nor the possibility that loan_bal{i} goes below 0 if term < 72 months but the "lag to prev value" is there and working. The where statement is in a distinct category from the IF statement as far as implementing logic goes in SAS. Vincent
... View more