Project Assure
Try it free →
← All articles

Primavera P6 Constraints Explained (and When to Avoid Them)

Project Assure · Schedule analysis

What Are Primavera P6 Constraints?

Constraints in Primavera P6 are manual overrides that fix a task’s start or finish date, limiting the scheduling engine’s ability to calculate dates based on logic and calendars. They are sometimes necessary but often misused, leading to distorted float, broken critical paths, and failed DCMA checks.

Common Constraint Types

How Constraints Distort Float and the Critical Path

When you apply a constraint, Primavera P6 adjusts the early and late dates accordingly. For example, a “Start On or After” constraint on a successor may create negative float if the preceding logic cannot meet that date. Hard constraints (Mandatory Start/Finish) break the forward/backward pass: the task’s date is fixed, so total float becomes undefined or forced to zero. This masks the true critical path and can make the schedule appear compliant when it is not.

In a logic-driven schedule, the critical path is the longest chain of tasks with zero total float. Constraints introduce artificial float values. A task with a Mandatory Finish may show zero float even if it has slack from its predecessors, hiding a shorter path that is actually driving completion.

Why DCMA Penalises Hard Constraints

The DCMA 14-point schedule assessment includes a check for “Constraints” (point 8). It flags any activity with a constraint other than “Start On or After” (which is allowed for external dependencies) or “As Late As Possible” (which is discouraged). Hard constraints (Mandatory Start/Finish, Finish On, Start On) are considered high risk because they prevent the schedule from responding to delays. A schedule with more than 5% of activities having such constraints fails this check. The GAO schedule guide also warns against using mandatory constraints except for truly immovable dates (e.g., regulatory deadlines).

Using too many constraints also undermines forensic delay analysis. When a baseline has hard constraints, it is difficult to determine if a delay was caused by logic or by the constraint overriding the float. For this reason, many owners and agencies require constraint-free schedules or limit them to specific milestones.

When a Constraint Is Justified vs. When to Use Logic Instead

Justified Uses of Constraints

When to Use Logic Instead

A good rule of thumb: if the constraint is not driven by an external, non-negotiable date, model it with logic. This keeps the schedule dynamic and responsive to changes.

How to Audit Constraints in Your Schedule

You can easily identify all constraints in Primavera P6 by running a report or using the “Schedule” log. Look for activities with a constraint type other than “Start On or After” (if justified) and check the constraint date against the calculated dates. A large discrepancy indicates a potential logic gap.

For a quick, free check, you can use Project Assure, a browser-based tool that parses your XER file locally and runs DCMA 14-point checks, including the constraints test. It highlights every constrained activity and shows whether it passes the threshold. No upload required – your data stays in your browser.

Best Practices for Constraint Management

By understanding how constraints interact with float and the critical path, you can build a more robust, defensible schedule that passes DCMA reviews and supports reliable delay analysis.

Run these checks free, in your browser

Free, browser-based Primavera P6 XER schedule analyser — DCMA 14-point, GAO & NASA checks, EVM/S-curve, and forensic baseline-vs-update comparison. Nothing is uploaded; your XER is parsed locally in the browser. 3 free analyses, no card required.

Analyse your XER →

Frequently asked questions

What is the most common Primavera P6 constraint type?

The most common constraint type is 'Start On or After', often used to model external dependencies like permit dates or weather windows. It is the only constraint type generally accepted by DCMA without penalty.

How do Mandatory constraints affect the critical path?

Mandatory Start or Finish constraints fix the activity’s date regardless of logic, breaking the forward/backward pass calculation. This can hide the true critical path and create artificial float values, making the schedule unreliable for delay analysis.

Why does DCMA penalize hard constraints?

DCMA penalizes hard constraints (Mandatory Start/Finish, Finish On, Start On) because they prevent the schedule from dynamically adjusting to delays. Schedules with more than 5% of activities having such constraints fail the DCMA 14-point check.

When should I use a constraint instead of logic?

Use constraints only for externally imposed, non-negotiable dates such as contractual milestones, regulatory deadlines, or known permit dates. For internal dependencies, always use predecessor/successor relationships with lags if needed.

How can I check if my schedule has too many constraints?

You can run a constraint report in Primavera P6 or use a free tool like Project Assure, which performs DCMA 14-point checks including the constraints metric. It scans your XER file locally and flags any activities with disallowed constraint types.