Feature

Reports that turn tracked time into decisions.

Studio and Agency plans unlock the /reports page: filter by date range, client, project, member, billable; group by client / project / member / day; see totals + estimated billable amount; export the same data as RFC-4180 CSV. Owners and Admins see money columns; Members never do.

Plans: Studio · Agency

Free for solo freelancers · No credit card required

What's in it

  • Shared filter + sort

    Same TimeFilterBar that runs the Time page. URL-stateful — share a report URL with a teammate and they see your exact slice. Members are server-pinned to their own userId regardless of URL.

  • Group by anything

    None, Client, Project, Member, or Day. Each group renders a header + subtotal so you can read 'total hours per client this month' without exporting.

  • Three report types

    Time (today): the workhorse. Revenue and Projects tabs render empty states explaining what they'll show — built when the underlying aggregations land, not before.

  • Owner/Admin-only money

    The Rate and Amount columns appear for Owners and Admins. For Members, those columns are server-stripped from the payload — they aren't hidden in the UI, they aren't in the page at all.

  • RFC-4180 CSV export

    GET /api/reports/time.csv mirrors the page's filters and sort. Streams a properly-quoted CSV (commas in client names handled, newlines escaped). Members' CSV never includes the Rate/Amount columns.

  • Advanced reporting on Agency

    Agency plan adds deeper breakdowns — per-member utilization, per-client lifetime value, week-over-week trends. Same gating model, different entitlement key (advancedReporting).

How it works

  1. 01

    1. Open /reports

    The page lands on Time → no group → last 30 days. Adjust the filter bar to your slice.

  2. 02

    2. Pick a grouping

    Each group block renders header + subtotal. The bottom row is the grand total.

  3. 03

    3. Read or export

    Read in-page for ad-hoc analysis. Hit 'Export CSV' for an audit-quality file you can hand to your accountant.

Common questions

  • Can I see only billable time?

    Yes — the Billable filter has three states (All / Billable / Non-billable) and the CSV download honors it.

  • Does the CSV include un-invoiced and invoiced entries?

    Both, by default. The filter bar exposes an 'invoiced' toggle if you want only one. Each row carries the invoice number when one applies, so you can reconcile a report against your AR ledger.

  • Why can't Members see Amounts?

    Members are typically billable producers, not financial stakeholders — your client billing math is org-private. We strip Rate/Amount from the server payload for Member viewers; the columns aren't in the DOM at all. Owners and Admins see everything.

  • Is there a Revenue report?

    It's stubbed on the Reports page with an empty-state explainer. We're shipping the underlying aggregation in a follow-up — when it lands, the empty state goes away and the data shows up. Not before.

Related

Try it free, in two minutes.

Create an account, set up your first client, and log an hour. The invoice will already be on the way to building itself.

Free for solo freelancers · No credit card · Cancel any time

Skip to content