Using Constraints in Primavera P6: What They Are and Why Less Is More

By Trey Miller, PMP, PMI-SP

Constraints in Primavera P6 are powerful — and easy to overuse. A beginner-friendly guide to what they do, when to use them, and why fewer is almost always better.

The expanded Primary Constraint dropdown menu in Primavera P6, displaying options like Start On, Mandatory Finish, and As Late As Possible.

Figure 1: Constraint options in the Primavera P6 activity details window.

Introduction

Constraints are one of the most powerful features in Primavera P6 — and one of the easiest to misuse. They let you lock an activity to a specific date regardless of what the surrounding logic says. Used sparingly, they can be useful. Used liberally, they turn a well-built schedule into a mess of hard-coded dates that no longer reflects how the project will flow. If you're new to P6, the short version is: constraints exist, they're easy to add, and you should think twice before using them.

What Is a Constraint?

A constraint is a date restriction placed on an individual activity. Instead of dates being calculated purely from predecessors, successors, durations, and calendars, you're telling P6, "This activity has to start (or finish) on this date, no matter what the surrounding logic says." That override is exactly why constraints need to be handled carefully — the moment you add one, that activity is no longer driven purely by the network.

Constraints in P6 live in the Status tab of the Activity Details pane at the bottom of the Activities window.

The Status tab in the Primavera P6 Activity Details pane, showing where to assign primary and secondary constraints.

Figure 2: The Status tab in the Activity Details pane — the home of constraints in P6.

P6 offers several constraint types, all found in the Status tab of the activity details window. You can assign both a Primary and a Secondary Constraint. Here's what each one does:

Constraint What It Does
Start On Forces the activity to start on the specified date
Start On or Before Activity can start on or before the specified date
Start On or After Activity can start on or after the specified date
Finish On Forces the activity to finish on the specified date
Finish On or Before Activity can finish on or before the specified date
Finish On or After Activity can finish on or after the specified date
As Late As Possible Delays the activity to the latest possible date without pushing the project
Mandatory Start Locks the start date. Overrides logic entirely.
Mandatory Finish Locks the finish date. Overrides logic entirely.
Figure 3: The primary constraint options available in Primavera P6.

The expanded Primary Constraint dropdown menu in Primavera P6, displaying options like Start On, Mandatory Finish, and As Late As Possible.

Figure 4: The expanded Primary Constraint dropdown showing all available constraint types.

A Quick Example: How Constraints Distort the Schedule

Say you're scheduling Building 1 on the Saratoga Senior Community project. The floor slab pour has a Start-to-Start relationship with the previous slab activity — the two overlap. P6 calculates the slab pour should start on August 10.

A Primavera P6 schedule showing a Start-to-Start relationship determining the start date of a concrete slab pour before any constraints are added.

Figure 5: The Saratoga slab pour before adding a constraint — the Start date is driven purely by the Start-to-Start relationship with the predecessor.

Now suppose someone adds a "Start On" constraint of August 15 — maybe because the concrete supplier confirmed that delivery date. P6 ignores the SS relationship. The activity now starts on August 15 regardless of what the predecessor does, and if the predecessor slips or finishes early, the constrained activity doesn't move with it. The float on that path changes too. What used to be a schedule driven by realistic sequencing is now driven by a hard-coded date.

A Primavera P6 Gantt chart demonstrating how a Start On constraint overrides a Start-to-Start relationship, forcing the activity to an imposed date.

Figure 6: The Saratoga slab pour after adding a "Start On" constraint — the activity now starts on the imposed date, ignoring the SS relationship.

P6 also gives you a visual cue that a constraint has been applied. Once a constraint is set, an asterisk (*) appears next to the activity's Start or Finish date in the Activities view, flagging that the date is being driven by a constraint rather than by logic. That little asterisk is one of the fastest ways to audit a schedule and see where constraints are hiding.

The Primavera P6 Activities view with a red arrow pointing to an asterisk next to a date, indicating that a constraint has been applied.

Figure 7: The asterisk (*) next to a date in the Activities view indicates a constraint has been applied.
WATCH OUT: Constraints override logic. Any time you add one, you're taking a piece of the schedule out of the network's hands. If dates shift later on the project, constrained activities may not shift with them — which is how schedules end up with negative float and misleading forecasts.

The Total Float column in Primavera P6, highlighting how applying a date constraint changes the calculated slack in a project schedule.

Figure 8: The Total Float column showing how a constraint changes the schedule's calculated slack — including the possibility of negative float when a constraint can't be met.

When Constraints Are Appropriate (and When They're Not)

There's one place constraints almost always make sense: the project finish milestone. Locking the project completion date lets P6 calculate total float and clearly show if the project is at risk of missing its contractual deadline. If the finish date is violated, you'll see negative float — the warning signal you want.

Beyond that, constraints occasionally make sense for genuinely fixed events — an owner-mandated inspection date, a permit hearing, a confirmed material delivery. In each case, the date really is fixed by something outside the project team's control.

At Global PM, we emphasize minimizing constraints throughout our courses. A well-built schedule should be driven primarily by relationships, durations, and realistic sequencing — not by imposed dates. Overusing constraints masks the true critical path, produces misleading float values, and reduces the schedule's ability to react realistically to change. If you find yourself reaching for a constraint, ask first: is there a way to model this with a predecessor, a lag, or a calendar instead? Nine times out of ten, there is.

TEACHING NOTE: If your schedule needs three or more constraints to produce reasonable dates, the underlying logic probably needs work. Constraints are meant to be a last resort — not a fix for missing or incorrect relationships.

The Bottom Line

Constraints are a tool, not a shortcut. Every constraint you add is one more place where the schedule stops following the network and starts following a date you typed in. For beginners, the safest rule is simple: lock the project finish date, then leave the rest to logic. Your schedule will be more accurate, more responsive, and easier to defend.

Interested in building stronger P6 schedules with confidence? Global PM offers expert-led Primavera P6 training that covers constraints, logic, float, and everything else you need to build a schedule that actually holds up. Learn more — https://globalpm.com/primavera-software-training/

Send Us a Message

  • This field is for validation purposes and should be left unchanged.