I don't think I described the situation well enough. The completion date is actually pulled from an external system that the users do have the ability to modify. The T-n dates are calculated fields based on the completion date. The logic we are striving for is at completion date T - n days, if the Completion at T - n days is null, then we want to write the date of Completion Date - n. But if the Completion Date at T - n days has a value, we do not want to change the date.
As an example, let's assume the current Completion Date is 4/15/2020. On 3/16/2020 the Completion Date at T - 30 is 3/16/2020. If the Completion Date at T - 30 IsNull, then the date of 3/16/2020 will be entered in Completion Date at T - 30. If it already has a value, then the date must not be changed.
The intent is to prevent the users from "gaming" the system to make it appear they are hitting a higher percentage of on time completion by changing the Completion Date after the Completion Date at T - n. Following the example above, suppose on 3/18 the user notices they missed the Completion Date at T - 30 and they change the Completion Date to 4/17/2020. If the Completion Date at T - n days can be overwritten, the users can manipulate the data to make the on time completion rate appear better than it really was.
Thank you for your suggestions. Since this is being used for a report that the users will not have access to change, I went with option 1. It appears to be working.Thank you!