> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Task estimates

> Set an estimate on a task, revise it with a reason, and see how estimated, tracked and remaining hours drive project budget health.

An estimate says how long a task should take. It is the number every "are we still on track?" question is measured against.

## What is an estimate?

An estimate is hours on a **task**. It is not a budget – a budget is a ceiling on a whole **project**.

| Estimate                    | Budget                                               |
| --------------------------- | ---------------------------------------------------- |
| Lives on a task             | Lives on a project                                   |
| "This should take 6 hours"  | "This engagement is capped at 600 hours or \$40,000" |
| Set and revised by delivery | Set and managed by whoever owns the money            |

The full comparison is at [/concepts/budget-vs-estimate](/concepts/budget-vs-estimate).

## Two numbers, not one

A task keeps both:

| Number                | Meaning                                       |
| --------------------- | --------------------------------------------- |
| **Current estimate**  | What you now expect the work to take          |
| **Original estimate** | The very first estimate ever set on this task |

The original is written once and **never overwritten**. That is what makes estimate drift visible: if a task was estimated at 6 hours and is now at 14, the panel shows `14h` with "revised from 6h" beside it.

<Info>
  Both numbers exist so you can answer "did we plan this badly, or did the work change?" months later. Losing the original would erase the question.
</Info>

## Set the first estimate

<Steps>
  <Step title="Open the task">
    Click the task in the project list or board, or open its full page.
  </Step>

  <Step title="Find the Estimate section">
    In the side panel it is a collapsible section. On the full page it is a card in the right rail.
  </Step>

  <Step title="Type the hours">
    The **Estimate** field takes a number. It steps in halves, so 2.5 is fine.
  </Step>

  <Step title="Click Set estimate">
    A toast confirms "Estimate set."
  </Step>
</Steps>

The first time you set an estimate there is no **Note** field, because there is no prior number a note could explain.

## Revise an estimate

<Steps>
  <Step title="Open the Estimate section">
    The current estimate shows at the top.
  </Step>

  <Step title="Type the new hours">
    The field is now labelled **New estimate**.
  </Step>

  <Step title="Add a note (optional)">
    The **Note** field asks "Why it changed". A short reason here is what makes the history useful.
  </Step>

  <Step title="Click Revise estimate">
    A toast confirms "Estimate revised."
  </Step>
</Steps>

Every revision is written to the task's **Activity** feed with the old hours, the new hours and your note. That feed is append-only – a revision cannot be edited or removed.

## What happens next

Setting or revising an estimate changes three things straight away:

* **Remaining hours** on the task recalculate. Remaining is `Estimated − Tracked`, floored at zero, so it never reads "-3h left".
* The **Est** column in the project list updates.
* The board card's estimate chip updates, and column totals re-add.

Estimates do not consume a budget by themselves – tracked time does. See [/budgets/how-budgets-work](/budgets/how-budgets-work).

## Example

Priya Raman estimates "Homepage wireframes" on Bluebird Coffee – **Website Redesign** at **6 hours**.

Sarah Lin tracks 3 hours. The Financials section reads:

| Row            | Value |
| -------------- | ----- |
| Estimated      | 6h    |
| Tracked        | 3h    |
| Remaining      | 3h    |
| Billable value | \$300 |
| Cost           | \$135 |

The client then asks for a second layout direction. Priya revises the estimate to **10 hours** with the note "Client asked for a second direction". The task now shows `10h` with "revised from 6h", Remaining becomes 7h, and the Activity feed carries the reason.

## Options and settings

| Control                                | Rules                                                          |
| -------------------------------------- | -------------------------------------------------------------- |
| Estimate / New estimate                | A number of hours. Must be zero or more. Steps of 0.5          |
| Note                                   | Free text. Optional. Only offered once a prior estimate exists |
| **Set estimate** / **Revise estimate** | Disabled until the hours field has a value                     |

A negative or non-numeric value is refused.

## Permissions

Estimates have their **own** capability, separate from editing a task.

| Capability            | What it allows                                                |
| --------------------- | ------------------------------------------------------------- |
| `task.edit`           | Change the title, dates, assignee, tags and every other field |
| `task.reviseEstimate` | Set or revise the estimate                                    |

<Warning>
  `task.reviseEstimate` is not included in `task.edit`. A Member who can edit a task cannot change its estimate by default. That split is deliberate: an estimate is a commitment, and moving it changes what the project is measured against.
</Warning>

Default holders:

| Role            | Can set or revise an estimate |
| --------------- | ----------------------------- |
| Owner           | Yes                           |
| Admin           | Yes                           |
| Project Manager | Yes                           |
| Finance         | No                            |
| Member          | No, unless widened            |
| Contractor      | No                            |
| Client          | No                            |

`task.reviseEstimate` is the one task capability that can be **widened per project**. A workspace can give a Member a higher role on one project only, and that person then sees the revise control on that project and nowhere else. The control you see is resolved on the server for that specific project, so a per-project grant shows up correctly and an Admin is never narrowed by one.

If you cannot revise estimates, the Estimate section still shows the current value – you see the number, you cannot change it.

## Common questions

<AccordionGroup>
  <Accordion title="Can I clear an estimate?">
    No. You can revise it to another number, including 0, but there is no "remove estimate" action. The original estimate is kept for history.
  </Accordion>

  <Accordion title="Do subtask estimates roll up to the parent?">
    No. Each task carries its own estimate and its own tracked time. A subtask is an independent work item.
  </Accordion>

  <Accordion title="Does an estimate affect the project budget?">
    Not directly. Budget health is driven by tracked time and money spent. An estimate is what you expect; a budget is what you may spend.
  </Accordion>

  <Accordion title="Why does Remaining show 0 instead of a negative number?">
    Remaining is floored at zero on purpose. "You have -3h left" is not a useful statement – overrun is shown through budget health and reports instead.
  </Accordion>

  <Accordion title="Who sees my revision note?">
    Anyone who can open the task. The note lands on the task's Activity feed.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="I do not see the estimate fields, only the current value">
    You do not hold `task.reviseEstimate` for this project. Ask an Owner, Admin or Project Manager, or ask for a per-project override.
  </Accordion>

  <Accordion title="I get a permission message when I click Revise estimate">
    The control is a hint; the server decides. Your capability may have been changed since the page loaded. Refresh and try again.
  </Accordion>

  <Accordion title="The Est column in the list is blank">
    That task has no estimate yet. The list shows the current estimate, falling back to the original if only that exists.
  </Accordion>
</AccordionGroup>

## Related guides

<CardGroup cols={2}>
  <Card title="Budget vs estimate" icon="scale" href="/concepts/budget-vs-estimate">
    The difference, stated once and properly.
  </Card>

  <Card title="Task fields" icon="list" href="/tasks/task-fields">
    Every field on a task.
  </Card>

  <Card title="How budgets work" icon="wallet" href="/budgets/how-budgets-work">
    What actually consumes a budget.
  </Card>

  <Card title="Task level caps" icon="gauge" href="/budgets/task-level-caps">
    An informational cap on one task.
  </Card>

  <Card title="Task permissions" icon="lock" href="/tasks/task-permissions">
    Why estimates have their own capability.
  </Card>
</CardGroup>
