
Tutorial Info
- Program: Oracle Primavera P6 Professional
- Version: all versions
- Difficulty: Advanced
- Time to Complete: 15 minutes
Schedule % Complete is one of the many percent completes you have in Primavera P6 and we’re going to have a complete look at what it is and how it is calculated. Two important products of maintaining schedules are planned progress and actual progress of a given time; you want to know how much you’ve done so far and compare it with how much you were supposed to do so far, in order to reach project targets.
The first thing to mention is that Schedule % Complete deals with planned progress. As a result, it is calculated based on the Project Baseline and the Data Date; it has nothing to do with the current schedule.
The second thing is that this field is calculated differently for Activities than for WBS Elements. This is the source of the most common problems people have with this field.
Schedule % Complete for Activities
And now, let’s start the story with how Schedule % Complete is calculated for Activities. It’s simple; just take a look at the following figure.

When the Data Date is earlier than the Baseline Start date, Schedule % Complete is zero, when it’s after the Baseline Finish data, Schedule % Complete is 100%. Otherwise, Schedule % Complete would show what percentage of the Baseline duration is passed by the Data Date. Here’s a formula to calculate Activity Schedule % Complete:
Schedule % Complete(Act) = ( [Data Date] – [Baseline Start] ) / ( [Baseline Finish] – [Baseline Start] )
The following diagram shows the Schedule % Complete of a single Activity for different Data Dates:

And that’s all for the activities; it has nothing to do with the current schedule, the resource curves, the costs, etc. For Activities, Schedule % Complete is strictly calculated based on:
- Data Date
- Activity’s Baseline Start
- Activity’s Baseline Finish
Schedule % Complete for WBS Elements
And now, the story of how Schedule % Complete is calculated for WBS Elements. Let’s start by reviewing 2 possible scenarios:
Scenario 1
How are these calculations possible? The Sample WBS Element has three Activities, they all have Schedule % Completes greater than zero, but the value for Sample WBS Element is 0! Before I reveal the answer, here’s a contrasting scenario.
Scenario 2

In this scenario, the Sample WBS Element has three Activities with Schedule % Completes less than 50%, but the Schedule % Complete of the WBS Element is 75%.
What is going on here? How is Schedule % Complete calculated in each scenario?
A WBS Element’s Schedule % Complete is calculated in a completely different way. You might expect it to be the rollup value of the underlying Activities (a weighted average for example). But, as in scenario 2, the three Activity values which are all less than 50% could never have a weighted average more than 50%.
As you saw before, the Schedule % Complete of the Activities is time-based. However Schedule % Complete for WBS Elements is:
- Depended project costs and…
- Does not factor in any Activities’ Schedule % Complete values
How Schedule % Complete is Calculated for WBS Elements
When you assign resources and expenses to activities, each activity will receive a calculated Total Cost. Resource assignment hours and costs are, by default, spread uniformly over the duration of the activity (but you may apply a Resource Curve to alter this). Oracle Primavera will show you how costs are then planned for each day of the Activity. These costs are aggregated to the WBS level, and the time-phased cost of the WBS Element will be calculated automatically.
The Schedule % Complete of the WBS Element will be the ratio of the Baseline Costs before the Data Date to the Total Baseline Cost.

In the world of Earned Value, the costs before the Data Date are called the Planned Value, or PV for short (Also called BCWS – Budgeted Cost of Work Scheduled). The total baseline cost is called Budget At Completion or BAC for short. We can now formulate the calculation of Schedule % Complete for WBS Elements as:
Schedule % Completed (WBS) = PV / BAC
Please have this in mind that all the mentioned parameters are derived from baseline and not from current schedule; the WBS bar shown in these figures is the baseline schedule of the WBS Element and the costs are the baseline costs of the WBS Element.
The following diagram shows Schedule % Complete of a sample WBS Element for different Data Dates:

The above descriptions show that the Schedule % Complete of the WBS Elements depend on the following:
- Data Date
- Baseline Costs before the Data Date (PV)
- Total Baseline Costs (BAC)
To summarize, Schedule % Complete for Activities is based on time, while its value for WBS Elements is based on costs.
Pulling Schedule % Complete together for WBS and Activities
The following diagram shows Schedule % Complete of a sample WBS Element with two Activities in different Data Dates.
In Part 2 of the Schedule % Complete Guide, I’ll show you an example of using Schedule % Complete on a project in P6.
Download my new ebook on Primavera P6 Percent Complete fields to learn more.













30 Responses
i am so much thank fully to you ,that you make it so simple to understand ,you are really great , thanks a lot
Thanks for your comments Pramod!
?? ????
??? ?????
Schedule % Complete(Act) = ( [Data Date] – [Baseline Start] ) / ( [Baseline Finish] – [Baseline Start] )
???? ????? ???? ??? ?? ?????? ?? ???? ????? ????? ???? ?????? ????
hi
This formula is true only when that the project does not have holiday
Schedule % Complete(Act) = ( [Data Date] – [Baseline Start] ) / ( [Baseline Finish] – [Baseline Start]
This formula always gives the correct answer
Schedule % Complete (Act) = ([Data Date] – [Baseline Start] – Holly day) / ([Baseline Finish] – [Baseline Start] – Holly day=OD)
I think scenario two is never possible
take a sample please for me
Dear Mostafa;
–1–
Yes, it’s always the case in planning world: non-working times are not counted (as briefly discussed in Part 2 of this article).
[Finish]-[Start]-[non-working-time] is not an appropriate syntax for it and [Finish]-[Start] is common. We actually define the “-“ operator in a way that does not count non-working times.
–2–
[Baseline Finish] – [Baseline Start] is not always equal to Original Duration.
–3–
When your activities’ costs are front loaded, you have the potential of having the second scenario. An extreme example: we have a WBS Element with three activities. All the activities start in day one and have at least two days baseline duration. Their costs are all in their start. Ok, what happens when we pass day 1? WBS Element’s Schedule % Complete would be 100%, but its activities are all less than 100%.
Best wishes
-
[...] already covered Duration % Complete and Schedule % Complete. This post will explore Units % Complete and future posts will continue to cover Physical % [...]
Big Thanks for your presentation; it’s so useful for planner.
[...] [Schedule % Complete in Primavera P6, Part 1] [...]
Hi Nader
Thank you for sharing your valuable knowledge, I am Looking for performance % but cant find it on your site, would you please send me te link.
Dear Huda,
The Performance % Complete article will be published in near future. Please re-visit the site or subscribe to its feed to be informed of the new articles.
- Nader
Great work. Getting lots of new things for learning. I am really happy today.
Good information about the glitches.
Hi,
Just wandering, if you have a compete e-books for the application of P6
Hi Joey, we have more ebooks in the works. But for now, feel free to peruse and print from our library of tutorials and articles.
PT
No, not a complete one yet… just that short ebook about progresses.
Great Job Nader thanks for your very helpful tutorial
hi sir,
can u please provide me how to find critical path and float in primavera p6?
Hi,
On the Gantt chart, all activities on the critical path are shown in red. Total float can be found for each activity on the “Status” tab of the activity, down in the bottom corner.
Hope that helps!
Michael
Dear Sir,
When i have a negative float in my time schedule how can i find the activity that make this negative float and solve this issue ?
Dear Maged,
You should look for hard constraints in the whole schedule.
If you are using a fixed end schedule, having negative floats will not be a problem. However, if you are using a more common form of free-end schedule, you should avoid hard constraints completely.
I wonder how you guys do that..!! the way you explain is simply amazing..!!
Cheers mate
thanks for the information
Nice. I need to study more…
I ask about why there is a gap between the data date of any activity and it’s remaining early start when i make update? please inform me. Thanks alot
Dear Sir,
I’d like to thank you so much for your helpful information.
But I face a problem when I do schedule for my updated schedule, the cash flow for the entire project change automatically at each update, which gives me a wrong schedule% to compare with performance or physical%.
How could I keep my base cash flow fixed during all project period.
Regards,
Dear Aladdin Fayoumi,
I think when you make update ,the BAC. is not change but the actual and remaining budgeted cost is change due to update
Dear Maged,
It can have different reasons, such as:
1. you’ve used retained logic rescheduling and a predecessor has moved the remaining of the activity to a later date, or
2. there’s a none-working period between your data date and the earliest time for the remaining of the activity.
Those were the two reasons I can think of right now.
Dear Aladdin,
You’re probably using the “current project” option as a baseline. You should save and assign a real baseline at the beginning, and those values will stay constant.
REALLY
THANK YOU VERY MUCH FOR EXPLANATION VERY WELL