It looks like you are trying to tell when a running total crosses a threshold. In Tableau, doing that requires table calculations which operate on the aggregated values that have been returned from the data source.
I put together an example to illustrate how to approach this issue. Here's a static snapshot of my example:
You can define a boolean calculated field to tell whether the running total meets the threshold on a particular day and then use window_min() to calculate the first day that meets the threshold.
Table calculations are powerful, but are also the feature in Tableau that takes the most time to get your head around. So break things down and tackle them in small bites instead of trying to write complex table calculations all at once. Be aware that specifying the partitioning and addressing fields (i.e., compute using) for a table calculation is as important as writing the formula.
Also you can rewrite your Calculated field as below:
if [% Completed] < .95 then 0
elseif [% Completed] < .98 then 95
elseif [% Completed] < 1 then 98
I hope this helps!