Hello everyone, with everyone's input I think I am getting close. To provide closure and give back to the group as future reference, below is the draft answer. There is more refinement to be done in my actual analysis, but it should be sufficient to address my original ask: You can see that an extra j was introduced besides i. Variable i is to loop through future months to create forecast, while variable j is to lock in the month_since_opened for each record so that forecast starts at the incremental month based on how many months of actual spend are available. %let count=60; data output; set input; array forecast_spend (60); array actual_spend spend1-spend60; array shape shape1-shape60; do i = month_since_opened+1 to &count; %let j = max_mob; forecast_spend(i ) = actual_spend(&j) / shape(&j) * shape (i); end; run; Thanks guys for your inputs: ballardw, astounding, reeza
... View more