Using Constraints in Primavera P6: What They Are and Why Less Is More
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.

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.

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. |

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.

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.

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.


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.
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/