Help / Approvals & reports

Reports and saved reports

Reports turn your tracked time and expenses into totals you can read, share, and export. They live under Reports, with a row of views across the top and a custom builder for everything else. What financial detail you see depends on your role: members never see money, so several views and columns are managers-only.

The report views

The sub-navigation across the top of Reports holds these views:

  • Time — hours by person, with a billable split. Available to everyone; members see hours only, without any billable amount.
  • Profitability — revenue, cost, profit, and return on cost. Managers only.
  • Detailed time — a raw list of entries in a range. Available to everyone, though members see only their own time and no money.
  • Detailed expense — expenses grouped by category. Managers only.
  • Invoicing — invoiced totals, payments, receivables, and what is still uninvoiced. Managers only.
  • Saved reports — your saved templates.

The first tab, Create a report, is the custom builder covered below. When a money view is opened by a member, the page simply says "This report is available to managers only."

Building a custom report

Create a report is a flexible builder. On the left, the Inputs panel has two sections:

  1. Fields — how rows are grouped: Client, Project, Task, Teammate, or Date. Add as many as you need.
  2. Metrics — the columns: Hours, Billable hours, and, for managers, Billable amount, Cost, and Margin. The three money metrics never appear for members.

Above the table, the period bar sets the range. Pick Week, Month, Quarter, Year, Fiscal year, or Custom, then step through periods with the arrows. Alongside it are quick filters for client, project, teammate, and billable status.

Switch between Summary and Detailed with the toggle. Summary rolls entries up by your fields (choose Grouped or Ungrouped); detailed lists raw entries. Tick Include zero values to keep empty rows.

Saving and re-running

A report you will want again can be saved as a template:

  1. Give it a name in the field at the top left.
  2. Select Save.

Saved templates appear under Saved reports as a searchable card grid. Each card names the report kind and when you saved it. Select Open on a card to run it again with current data, or Delete to remove it. Every kind reopens with its saved filters applied — custom reports in the builder, the rest on their own page.

Comparing against the previous period

Tick Compare to previous period on the builder, on Time, or on Profitability, and each row gains a change column: the current figure, and how much it has moved since the period before.

You do not choose the second period — it is derived from the one you are looking at. A month compares against the month before it, a quarter against the quarter before it, a week against the week before it, and a custom range against the same number of days immediately preceding it. The line above the table names the period compared against, so a change is never shown without saying what it is a change from.

Three behaviors are worth knowing, because each is deliberately not the obvious one:

  • A period still running is compared like-for-like. Comparing September against August on the 18th would otherwise be eighteen days against thirty-one, which always shows a fall. The previous period is trimmed to the same number of elapsed days instead, and the caption says which shortened span it used.
  • A project or person with no time this period keeps its row, marked gone, showing the whole drop. Without it, every remaining row would show growth while the total fell.
  • Something with no time last period reads new, not a percentage. There is no meaningful percentage increase from nothing.

Comparison is unavailable when you group rows by Date: the previous period has different dates, so every row would match nothing and read as new. The tick box explains this when it is greyed out. It is also a summary-view feature, not part of the detailed entry list.

Saving a report saves whether it compares, so a saved comparison reopens comparing. An exported CSV carries the previous period's own figure next to the current one rather than the difference, so you can do your own arithmetic in a spreadsheet.

Sharing a report

Share covers both people you might share with, because it is the same question with two very different answers.

With a teammate hands over the report definition. It re-runs under their own access, so they may see fewer rows than you do and never more. It needs a saved report, because there has to be something to hand over.

By email sends somebody outside the organization a fixed snapshot: a page they open from a link, with no account and no login. Choose the client, give it a title, type the addresses, and send.

If one of those is unavailable — you are not a manager, or the report is a detailed one — the dialog says so. The control no longer simply disappears.

The link is a snapshot. The figures are fixed at the moment you publish, so a link sent in September still shows September's figures when somebody opens it in March. A link to a live report would keep re-running and quietly pick up projects and people added since. To show fresh figures, publish again.

What the client sees, and what they do not

They see hours for the period, for that client, and nothing else. No rates, no amounts and no costs — a link can be forwarded in a way a screen cannot, so money stays out of it entirely, the same rule the weekly rollup follows.

Names are not included unless you tick Show who did the work. Left alone, the client sees totals by whatever the report groups by. Ticking it names individuals and their hours. It is off by default because telling a client who did what is worth deciding each time.

Who can open it

Two separate choices, which used to be welded together: who is sent the link, and whether opening it needs proof.

Confirm their email address is the default. When somebody opens the link they are asked for their address and sent a one-time link; clicking that opens the report and remembers them on that browser for 30 days.

Anyone with the link is the simpler option. Whoever receives it can read the report, and so can anybody they forward it to. That is the right choice for a figure you would happily put in the body of an email — and you can still have us email it to people. Forwarding the URL to somebody not on the list passes on nothing — they get the same form, and entering an address that is not on the list produces the same response as entering one that is, so the page cannot be used to find out who you work with.

A few things worth knowing:

  • The list decides, not the invitation. Access is re-checked against the list every time the page is opened, so a report is not "already open" to somebody just because they confirmed their address last week.
  • The confirmation link works once and expires in 30 minutes. Asking again is fine; each request sends a fresh one.
  • It is not a password. Somebody who can read a recipient's email can open the report. It confirms the reader is who they say they are; it does not defend against a compromised mailbox.

Seeing what you have sent, and taking it back

Reports → Shared lists everything sent to a client: which client, which period, whether it is gated, who it was emailed to, and — for a gated link — who has actually opened it. Those last two are different questions, and the second is usually the one being asked.

An open link reports nothing about its readers. It cannot know, so it says so rather than showing a zero.

Revoke stops a link resolving. Somebody opening it afterwards gets nothing — not an error explaining it was withdrawn, and no hint that there was ever a page there. The record of what you published is kept, so "what did we send them, and when" stays answerable.

Who can publish

Managers, administrators and owners, and only on the summary view. The Detailed time report lists individual entries, and publishing that to a client is a different decision — it is not offered from the same button.

Exporting to CSV

Every report exports. In the builder, select Export CSV; on the other views, select Export. The download reflects exactly what is on screen, including your grouping and range — and, importantly, it respects the money rule. When a member exports the Time report, billable amount is left out of the file, so exporting never leaks figures a member cannot see in the app. For the underlying rule on who sees rates and costs, see roles and permissions.

Opening a report from a project figure

You do not have to build a report to answer "what is behind this number". Every hours figure on a project's Tasks and Team tabs links straight into the Detailed report, filtered to that project, that task or that person, and the range you were looking at — including the No task group. See reading a project's hours.

The report says what it has been narrowed to and offers one click to widen it again.

What the Detailed report includes

Every entry in the range, whatever its approval state — open, submitted, approved and rejected alike. Approved entries are marked on the row. Only deleted entries are left out. There is no approved-only filter, so a report you send onward may contain hours nobody has signed off yet.

The rows carry the date, client, project, task, person, notes, hours, billable flag, the project code and the linked ticket. For the client-facing export built from these rows, see client reports.

Sharing a saved report

Select Share on a card, then pick a teammate by name. They get an email with a link, and the report appears in their own Shared with me section on the Saved reports page.

What you share is the definition, not your numbers. The filters, date range and grouping travel; the results do not. When your teammate opens it, the report runs against whatever they are allowed to see. So their totals may be smaller than yours, and can never be larger — sharing a report cannot show somebody data they are not otherwise entitled to. A note at the top of a shared report says so, because two people looking at "the same report" and seeing different totals is otherwise alarming.

There is one case worth knowing about. If you share a report filtered to a specific person with someone who cannot see that person's time, it would otherwise run and return nothing — which reads as "they logged no hours" rather than "you cannot see this". The report says which it is instead.

The filters themselves are visible to whoever you share with: the report's name, and the project, client or person it is filtered to. Sharing does not reveal the data behind those, but it does reveal that they exist.

You can only share with active members of your organization, and there is no public link. Remove access at any time from the same dialog. It also ends by itself if you delete the report, or if either of you leaves the team.

You can ask the assistant to do this for you — "share my Northwind margins report with Priya" — and it will, because a report share cannot widen anyone's access. Sharing an assistant conversation works differently and always needs you to confirm it yourself.

Updated 2026-09-22. Still stuck? Contact support or return to the Help Center.