Project Milestones
Dated checkpoints across five types with required due dates, auto-progress from linked tasks and CRM tasks, two-way goal linking, and rich task management via the Linked Items slide panel.
Milestones in PrimeTask are the concrete checkpoints of your project - dated deliverables, phase completions, key decisions, and releases. Every milestone has a required due date, a type that describes what kind of checkpoint it is, and links to the tasks that roll up into it. When a milestone has linked tasks, its progress and status are calculated automatically from the completion of those tasks.
Milestones differ from goals in important ways: milestones require a due date (goals don't), and milestones track progress from linked tasks (goals track from Key Results and/or linked milestones). Milestones also link back to goals - supporting the two-way goal↔milestone relationship. For goals, see Project Goals.
Milestones are dated checkpoints
Use them for moments that need a due date, such as phases, handoffs, decisions, releases, or client reviews.
What you can do
Create milestones
across five types - Phase, Deliverable, Decision, External, Release
Set a required due date
so progress can be tracked against a deadline
Link tasks and subtasks
to a milestone - both regular project tasks and CRM tasks
Track progress automatically
See status auto-derived
not_started, in_progress, at_risk, overdue, or completed
Set priority
Critical, High, Medium, or Low
Link back to goals
two-way sync with the Goals system
Manage milestones
from the Milestones tab (full list view) or inline from the Overview tab
Use the Milestone modal
for full editing of metadata and linked goals
Use the Milestone Linked Items slide panel
for rich task management - link, unlink, and edit inline
Filter tasks by milestone
on the Tasks tab
See milestones on the Gantt chart
as dated markers
Drag to reorder
milestones in the list
Add tags
for filtering and grouping
Milestone types
Every milestone has one of five types. The type is purely descriptive - it classifies what kind of checkpoint the milestone represents:
| Type | What it represents | Example |
|---|---|---|
| Phase | A stage of work or sprint | "Phase 2: Backend Implementation" |
| Deliverable | A tangible output shipped or handed off | "v1 API documentation" |
| Decision | A decision point that gates further work | "Technology stack approval" |
| External | A checkpoint tied to an external party or dependency | "Client feedback received" |
| Release | A release, deployment, or launch | "v2.0 Production Release" |
Type doesn't change the progress calculation - it's a classification for reporting, filtering, and clarity when scanning the Milestones tab.
Choose milestone type for clarity
The type helps explain why the checkpoint matters, but progress still comes from linked work.
Due dates are required
Every milestone must have a due date. This is the core difference between milestones and goals - milestones are inherently dated, which is what lets PrimeTask track them as overdue or at-risk. When creating a milestone, the due date is a required field in the modal.
Status is auto-derived
Milestone status is not a value you set - it's computed from progress and due date:
| Status | When it applies |
|---|---|
| Completed | Progress is 100% |
| Overdue | Due date has passed and progress is not 100% |
| At Risk | Due date within 3 days and progress < 80% |
| In Progress | Progress > 0 and none of the above |
| Not Started | Progress is 0 |
Status updates live as you add, complete, or remove linked tasks. The Overview tab's Health Assistant flags milestones that are overdue or at risk - see Project Overview Tab.
Due dates affect project health
Overdue and at-risk milestones can change the project's overall health.
Milestone progress - auto when linked, manual when not
Milestone progress works two ways depending on whether the milestone has linked work:
- Auto-tracked from linked tasks - when a milestone has at least one linked task or CRM task, its progress is computed automatically from those items. You never need to set the percentage by hand.
- Manual progress slider - when a milestone has no linked tasks, a slider appears so you can set the percentage yourself. Useful for milestones imported from another tool, checkpoint-style milestones with no underlying task work ("Legal sign-off", "Vendor contract returned"), or projects you started tracking mid-flight.
The mode is automatic - you don't toggle anything. Link a task and the slider goes away, replaced by the auto-tracked percentage. Unlink every task and the slider returns with your previously stored value.
Link tasks to switch to auto-tracking
Manual progress is for milestones with no underlying task work or for migrating in-flight projects. Once you link tasks, the milestone tracks them automatically and the slider hides.
When auto-tracking applies
When at least one task or CRM task is linked:
- Each linked task contributes its own progress (status-based, with subtask completion factored in via the weighted-parent strategy)
- Each linked CRM task contributes its own progress the same way
- The milestone's progress is the average of all linked items' progress
- Custom Active statuses count too - any task in a status mapped to the Active category contributes partial credit just like a built-in In Progress status
Mark a linked task complete and the milestone's percentage advances immediately.
Subtasks count too
Linked tasks that have subtasks contribute weighted-parent progress - the parent task's progress takes subtask completion into account. This matches the main task progress calculation used elsewhere in PrimeTask.
CRM tasks count too
Milestones can link to both regular project tasks and CRM tasks. Both contribute to auto-progress, letting project milestones span work that happens in the CRM layer (follow-ups, demos, client calls).
Where to set manual progress
You can set manual progress in two places:
- On the milestone row in the Milestones tab - drag the slider next to the milestone, or type a value into the number field. The card label changes to manual so you know where the number is coming from.
- In the Milestone modal when creating or editing - the modal shows the same slider when the milestone has no linked tasks. Handy for setting initial progress when importing or capturing a milestone that's already partway done.
Status is derived from the manual percentage automatically - completed at 100%, overdue if past due, at risk if close to due and below 80%, in progress otherwise.
Priority
Each milestone has a priority - Critical, High, Medium, or Low - set manually. Priority is used for sorting and visual emphasis, and surfaces in the Health Assistant when milestones are flagged.
How to open milestones
- Milestones tab - press 4 on the Project Details Page, or click the Milestones tab
- Overview tab - milestones are editable inline in the right column of the Goals & Milestones widget (for shorter projects)
- Add Milestone shortcut - press M anywhere on the Project Details Page to open the new-milestone modal
- From the project header - click the Add Milestone action button
- From the Tasks tab - use the milestone filter to see tasks linked to a specific milestone
The Milestone modal
The Milestone modal is used to create a new milestone or edit an existing milestone's metadata. Fields:
- Name (required)
- Description (optional)
- Type - Phase / Deliverable / Decision / External / Release
- Priority - Critical / High / Medium / Low
- Due date (required)
- Linked goals - checkboxes for every goal in the project
The modal adapts to what the milestone has:
- No linked tasks (or new milestone) - a manual progress slider appears so you can set the percentage yourself. The slider runs from 0% to 100% with a number field next to it for typing exact values.
- At least one linked task or CRM task - the modal shows an auto-progress preview instead: the derived status, the calculated progress percentage, and a preview of the first few linked tasks. No slider, because progress is being tracked from your linked work.
Save commits the milestone and closes the modal. Progress and status continue to update automatically on render.
The Milestone Linked Items slide panel
For the rich task management workflow - linking new tasks to a milestone, unlinking, editing statuses and priorities in place - use the dedicated slide panel. It opens from the Manage action on any milestone card.
Two tabs inside the panel
- Tasks - every task and CRM task linked to the milestone; add more via a link picker
- Goals - every project goal with checkboxes to link/unlink
What you can do in the Tasks tab
- See all linked tasks and CRM tasks in a single list
- Add tasks via a link picker that shows unlinked available tasks
- Search by task name
- Hide completed tasks with a single toggle
- Change status or priority inline using dropdowns on each task card
- View a task's full details by clicking through to the task detail page
- Unlink tasks with a single click
- Paginate for long task lists
- See progress stats in the footer - X of Y tasks completed (Z%)
What you can do in the Goals tab
- See all project goals with a checkbox toggling the link state
- Link or unlink a goal to this milestone - the link is synced on the Goal side automatically
- See linked count in the footer - X goals linked
Pinnable panel
The slide panel is pinnable - pin it open and continue working on tasks in the background while keeping the milestone's task list in view.
Modal vs slide panel - when to use which
- Modal - for creating a milestone or editing its name, description, type, priority, due date, and linked goals
- Slide panel - for hands-on task linking, inline task editing, and bulk management of linked items
Both share the same data - changes made in either sync immediately.
The Milestones tab
The Milestones tab (key 4) shows every milestone in a list with full rich cards:
- Drag handle to reorder
- Completion checkbox (toggles the milestone between completed and in_progress)
- Name, description, type badge, priority badge, status badge (auto-derived)
- Due date display
- Auto-progress percentage
- Progress bar
- Linked goals (as badges with target icon)
- Linked tasks section - expandable, shows up to 10 regular tasks and 10 CRM tasks with inline status/priority editing and view/unlink actions
- Manage button that opens the slide panel for full task management
- Edit and Delete actions
Empty state
When a project has no milestones, the tab shows an empty state inviting you to add the first milestone.
Task ↔ milestone linking
Tasks and subtasks link to milestones through the task's milestone field. The linking flow can start from several places:
From the milestone side (recommended)
Open the Manage slide panel on a milestone and use the Add action in the Tasks tab. A picker shows every unlinked project task and CRM task - select the ones you want to link and save. This is the fastest way to batch-link tasks to a milestone.
From the Project Setup Wizard
Step 5 (Linking) of the wizard lets you map imported tasks to milestones as part of project creation. See Creating Projects.
Which tasks can link?
- Regular project tasks (including subtasks)
- CRM tasks (when CRM is enabled on the project)
Both types live in the milestone's task list and both contribute to auto-progress.
Milestones on the Tasks tab
The Tasks tab has a milestone filter that shows only milestones with at least one linked task. Filtering by milestone shows every task (and subtask) linked to that milestone - a fast way to answer "what's in this phase?" See Project Tasks Tab.
Milestones on the Gantt chart
Milestones appear on the project's Gantt chart as diamond markers at their due date - the standard Gantt symbol for a single-day milestone or deadline. Tasks appear as bars around them, and dependency lines show how work flows between them. See Gantt View.
Linking to goals
Milestones link back to goals via the Goals tab of the slide panel (or via the Milestone modal's goal checkboxes). When you link a goal to a milestone, PrimeTask updates both sides - milestone.linked_goal_ids and goal.linked_milestone_ids - so the two-way relationship stays in sync. See Project Goals.
Linked milestones feed into goal progress - each goal's progress averages its Key Results and the progress of its linked milestones. This is how deliverables (milestones) roll up into outcomes (goals).
Things worth knowing
Status is derived, not stored
Milestone status is recomputed on every render from progress and due date. You can't set it directly. This keeps status honest - a milestone is "Overdue" because its due date has passed, not because someone forgot to update a field.
Progress is auto when linked, manual when not
A milestone with at least one linked task or CRM task is auto-tracked from those items. A milestone with no linked work shows a slider on the row and in the modal so you can set the percentage yourself. Link any task to the milestone and the slider hides - auto-tracking takes over and your manual value is preserved on the record. Unlink everything and the slider returns with that value.
Two-way linking with goals stays synced
Linking from the milestone side or the goal side updates both arrays. Unlinking does the same. You don't have to manually sync them.
Subtasks are included automatically
When a linked task has subtasks, the subtasks contribute to the parent's progress (via the weighted-parent strategy), which then contributes to the milestone's progress. You don't need to link subtasks individually - linking the parent is enough.
CRM tasks are first-class
When your project has CRM enabled, CRM tasks can be linked to milestones and contribute equally to auto-progress. This lets you include client-facing work (calls, follow-ups, demos) in the milestone's rollup without having to mirror it as a regular task.
Completing a milestone manually
You can check a milestone as completed from its card. This overrides auto-progress to 100% and marks the status as Completed. If you later uncomplete it, progress returns to its calculated value.
Milestones can block each other
A milestone can have blocked_by_milestone_ids - milestones that must complete first. When set, the Health Assistant flags the blocked milestone as a medium-severity item. This is advisory only - PrimeTask doesn't prevent you from completing a blocked milestone. Use it as a planning signal, not a hard gate. See Project Overview Tab.
Common questions
"What's the difference between a milestone and a goal?"
Milestones are dated checkpoints with required due dates that track from linked tasks. Goals are objectives (often long-running) that track from Key Results and/or linked milestones. Milestones are about "what will we have delivered by when"; goals are about "what outcome are we trying to achieve". See Project Goals.
"Why is my milestone's progress different from what I expect?"
Progress is the average of linked tasks' progress - and task progress factors in subtasks via the weighted-parent strategy. A linked task at 70% (with some subtasks complete) contributes 70, not a simple 0 or 100. The milestone's progress is the average across all linked tasks and CRM tasks.
"Can a milestone have no due date?"
No - due date is required. If you need a checkpoint without a deadline, use a goal instead. Goals have optional target dates.
"How do I link subtasks to a milestone?"
You don't need to - linking the parent task is enough. The parent's progress accounts for its subtasks' completion, so the milestone's auto-progress includes subtask work automatically.
"I marked all linked tasks complete but the milestone isn't Completed."
Progress should be 100% and status Completed. If it isn't, check that every linked task's status is in a complete category (your Space's "Done" or equivalent). Tasks marked as closed or in a non-complete status don't count as completed for milestone purposes. See Custom Statuses & Priorities.
"Can I link a CRM task to a milestone?"
Yes, when the project has CRM enabled. The Milestone Linked Items slide panel's Add action includes CRM tasks in the picker.
"How do milestones appear on the Gantt?"
As diamond markers at their due date. Tasks appear as bars; dependency lines connect dependent items. See Gantt View.
"Can I copy a milestone to another project?"
Not directly, but Copy to Space copies milestones along with the rest of the project. See Copy to Space.
Where to go next
| If you want to… | Read this |
|---|---|
| Set goals with Key Results | Project Goals |
| Work with tasks inside the project | Project Tasks Tab |
| See milestones in project context | Project Overview Tab |
| Understand how milestones roll into overall progress | Project Health & Progress |
| See milestones on a Gantt timeline | Gantt View |
| Understand subtasks in task progress | Subtasks & Checklists |
| Link milestones to CRM tasks | CRM Tasks |
| Add milestones during project creation | Creating Projects |
| Return to the Projects hub | Projects Overview |
