# Time tracking

Updated: 2026-11-04

## Estimates

Projects estimate in **story points** or **hours** (project setting *Default Estimate Unit*). Time is entered like `45m`, `2h 30m` or `1d` (1d = 8 hours by default; the workspace setting decides hours per day). An issue has an original and a remaining estimate; logging work lowers the remaining estimate unless you set it.

The issue's Details drawer shows **Story Points** only when the project estimates in points. In an hours project an old value (from a Jira import or an issue moved from another project) stays visible read-only with the hint *Project estimates in hours*; the ✕ button clears it.

**The Estimate column of the issue lists** (Issues, My Work) follows the same setting: in an hours project it shows the original estimate as time (`4h`, `2h 30m`), in a story point project the story points. When an issue only has the other value, that one is shown greyed out with its unit (`8 SP` or `4h`); hover for why. When the list holds projects with different units, story points carry *SP*. Sorting by Estimate lists the issues of hours projects first, then those of story point projects, each by its own value. The CSV export keeps both columns, *Story Points* and *Original Estimate*.

## Logging work

- On the issue: tab **Time Tracking** › *Log Work*: duration, day, note, and visibility (internal by default; public worklogs are visible to customers).
- **Worklogs** (sidebar › Time): all worklogs across projects with filters and CSV export (Clockify columns). Edit or delete your own; admins all of them. Every column sorts the whole list by its header (Issue by key, User by name, Visibility with Public first).
- Claude can log time for you (`log_work`); such entries show "via Claude Code". Agents are asked to log their working time when they finish an issue.

## Time Report

*Time › Time Report*: the logged time grouped by **User**, **Issue**, **Project** or **Project group** for a period (this month by default), filtered by project, release and user. Open a group for its lines; export as CSV. Sums are in hours.

**Project group** adds up the time of all projects in a group, like *Fleet (FLEET)*; projects without a group are summed under *No group* at the end. The lines of a group show their project. Together with the project scope you can compare groups, or pick one group in the switcher and see its total.

**Sorting:** click a column header. The lines sort within their group; *Logged* and *Worklogs* also put the groups in the order of their totals (by default the groups with the most time come first). By any other column the groups stay in A–Z order. Changing the sort closes the open groups. The CSV and the PDF use the same order.

**Download PDF** at the top gives the whole report as a PDF, e.g. to attach to an invoice: the IT4S header, the filters you chose (period, project, users, …), every group with its lines and sums, and the total. Column heads repeat on every page.

**Compare with estimate:** set the chip *Estimate* to *Compare with estimate*. Extra columns show each issue's **Estimate**, **Remaining**, the **Difference** (estimate − time logged) and **Used %** — green within the estimate, amber when more than 90 % is used, red when over. The PDF then has these columns too.

- The comparison always uses **all time logged on the issue**, not only the period you picked; with a period, the extra column *Logged Total* shows it (the period's time stays in *Logged*).
- Issues without a time estimate show `–` (projects in story points are not compared).
- Grouped by **Issue**, **Project** or **Project group**, the group rows add up the estimates, each issue once; a parent counts only when nothing below it in the report has an estimate (like the Estimate Report). Grouped by **User**, only the issue lines show estimates — they are not split between people.
- The footer shows the total estimate, the difference and how many issues have no estimate. The CSV export includes the estimate columns and a total line.

## Estimate Report

*Time › Estimate Report*: how much work a scope is estimated at, as a basis for an offer, next to the time logged so far.

- **Scope:** Project and Release chips, *Status* (Open by default; All to compare with done work), and in the filter panel an **Epic** or **Story** (everything below it is included), type, tags, assignee and a **timeframe** by due date, release date or created date.
- **Group by:** Epic › Story › Sub-task (the default tree), Release, Type, Assignee, Tag, **Project group** (*No group* last) or None.
- **Columns:** Original Estimate, Remaining, Logged, Difference (estimate − logged: green within the estimate, amber when less than 10 % is left, red when over) and Story Points for projects that estimate in points. Times show hours and days, like `12h · 1.5d`.
- **Nothing is counted twice:** when the stories or sub-tasks below an issue are estimated, the issue counts with their sum; its own estimate is shown next to it as *own 10h* but not added again. Time and story points are never mixed.
- **Issues without estimate** are marked *No estimate*; the warning above the table counts them, and *Show Them* (or *Show: Without estimate*) lists only those, so an offer doesn't miss work.
- **Export:** CSV from the toolbar, **Download XLSX** at the top; both with a sum line per group and the total.
- **Views and links:** *Views ▾* › *Save Current View…* keeps the scope, filters and grouping under a name (optionally with rate and contingency); pick it from the same menu later, or delete it. *Copy Link* copies a link to the current view for colleagues: it opens the same scope and grouping, limited to the projects they may see, and never contains your rate.
- Claude can read the report too (`get_estimate_report`, see [Working with AI agents](https://it4s.at/en/help/guide/claude-and-apps/)).
- Customers don't see the Estimate Report.

### Making an offer

1. Narrow the scope (e.g. a release or an epic) and check *issues without estimate*.
2. Enter your **Hourly Rate** (€ per hour) and, if you like, a **Contingency** in % in the card above the table. They are remembered for you, but never saved on issues.
3. The table gets an **Amount** column; the card shows the amount, the contingency and the **total incl. contingency**. Story points have no amount.
4. **Download Estimate PDF** gives an A4 "Estimate" with the IT4S header to attach to the offer: date, the scope in words, the grouped list with hours and amounts, sums per group, then the estimated work in hours and days, rate, amount, contingency and total. Issues without estimate are named as not included. The XLSX and CSV downloads carry the amounts too.
