Milestones and Key Dates

Last reviewed 9 September 20262,375 words11 min read

Contractual, planning and interface milestones β€” and which ones get a constraint

🟩 In one line: A milestone is either a contractual obligation, an interface with someone else, or an internal target β€” code it as one of the three, constrain only the first two, and keep planned completion and contractual completion as two separate milestones.

πŸ‘€ Who this is for: Junior to mid-level planners building or reviewing a milestone node. Prerequisites: P6-constraint-types, Float-ownership-and-contract, Wbs-structure-design.

e / c
First, let's be honest about why this page exists

Milestone lists arrive from three directions β€” the contract, the client's PMO and the project manager's whiteboard β€” and they end up in one P6 node with the same look, the same code and, worst of all, the same constraint. Then the schedule shows negative float against an internal target nobody is liable for, and nobody can tell which red number matters.

Sorting them is a one-afternoon job that saves months of argument. This is a reference page: tables first, argument in the linked pages.

🟨 The standard β€” what "good" looks like
SourceWhat it says (paraphrased)Use it for
FIDIC 1999 Cl 8.2, Cl 10.1, Cl 8.7; 2017 Cl 8.2, Cl 10.1, Cl 8.8Contractor completes the Works, and each Section, within the Time for Completion; taking over on completion; delay damages per Section (check the edition in your contract)Which dates carry liability
FIDIC 1999 Appendix to Tender / 2017 Contract DataSections and their Times for Completion listed with damages per Section (check against your copy)Source of sectional milestones
FIDIC 2017 definition of Milestone2017 introduces a defined term for a part of the Works to be completed by a stated date (check against your copy)Flag β€” check whether the contract uses it
NEC3 / NEC4 Cl 11.2 (Completion, Key Date, Condition), Cl 30.1, Cl 30.3, Cl 25.3Completion Date for the whole; Key Dates require a stated Condition met by a date; Employer's cost recoverable if a Condition is not met (check the edition in your contract)NEC's two kinds of obligation
NEC Option X5, X7Sectional Completion; delay damages (check against your copy)When NEC has Sections
NEC Cl 31.2Programme shows Completion Date, Key Dates, planned Completion, and other dates the Scope requiresWhy planned and contractual are two milestones
DCMA 14-Point, item 5 (Hard Constraints); GAO Best Practice 4Hard constraints minimised; constraints justified and documentedConstraint register discipline
PMI Practice Standard for Scheduling, 3rd ed.Milestones as zero-duration events with defined acceptance criteria (check against your copy)Every milestone has a completion criterion
Hub conventionConstraints only Start On or After (access) and Finish On or Before (contractual completion); register entry with document reference; Must Finish By blank; planned and contractual completion as a pairYour defaults

🟒 Rule: if a milestone is in the contract it gets a Finish On or Before and a register row; if it is a date someone else owes you it gets a Start On or After and a register row; if it is neither, it gets a code and nothing else.

How it actually works

The three kinds

TypeExamplesWho is liableP6 milestone typeConstraintMilestone Type code
Contractual β€” completionTime for Completion; each Section; NEC Completion DateContractorFinish MilestoneFinish On or Before, dated per contractCONTRACT / SECTIONAL
Contractual β€” key date / conditionNEC Key Dates; FIDIC 2017 Milestones; specified hand-back of a roadContractorFinish MilestoneFinish On or BeforeKEYDATE
Contractual β€” commencementCommencement Date; Access Date to site or partEmployerStart MilestoneStart On or AfterINTERFACE-IN
Interface β€” inboundEmployer-supplied equipment; other contractor's handover; utility connectionEmployer / third partyStart MilestoneStart On or After, dated per notice or contractINTERFACE-IN
Interface β€” outboundHandover to fit-out contractor; energisation for tenantContractor to othersFinish MilestoneNone unless in contract (then KEYDATE)INTERFACE-OUT
Planning β€” internalTopping out; envelope watertight; planned completion; payment milestonesNobody contractuallyStart or Finish MilestoneNonePLANNING / PAYMENT

P6 set-up

ItemSetting
WBSStanding node Milestones, children by type; sectional milestones may also sit under their Section's node β€” pick one and state it in the SBM
Activity typeStart Milestone or Finish Milestone (Activities β†’ Activity Details β†’ General β†’ Activity Type; verify against version in use)
DurationZero, always
CalendarThe calendar of the work it closes; contractual completion on the contract-day calendar (7-day if the contract counts calendar days)
ResourcesNone
LogicFinish milestones: FS or FF in from the last real activity; no successors except the next contractual milestone chain. Start milestones: one FS out to the first activity needing it
CodesMilestone Type as above; Report Level = L1; Responsibility = the party that owes the date
NotebookConstraint Basis: document reference, clause, date, acceptance criterion
Layout04 Float reports total float at each CONTRACT/SECTIONAL/KEYDATE milestone; 05 Constraints lists every constrained milestone against the register

Planned vs contractual completion β€” always two milestones.

MilestoneConstraintFloat shownPurpose
Planned Completion (PLANNING)NoneFloat to contractual completion = terminal float / TRAShows the contractor's real target and how much room remains
Contractual Completion (CONTRACT)Finish On or Before, contract dateNegative when late; zero or positive when notThe only date liability attaches to

Linking them FS with the TRA activity between makes the contractor's time-risk allowance visible and named (NEC Cl 31.2 requires it; on FIDIC it is good practice and protects the float argument).

The constraint register β€” one row per constrained milestone: ID, name, constraint type, date, reason, document reference, date added, date last changed, change reference. No document reference, no constraint. Register in SBM section 3 and every narrative.

Moving a contractual milestone. Only on a written EOT award (FIDIC Cl 8.4 / 2017 Cl 8.5; NEC Cl 65 / 66 implementation β€” verify), a revised Completion Date, or a signed amendment. Until then the milestone shows negative float with one explanatory sentence in the narrative. Planning milestones move whenever the plan does; that is what they are for.

πŸ“œ NEC Key Dates vs FIDIC Sections β€” what the difference means for the schedule
PointNEC Key DateFIDIC Section
What must be achievedA stated Condition β€” a state of the works, not necessarily a completed part (Cl 11.2)Completion of a defined part of the Works fit for taking over (Cl 10.1)
Remedy if missedEmployer's additional cost of its own or others' work (Cl 25.3), not delay damagesDelay damages for the Section per Appendix/Contract Data (Cl 8.7 / 8.8)
ExtensionCompensation event may move the Key Date (Cl 63)EOT may extend the Section's Time for Completion (Cl 8.4 / 8.5)
In P6KEYDATE milestone; its predecessor chain defines the Condition β€” write the Condition in the Notebook, not just the dateSECTIONAL milestone closed by the Section's last activity and its tests
Float reportedAt the Key Date and at Completion separatelyAt each Section and at the whole Works separately

🟒 On both forms, report float at every contractual milestone, not just the last one. The last one is often the least critical.

πŸŸ₯ Where people go wrong
  1. Finish On or Before on internal targets. Topping-out gets a constraint because the PM promised it to the region, and the schedule shows βˆ’12 days on a date with no liability. Internal targets are coded PLANNING and reported as a variance, not constrained.
  2. Must Finish By at project level instead of a milestone. It hides the float calculation and cannot carry a document reference. Leave Must Finish By blank; constrain the milestone.
  3. One milestone for planned and contractual completion. The TRA disappears into the last activity, and every day of early finish looks like the contractor "had float". Two milestones, a named TRA between them.
  4. Milestones with successors into production work. A contractual completion milestone that drives a later activity distorts the longest path. Contractual finish milestones close chains; they don't open them.
  5. Sectional milestones with no test-and-commissioning chain in front of them. The Section "completes" when the last wall is painted, and the taking-over certificate is six weeks later. The Section's milestone follows its T&C and inspection activities (see Commissioning-and-handover-planning).
  6. Interface dates without a document reference. "Chiller plant delivered by Employer 15-Mar" with nothing behind it is a bare assertion the Employer will deny in the claim. Register row, letter or contract reference, or no constraint.
  7. Payment milestones treated as schedule milestones. They are coded PAYMENT so the QS can filter them, and they carry no constraint and no logic beyond the activities that trigger them.
βš–οΈ When you're challenged

"Why does the schedule show minus fifteen days against the podium handover? That's not in the contract." It shouldn't, and it doesn't now β€” that milestone was constrained by mistake. It's coded PLANNING with no constraint; the narrative shows it as a 15-day variance against our internal target, which is the honest way to report it.

"Just move the completion milestone to match the recovery plan." The contractual milestone moves only on a written EOT. The recovery target is the Planned Completion milestone, and it already shows the recovered date. Both are in the report, with the gap between them.

"What's the difference between a Key Date and Completion? Both are just dates." A Key Date is a Condition β€” a state the works must reach so the Employer or another contractor can proceed β€” and missing it costs us their extra cost under Clause 25.3, not delay damages. Completion is the whole. The schedule reports float at each of them separately because the Key Date is on a different path.

"Why is the access milestone constrained when we haven't got access yet?" Start On or After represents the date the Employer is obliged to give access under the contract. If access comes later, the milestone's actual start records the real date, and the difference is the basis of the notice we've already sent.

πŸ“„ Related pages
✏️ Worked example β€” Doha twin towers, milestone register extract

Contract: FIDIC 1999 Red, three Sections; Employer supplies district-cooling connection.

IDMilestoneType codeP6 typeConstraintDateDocument refTF at DD 25-Apr
MS-010Commencement DateINTERFACE-INStartSOoA01-Feb (Y1)Letter of Commencement ref C-001Actual
MS-020Access to Plot B (Tower B)INTERFACE-INStartSOoA01-Jun (Y1)Contract Appendix, item 4Actual (12-Jun, notice N-003 issued)
MS-100District-cooling connection availableINTERFACE-INStartSOoA15-Mar (Y3)Employer's letter E-041+22
MS-210Section 1 β€” Podium & car park, Time for CompletionSECTIONALFinishFOoB30-Sep (Y2)Appendix to Tender, Section 1βˆ’9
MS-220Section 2 β€” Tower A, Time for CompletionSECTIONALFinishFOoB31-Mar (Y3)Appendix to Tender, Section 2+4
MS-230Section 3 β€” Tower B / whole WorksCONTRACTFinishFOoB30-Sep (Y3)Appendix to Tender, Section 3+18
MS-225Tower A β€” planned completionPLANNINGFinishNone10-Mar (Y3)Internal+25 (to MS-220, incl. TRA-A 15 d)
MS-300Tower A topping outPLANNINGFinishNone15-Aug (Y2)Internal+31
MS-400Handover of L1 retail shells to fit-out contractorINTERFACE-OUTFinishNone15-Nov (Y2)Employer's Requirements Β§3.4 (no liability stated)+6

Read of the register: The whole-Works date has 18 days; Section 1 has βˆ’9. The narrative reports Section 1 first, names the driving chain (podium waterproofing β†’ car-park MEP β†’ fire test), and states that MS-210 stays on its contract date pending the EOT claim referenced in notice N-007. MS-300 topping out is 31 days behind the internal target and is reported as a variance, not as float.

πŸ“– References
  • FIDIC Conditions of Contract for Construction 1999, Cl 1.1.3, 8.2, 8.4, 8.7, 10.1, 10.2, Appendix to Tender (check the edition in your contract)
  • FIDIC Conditions of Contract for Construction 2017, Cl 8.2, 8.5, 8.8, 10.1, Contract Data; definition of Milestone (check against your copy)
  • NEC3 / NEC4 ECC, Cl 11.2, 25.3, 30.1, 30.3, 31.2, 63, Options X5 and X7 (check the edition in your contract)
  • DCMA 14-Point Schedule Assessment, item 5; GAO Schedule Assessment Guide GAO-16-89G, Best Practice 4
  • PMI, Practice Standard for Scheduling, 3rd ed. (check against your copy)
  • Oracle Primavera P6 Professional User Guide β€” Activity types; Constraints (check against your P6 version)

From the field

Experience from working planners. Unreviewed β€” read it as experience, not guidance.

Add what you know about milestones and key dates. What worked, what the consultant pushed back on, what you would do differently next time. A paragraph is plenty.

Contributors get their name and one link on the site β€” your own templates, course or consultancy. We take nothing and hold nothing.

Add your experience