BRC Academy · Microsoft Project

Constraints and deadlines

Contracts are full of dates, and the temptation in Microsoft Project is to type them straight in. Do that and Project quietly adds a constraint, and a constraint can hold a task on its date even when the work feeding it is running late. The result is a schedule that reports the contract date while the logic says otherwise. Project has a better tool for most contract dates: the deadline, which flags a miss without hiding it. This lesson covers the eight constraint types, when each is justified, how deadlines differ, and how Northgate's owner should carry its Ready-for-Takeover date.

Learning outcomes

  • Name Project's eight constraint types and group them as flexible, semi-flexible or inflexible.
  • Set and reset constraints and deadlines in Project desktop, and recognize constraints created by typing dates.
  • Predict how a delay shows up under an inflexible constraint compared with a deadline.
  • Write owner rules for which dates may be constrained in a master or contractor schedule.

The lesson

Eight constraint types

Every auto-scheduled task has a constraint type. In a project scheduled from its start date, as Northgate's is (Lesson 3), the default is As Soon As Possible; in one scheduled from its finish date, it is As Late As Possible [1][2]. The other six tie the task to a date. Microsoft groups all eight in three families [1], shown in Figure 1:

  • Flexible constraints do not tie the task to a date: As Soon As Possible (ASAP) and As Late As Possible (ALAP).
  • Semi-flexible constraints set one edge: Start No Earlier Than (SNET), Start No Later Than (SNLT), Finish No Earlier Than (FNET) and Finish No Later Than (FNLT).
  • Inflexible constraints fix the date: Must Start On (MSO) and Must Finish On (MFO).
Project's eight constraint types in three families Three groups. Flexible, no date: As Soon As Possible, the default when scheduling from the start date; As Late As Possible, the default when scheduling from the finish date. Semi-flexible, one edge: Start No Earlier Than, start on or after a date; Start No Later Than, start on or before a date; Finish No Earlier Than, finish on or after a date; Finish No Later Than, finish on or before a date. Inflexible, fixed date: Must Start On; Must Finish On. Inflexible ones are highlighted in orange because they can override logic. Flexible: no date ASAPAs Soon As Possible Default when scheduling from the start date ALAPAs Late As Possible Semi-flexible: one edge SNETStart No Earlier Than Start on or after the date SNLTStart No Later Than Start on or before the date FNETFinish No Earlier Than Finish on or after the date FNLTFinish No Later Than: finish on or before Inflexible: fixed date MSOMust Start On MFOMust Finish On Can hold a task on its date against its logic
Figure 1. The eight constraint types. The further down the figure, the less Project can move the task. Source: BRC, based on Microsoft Support, Set a task start or finish date (constraint) for a task, and Constraint Type (task field) [1][2].

Setting, resetting and accidental constraints

To set one, select the task, choose Task > Information, open the Advanced tab, pick from the Constraint type list and, for anything other than ASAP or ALAP, enter the Constraint date [1]. Microsoft points out that you cannot really delete a constraint; you reset it to ASAP (or ALAP when scheduling from finish), which ties the task back to its links [1].

Most constraints in real schedules are not chosen. They are typed. Microsoft warns that changing a task's Start or Finish date in the sheet makes Project add a constraint that forces the task to that date [1], and the Constraint Type article spells out that a typed start date becomes Start No Earlier Than, with your date as the constraint date [2]. Typed finish dates also become constraints. If you change the start of a task that already has a start constraint, the Planning Wizard asks whether to keep the old constraint or replace it with SNET on the new date [3]. The fix for an accidental constraint is always the same: reset to ASAP and let the links drive.

To audit a file, insert the Constraint Type and Constraint Date columns, or sort by Constraint Type. The Indicators column also shows an icon on constrained tasks.

When constraints fight logic

A semi-flexible constraint usually just stops a task moving earlier (SNET, FNET) or flags lateness (SNLT, FNLT). An inflexible one can do more. Under File > Options > Schedule, the option Tasks will always honor their constraint dates (the HonorConstraints setting in Project's object model [6]) is on in a new file. With it on, an MSO or MFO task stays on its date even if its predecessors finish later, and the conflict shows up as negative slack, which Microsoft says is usually caused by constraint dates [5]. With it off, links win and the task moves past its constraint date. Neither setting makes a bad constraint good; they only change where the problem appears.

Deadlines: the owner's tool

A deadline is a target date that does not move the task. Set it in Task Information, Advanced tab, in the Deadline box [4]. Microsoft describes it as the right choice when you need a reminder rather than a fixed date [4]. A deadline does not change scheduling and does not produce the scheduling error messages constraints can, but it can affect how total slack is calculated [7]. It appears as an arrow on the Gantt chart [4][7], and if the task finishes after it, an indicator appears in the Indicators column [2][4].

In practice that gives an owner exactly what it wants from a contract date: the task's forecast follows the logic, the deadline stays where the contract put it, and the gap shows up as negative total slack (Lesson 11) and a missed-deadline flag.

Northgate worked example

For Northgate Distribution Centre (fictional), M9 is Ready-for-Takeover and Substantial Performance on Fri Jan 14, 2028, and M10, the start of the owner's racking and occupancy work, is Mon Jan 17, 2028 (Northgate fact sheet). In NDC_OwnerMaster_2027-01-11.mpp, M10 follows M9 finish-to-start. The question is how to carry the contractual M9 date.

A what-if: commissioning runs ten days late

Take a hypothetical, not a fact-sheet event: Halvorsen Builders Ltd. (fictional) reports that commissioning work feeding M9 will finish ten working days late, on Fri Jan 28, 2028. Figure 2 shows three ways the owner's file could react.

  • M9 as Must Finish On, honor constraints on. M9 stays on Jan 14 and M10 still shows Mon Jan 17. The predecessors run past M9 and carry negative slack, but the milestone report, the Timeline and the board deck all say "on time".
  • M9 as Must Finish On, honor constraints off. M9 moves to Jan 28 and M10 to Mon Jan 31. The dates are right, but the constraint is now a broken promise sitting in the file, and the next person to switch the option back on gets the first picture.
  • M9 as ASAP with a deadline of Jan 14. M9 forecasts Fri Jan 28, M10 moves to Mon Jan 31, the deadline arrow stays at Jan 14, the missed-deadline indicator appears and M9 shows ten days of negative slack. The delay is visible and measured.
The same ten-day delay under a Must Finish On constraint and under a deadline Three timelines from January 10 to February 4, 2028. In each, the commissioning work feeding M9 now finishes Friday January 28. Panel 1, Must Finish On with honor constraints on: M9 stays at Friday January 14 and M10 at Monday January 17; negative slack is hidden behind an on-time milestone. Panel 2, Must Finish On with honor constraints off: M9 moves to January 28 and M10 to Monday January 31, with a broken constraint left in the file. Panel 3, As Soon As Possible with a deadline: M9 moves to January 28, M10 to January 31, a deadline arrow stays at January 14, and M9 shows minus 10 days of total slack with a missed-deadline indicator. Jan 10Jan 17Jan 24Jan 31 contract M9, Jan 14 1. Must Finish On, honor constraints on work ends Jan 28 M9 stays Jan 14 M10 Jan 17 Report says on time; negative slack only on the work 2. Must Finish On, honor constraints off M9 Jan 28 M10 Jan 31 Dates right, but a broken constraint stays in the file 3. ASAP with a deadline (owner's choice) deadline M9 Jan 28 M10 Jan 31 Missed-deadline indicator; M9 total slack -10d
Figure 2. A hypothetical ten-working-day delay to the work feeding M9 (illustrative, not a Northgate fact-sheet event). Only the deadline shows both the contract date and the honest forecast. Source: BRC, based on the Northgate fact sheet and Microsoft Support, Set a deadline for a task, Deadline (task field) and Negative Slack (task field) [4][5][7].
View the data
Set-upM9 showsM10 showsHow the delay appears
MFO Jan 14, honor constraints onFri Jan 14, 2028Mon Jan 17, 2028Negative slack on predecessors; milestone looks on time
MFO Jan 14, honor constraints offFri Jan 28, 2028Mon Jan 31, 2028Constraint date passed; constraint left in file
ASAP with deadline Jan 14Fri Jan 28, 2028Mon Jan 31, 2028Missed-deadline indicator; M9 total slack -10 days
Screenshot to come
Screenshot to come: Microsoft Project Professional 2024 (desktop), file NDC_OwnerMaster_2027-01-11.mpp, Task Information dialog for "M9 Ready-for-Takeover / Substantial Performance" on the Advanced tab, showing Deadline Fri 2028-01-14, Constraint type As Soon As Possible and the Constraint date box greyed out

Where constraints are justified

Constraints are not banned; they need a reason the logic cannot express. The kickoff meeting, M1 on Tue Jan 19, 2027, is booked in people's calendars and cannot happen earlier, so Start No Earlier Than on that date is honest. A delivery that a supplier has confirmed for a given day can carry SNET too. In each case the constraint is semi-flexible, it records an outside fact, and a note on the task says where the date came from. Figure 3 is the test the owner's scheduler applies.

Choosing between links, a deadline and a constraint A three-question decision path. Question 1: can the date be produced by links to other tasks? Yes: use links with As Soon As Possible. No: question 2: is it a target you must report against, such as a contract milestone? Yes: use a deadline. No: question 3: is there an outside fact that stops the task happening earlier, such as a booked meeting or confirmed delivery? Yes: Start No Earlier Than or Finish No Earlier Than, with a note giving the source. No: go back and model the missing work. Must Start On and Must Finish On are a last resort and need written approval. Can links to other tasksproduce the date? Yes Links + ASAP No Is it a target to report against(contract milestone)? Yes Deadline No Does an outside fact stop ithappening earlier (bookedmeeting, confirmed delivery)? Yes SNET or FNET+ note with source No Model the missing work as tasks MSO and MFO: last resort only, with written approval and a reason in the task note
Figure 3. An owner's test for any date in the master schedule. Source: BRC, based on Microsoft Support, Set a task start or finish date (constraint) for a task, and Set a deadline for a task [1][4].
Screenshot to come
Screenshot to come: Microsoft Project Professional 2024 (desktop), file NDC_OwnerMaster_2027-01-11.mpp, Gantt Chart view with Indicators, Task Name, Constraint Type, Constraint Date, Deadline, Finish and Total Slack columns, showing M1 with an SNET indicator, M9 with the missed-deadline indicator and the deadline arrow at Jan 14, 2028 in the chart

Owner's move

  • Carry contract milestones as deadlines. M4 to M9 and M11 get deadlines at their contract dates; their constraints stay ASAP.
  • Ban inflexible constraints without approval. Any MSO or MFO in the owner's master or a contractor's Project file needs a written reason. In an Oracle Primavera P6 schedule the same rule applies to mandatory constraints.
  • Audit constraints every update. Sort by Constraint Type. Every SNET created by a typed date in the last month is a task that has stopped following its logic.
  • Keep "honor constraint dates" on. It makes conflicts show up as negative slack, where you will see them, rather than as silently moved tasks.
  • Report negative slack, not just dates. A milestone that shows its contract date with predecessors at -10 days is late, whatever the date column says.

Common mistakes

  1. Typing dates into the Start column. Each one becomes an SNET constraint [2], and the task stops moving earlier when its predecessors finish early.
  2. Must Finish On for contract milestones. The milestone stays on time on paper while the work behind it runs late.
  3. Turning off "honor constraint dates" to make red go away. The constraint is still there; you have just stopped looking at it.
  4. Using deadlines as targets nobody watches. A deadline only helps if someone reads the indicator and the negative slack every update.

Quick quiz

  1. In a project scheduled from its start date, the default constraint is:

    1. Start No Earlier Than
    2. As Soon As Possible
    3. Must Start On
    4. As Late As Possible
  2. You type a new date in an auto-scheduled task's Start cell. Project:

    1. Sets a deadline
    2. Sets a Start No Earlier Than constraint on that date
    3. Sets Must Start On
    4. Changes the task to manually scheduled
  3. Which pair is inflexible?

    1. SNET and FNET
    2. SNLT and FNLT
    3. MSO and MFO
    4. ASAP and ALAP
  4. A deadline that a task misses:

    1. Holds the task on the deadline date
    2. Changes the task's constraint to MFO
    3. Leaves the dates alone, shows an indicator and can make total slack negative
    4. Deletes the task's predecessors
  5. In the Northgate what-if, M9 is MFO Jan 14, 2028 with honor constraints on, and its work finishes Jan 28. What does M9 show?

    1. Fri Jan 14, 2028
    2. Fri Jan 28, 2028
    3. Mon Jan 31, 2028
    4. No date
Show answers and explanations
  1. B. ASAP is the default when scheduling from the start date; ALAP when scheduling from the finish date [1][2].
  2. B. A typed start becomes SNET with your date as the constraint date [2].
  3. C. Must Start On and Must Finish On fix the date [1].
  4. C. Deadlines do not change scheduling, show an indicator when missed and can affect total slack [7].
  5. A. With constraints honoured, the MFO keeps M9 on Jan 14 and the conflict appears as negative slack on the work feeding it.

Key terms

Constraint
A restriction on when a task can start or finish, set by type and, for six of the eight types, a date.
Semi-flexible constraint
SNET, SNLT, FNET or FNLT: limits one edge of a task's dates.
Inflexible constraint
MSO or MFO: fixes a task's start or finish date.
Deadline
A target date on a task that does not move it, shows as an arrow and flags a miss.
Honor constraint dates
The schedule option that makes constraints take priority over links, so conflicts appear as negative slack.
Planning Wizard
The prompt that asks whether to keep or replace a constraint when you change a constrained task's date.

References

  1. Microsoft. Set a task start or finish date (constraint) for a task. Microsoft Support (Project desktop).
  2. Microsoft. Constraint Type (task field). Microsoft Support.
  3. Microsoft. Changing a start date for a task constrained by a date. Microsoft Support.
  4. Microsoft. Set a deadline for a task. Microsoft Support.
  5. Microsoft. Negative Slack (task field). Microsoft Support.
  6. Microsoft. Application.OptionsSchedule method (Project). Microsoft Learn.
  7. Microsoft. Deadline (task field). Microsoft Support.

Verified on November 6, 2026.

Next lesson in this trackTask types: units, duration, work

PMI, PMP and PMBOK are registered marks of the Project Management Institute, Inc. Oracle and Primavera are trademarks of Oracle. Microsoft Project is a trademark of Microsoft. BRC Academy is not affiliated with or endorsed by these organizations.

← All BRC Academy lessons

Have a program that's slipping, or about to start?

Book a 30-minute call. We'll tell you where your schedule and budget are exposed, and what an owner's rep would change, before you commit to anything.