# Tasks & milestones

> The delivery schedule - a drag-and-drop task board with subtasks and assignees, milestones that mark the moments that matter, and the timeline view.

Source: https://app.assetlab.ca/docs/projects/tasks-and-milestones

Phases say what stage the project is in; tasks say who does what by when. Together with milestones they are the project's schedule - visible as a board, a list, and a timeline.

## Tasks

Each task carries a title, description, assignee, dates, status, priority, and estimated hours. Tasks are the working grain of the project: "issue tender package", "review shop drawings", "commission AHU-3".

### The task board

Tasks live on a **drag-and-drop board** - columns are statuses, and dragging a card between columns changes its status. Marking a task complete automatically stamps its completion date and sets progress to 100%.

Tasks can also have **subtasks** - nest the checklist under the deliverable ("issue tender package" holds "final drawings", "front-end docs", "advertise") and the board keeps the parent-child relationship visible.

### Assignment

Tasks are assigned to [team members](/docs/projects/creating-projects). A person's tasks across all projects appear in their own views, so multi-project staff aren't living in six tabs.

### Hours

Tasks carry **estimated and actual hours** for effort tracking. Note that hours are schedule data, not financial data - they don't flow into project cost actuals, which come from [invoices and expenses](/docs/projects/budgets-and-financials). (A `project_time_entries` resource exists via the [API and MCP](/docs/reference/rest-api) for integrations, but it has no in-app entry screen and doesn't feed actuals either.)

### Dependencies

Task dependencies exist in the data model and can be managed through the [API and MCP tools](/docs/ai/tools-and-scopes), but there is currently no in-app editor for them and the timeline doesn't draw them. If your workflow needs dependency data, an AI assistant or integration can maintain it.

## Milestones

Milestones are dated markers with no duration - *tender closes*, *substantial completion*, *board report due*. They carry the external commitments, which makes them the first thing to check in a status meeting: tasks describe effort, milestones describe promises.

> [!tip] If a date appears in a council report or a funding agreement, make it a milestone. The timeline then shows your promises against your actual trajectory.

## Work orders inside projects

Physical work packages can be linked to [work orders](/docs/cmms/work-orders) - so the crew executing "replace RTU-2" works their normal queue while the project keeps the link. Costs recorded on linked work orders post to the *assets* involved; they don't roll into the project's financial actuals, which count only approved or paid invoices and project expenses. Record project money as [invoices and expenses](/docs/projects/budgets-and-financials) if you want it in the project's numbers.

## Reading the timeline

The project timeline plots tasks and milestones with their dates on one horizontal axis. Two glances tell the story: are milestones still to the right of today, and which tasks are running past their planned dates.
