Calculating the duration between specific project milestones in a standard report
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi Everyone,
Below is the requirement:
Requesting ability to report on Turn Around Time between Milestones on a Project. The ideal design would be to run by Project and calculate duration between any and all Milestones that exist.
For example, if a Project had milestones for Start, Plan, Build, Test, Train, and Go-Live, the report would return the duration between each Planned End Date for the respective Project Tasks. Note: The capability in the Demand module to report on turnaround times for HCL phases on PRO Status may provide direction, but not sure.
can you please assist on this , how to proceed further?
Thanks & Regards,
Abbas Shaik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi Buddy,
Yes, this can be done, but it’s not something ServiceNow gives you out of the box in a single report.
The main thing to understand is that milestones are just project tasks with dates. Reporting can show those dates, but it won’t automatically calculate the time between milestones unless you give it some structure.
The way I've done it to handle this is by standardizing how milestones are defined and then calculating the durations ahead of time.
A common approach is:
Make sure milestones are consistently identified (for example by name, a milestone flag, or a “milestone type” field).
Use the Planned End Date of each milestone task.
Add logic (via a Business Rule or Flow) that, when milestones are updated, calculates the time between them (Start → Plan, Plan → Build, Build → Test, etc.).
Store those turnaround times on the Project record.
Report on those fields by Project, Program, or Portfolio.
This is very similar to how turnaround reporting works in the Demand module — those phases are fixed and modeled, which makes reporting easy.
If your milestone names vary a lot and you need something fully dynamic, you can do it with a scripted solution that:
Pulls all milestone tasks for a project
Sorts them by Planned End Date
Calculates the duration between each one
That works, but it’s heavier and harder to maintain, especially for dashboards.
In practice, the best next step is to decide:
Are milestones consistent across projects?
Do you need simple reporting, or historical trending?
@abbasshaik4 - Please mark Accepted Solution or Thumbs Up if you find Helpful! 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hello @Matthew_13 , Iam new to this requirement, can you please mention the detailed steps that would be helpful for me.
Thanks,
Abbas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Step 1: Standardize how milestones are identified
First, make sure ServiceNow can reliably tell which tasks are milestones and what phase they represent.
The easiest way is to add a field to Project Task like Milestone Type (Start, Plan, Build, Test, Train, Go-Live).
This avoids relying on task names, which tend to vary.
Step 2: Pick the date you’ll measure from
Decide which date drives turnaround. Most teams use Planned End Date so reporting is consistent.
(You can always add actual dates later if needed.)
Step 3: Add turnaround fields to the Project
On the Project record, add fields to store the results, for example:
Start → Plan (days)
Plan → Build (days)
Build → Test (days)
Test → Go-Live (days)
These are simple number or duration fields.
Step 4: Calculate the durations automatically
Create a Business Rule or Flow that runs when a milestone task is updated:
When a milestone’s Planned End Date changes
Look up the previous milestone for that project
Subtract the dates
Store the result on the Project record
Once saved, the Project always has the latest turnaround values.
Step 5: Report and dashboard
Now reporting is easy:
Project reports show milestone turnaround
Portfolio or Program reports show averages
Dashboards work without scripts or complex logic
This is very similar to how the Demand module reports phase turnaround — the phases are fixed, and the system just reports on stored durations.
@Abbas_5 - Please mark Accepted Solution or Thumbs Up if you find Helpful!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
I think you can use Performance Analytics with Scripted Indicator for this.
Breakdown by Project
I am not very sure, but you can explore that
Another Option
-> use custom table to store each milestone duration
-> populate that using BR or scheduled job
-> then report on that table
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
