A significant checkpoint or deadline
A milestone is a significant point in a project's timeline that marks the completion of a phase or the reaching of a checkpoint. It has no duration of its own; it is a marker, not a taskTaskProduct SpecificationA unit of work within a story or epicView reference →. A milestone can act as a flag (a point passed) or as a gate (a point that may not be passed until conditions are met).
The word comes from the literal stones that marked distance along Roman roads, and project management kept the metaphor: a milestone tells you where you are along the route. In formal scheduling it became a zero-duration event dividing a plan into phases, a usage the project-management literature still carries.
The consequential evolution was turning milestones into decisionDecisionStrategyA recorded decision with context, rationale, and consequencesView reference → points. Robert Cooper's Stage-Gate system, developed through the 1980s and detailed in his book Winning at New Products, placed a gate before each stage of new-product development. At each gate, a cross-functional group reviews the evidenceEvidenceValidationData supporting or refuting a hypothesisView reference → and decides go, kill, hold, or recycle. The milestone stops being a date you pass and becomes a date you must earn by clearing a bar. McKinsey later argued that most milestones are toothless precisely because they lack this gating function, and recommended "decision gates with real teeth" where a project genuinely can be stopped.
Scott Berkun's *Making Things Happen*, drawn from his years as a program manager on large Microsoft software projects, codifies what that internal structure looks like in practice. Berkun argues that every milestone is itself a sequence of three smaller deadlines: design complete (specificationsSpecificationFoundationsA canonical open standard or specification that primitives and products conform toView reference → finished), featureFeatureProduct SpecificationA product capability or featureView reference → complete (implementation finished), and milestone complete (quality and refinement closed out). By that reading, a milestone is not one gate but three nested ones, and a team that skips the internal sequence tends to arrive at the outer date in worse shape than the date itself reveals. Berkun adds a sizing principle that links back to the gating logic: the more uncertainty a project carries, the shorter its milestones should be, so that the gate is reached before change accumulates to the point where earlier decisions are stranded.
The current debate pits milestone-based planning against outcomeOutcomeStrategyA desired business or user outcomeView reference →-based roadmapping. Output milestones ("ship the redesign by Q3") can be hit while the product fails, because shipping is not the same as moving a metricMetricStrategyA unified metric that measures progress, health, or behaviour across the productView reference →. The reconciliation most teams reach is to gate milestones on outcomes, so the checkpoint asks whether the result was achieved, and to keep date-only milestones for genuinely fixed external commitments such as a compliance deadline.
A team building a regulated lending feature has a hard external milestone: the new affordability rules take effect on 1 September, and the feature must be live and compliant by then. That milestone is a gate, not a flag. They define its exit criteria explicitly: the affordability check passes the auditor's test suiteTest SuiteQuality AssuranceA suite of related testsView reference →, the data-retention policy is signed off, and the rollback plan is rehearsed. A second, internal milestone (private beta complete) is gated on an outcome, with no fixed date attached: at least 50 beta users complete a loan application without support contact. When beta evidence is thin, the gate holds and the launch milestone moves with it, which is the system working, not failing. A date-only flag would have waved the unproven feature straight at the legal deadline.
In the Unified Product Graph, a milestone sits in the programme-management region as the temporal spine other entities hang from. Projects aim at it through ProjecttargetsMilestonehierarchy, giving a body of work a dated checkpoint to converge on. Its gating power is explicit in two complementary edges: project_targets_milestoneMilestonegatesReleasecross-domain and milestone_gates_releaseMilestonegatesDeliverablecross-domain model the Stage-Gate logic where nothing proceeds until the bar is cleared, while milestone_gates_deliverableMilestonetriggersReleasecross-domain models the flag case where reaching the point fires the next step automatically. Separating gate from trigger in the structure means a team can query, for any milestone, whether it holds the line or merely marks the spot, which is the distinction Cooper's gates and outcome roadmapping both turn on.milestone_triggers_release
Type-specific fields on BaseNode
milestone_ordernumberDisplay order of this milestone within its parent project (0-indexed). The scalar ordering convention shared with `journey_step.step_order` and `journey_action.action_order` (UPG-663 / UPG-674). Orders the delivery milestones a project moves through, independent of `due_date`.
due_datestringTarget due date (ISO format)
met_on_timebooleanWhether the milestone was met on time
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
4 phases, initial: todo · template: WORK_ITEM
5 edge types connected to this entity.
project_targets_milestonemilestone_gates_releasemilestone_triggers_releasemilestone_gates_deliverablestatus_report_reports_on_milestone