Guild of Project Controls: Compendium | Roles | Assessment | Certifications | Membership

Determine the longest path of a resource leveled schedule in P6

Unfortunately when it comes to resources and resource leveling, P6 model is absolute. P6 doesn’t calculate the float correctly and the longest path will not be accurate since the late and early dates will not change after leveling.

Primavera P6 doesn’t take in consideration the new dates after the leveling in calculating the total float or the longest path, to illustrate further if we have a project consists of three activities A,B & C and they all share the same resource and each activity 5 days duration and the project completion after 15 days.

If we tied the three activities together using hard logic and filtered on the longest path the outcome is as shown in the below figure.

All the activities have total float equal zero and all the activities appear in the longest path layout.

Now if we removed the hard logic and leveled the schedule using the leveling feature in P6, the finish date will remain the same but the float values will not be based on the start and finish dates of the activities, but it will be based on the early start and finish which are calculated only based on the physical relationship between the activities.

The sample project after removing the logic ties and before leveling the output as shown in the figure below.

Notice the total float value for all activities is 10 days.

Now after leveling:

As you can see in the figure that the activities have moved to level the resource but the early dates & total float value for the activities haven’t change.

Now if we filtered on the longest path that will happen:

Only activity C will appear in the layout.

Therefore using the regular longest path filter will not determine the correct longest path of resource driven schedules in P6 and we have to use alternative methods for this purpose.

Methods to determine the longest path for resources driven schedules

1 – Using the remaining float

The remaining float is calculated as the difference between the Late Finish and the Remaining Early Finish

If you are interested in knowing additional types of float check the following links:

In the resource leveled schedules the remaining float can replace the total float, take in consideration that it will never determine the true longest path of the schedule, it can include or exclude unnecessary activities because you have to filter on float value range, for example remaining float is equal to or less than 15 days. If you used remaining float equal zero a lot of gaps may appear in the layout.

The figure below shows the remaining float values of the pervious example:

The remaining float filter can be used in small projects but in the big schedules, the remaining float values also are not reliable and even may have negative values and the calculations become inaccurate.


2 – Manually determine the longest path using user defined field

Step (1) – Create a text User Defined Field and call it LP

Step (2) – Group by project and Sort by Finish date

Step (3) – Add the following columns

Activity ID – Activity Name – OD – Start – Finish – Primary Resource – Remaining Float – LP (User defined Field)

Step (4) – Filter on the longest path

Step (5) – Mark the longest path activities in the User defined field

Add (Y) in the LP column and go to the first activity in the layout, if all the predecessors activities are not driving (The driving column = No for all the predecessors activities) then this activity is driven by a resource rather than logic.

Step (6) – Filter on the driving resource and mark the activity which has the closest finish date to the start date of the critical activity

In this case Erect superstructure Span 1 share the same crew of Erect Superstructure span 2 which is critical, and the finish date of Span 1 on August 28 while Span 2 Start August 29 so that means that the crew of Span 1 driving the start of Span 2, put (Y) in the LP column to mark Span 1.

Step (7) – Check the predecessors of the newly marked activity and go to and mark the next driver activity

Check the predecessors of the newly marked activity, if a driving activity found go to that activity and mark it, and if not repeat step (6)

In our example, we just marked Span 1, we check the predecessors.

There is a driving activity that means that this activity is driven by logic not by a resource. The next step is we go to the driver activity and mark it.

Step (8) – Repeat step (6) and (7) until you reach that data date

Step (9) – Filter on the LP column equal (Y)

Now you have the longest path of the resource driven schedule

In our example the Concrete and the Erection crew are the critical resources.

You can even create a new bar for these activities.

It’s a time consuming process but it’s the only accurate method for determining the longest path of resource leveled schedules in Primavera without using any external software or model.

I have developed an external excel model to mark the driver activities automatically, to save me some time and I will discuss the model in another article.

Reasons for not manually level the resources using hard logic ties


I know that some of the article readers will state that they prefer to manually level the schedule using logic ties and only use the automatic leveling feature as a guide line.

My response is now there are new scheduling specifications that don’t allow doing that like for example Connecticut Department of Transportation specification that states:

Resource constraints may not be established through the use of activity logic. If the Contractor deems it necessary to enter resource constraints (labor or equipment) in the schedule, these constraints shall be established through the use of resource loading and leveling of the schedule

And also the same specification require the usage of P6 software:

The Contractor shall prepare and maintain CPM Schedules utilizing the latest version of Oracle Primavera P6 software.

Another reason is when we have a big schedule with a lot of soft logic and if these links were not well documented, if any altering in the plan occurred it will be hard to determine the soft logic from the hard logic and may take a while to detect and change the logic and manually re-level the schedule. My advice is to well document the plan and the assumptions that you used in creating the schedule.

Software that have updated model

The spider team did a great job in creating an updated model that calculate the critical path of resource driven schedules and even introduced new type of resources like the consumable resources, and took in consideration different types of resources constraints which are:

  • Renewable resource constraints,
  • Material and Equipment supply constraints,
  • Funding constraints,
  • Calendar Constraints,
  • Imposed Dates (like Start No Earlier Than).

If you are interested in knowing more about their software you can visit their website:


In conclusion Oracle team need to update the model of Primavera software that has been used for a very long time now without any update and which not adhere with the latest industry knowledge, there are a lot of researches and enhancements occurred in the scheduling field now that have not being utilized, they force the users to find indirect solutions for a lot of issues and they don’t even fix the issues that they have created, for example the POBS table issue which increase the database and the XER files size and not even being used by P6, several P6 releases came out after discovering this issue without being fixed in these new releases.

Market Place

Primavera P6 and Microsoft Project books, on-line video training courses and training material available from an internationally recognised publisher. Teach yourself using on-line or book based learning or run your own in-house or public courses.