Milestones in Microsoft Project have zero duration, so any duration-based “planned % complete” field will always evaluate to 0% for them. The % Complete calculation is:
Percent Complete = (Actual Duration / Duration) * 100
Because a milestone’s Duration = 0, the formula cannot produce a non‑zero value, so milestones never show progress in duration‑based percent fields.
To “fix” this, use one of these approaches:
- Do not rely on planned % complete for milestones
- Treat milestones as binary: 0% until the milestone is achieved, then 100%.
- Update the milestone’s % Complete directly to 100% when it is reached; otherwise leave it at 0%. This is the intended behavior for zero‑duration tasks.
- Use work‑based tracking instead of duration‑based for progress reporting
- If progress must be shown numerically over time, track % Work Complete or other work‑based fields on the tasks leading up to the milestone rather than on the milestone itself.
- Use non‑milestone tasks if partial progress on the “milestone” must be shown
- Convert the milestone into a normal task with non‑zero duration (for example, 1 day) so that planned % complete can be calculated over that duration.
There is no setting that will make a duration‑based planned % complete field show incremental progress on a true milestone (0‑duration task); this is inherent in how % Complete is defined and calculated.
References: