invoicingfreelancingtime trackingbillingguide

Time tracking with invoicing built in — stop exporting to a second app

The usual freelance stack is a time tracker plus a separate invoicing tool, joined by a CSV export and a lot of copy-paste. When tracking and invoicing live in one product, a tracked session becomes an invoice line item directly. Here's how that loop works end to end.

An invoice document with a green check — time tracking with invoicing built in

The two-tool tax

The standard freelance setup is two products bolted together: a time tracker
for the week, and a separate invoicing app for the bill. Between them sits a
ritual — export a CSV, reshape it, paste hours into invoice rows, re-key the
rate, hope you didn't fat-finger a decimal. It's friction every single billing
cycle, and it's where mistakes (and unbilled hours) creep in.

It only exists because the two halves of the job live in different tools. Put
them in one and the export step disappears.

One tool, end to end

When tracking and invoicing are the same product, the path from work to payment
has no seam in the middle:

Track to review to invoice, all inside one product, with the CSV-export and second-invoicing-app step crossed out

  1. Track. Sessions are captured automatically from your file edits and
    visited URLs, tagged to the right project.
  2. Review. On the dashboard you tidy the week — fix a mis-tagged block,
    check per-client and per-project totals.
  3. Invoice. You generate the bill from that same tracked time. No export,
    no second app.

How a session becomes a line item

The link that makes this work is simple: each project is tied to a
client and a rate. So when you invoice a client, the tracked sessions
on their projects already know how many hours they were and what they're worth.

An invoice for Acme Co with line items per project — API development, dashboard UI, code review — each with hours, rate and amount, an auto-assigned number, and a total

Line items group by project, hours come straight from the captured sessions,
the rate is the project's rate, and the invoice number is assigned
automatically in an ORG-YYYYMM-XXXX format. What you're billing is exactly
what was tracked — not a hand-typed estimate.

Why this matters for accuracy

The two-tool workflow doesn't just cost time; it costs money. Every manual
hand-off is a chance to round down, forget a block, or mistype a rate. When the
invoice is generated from the same sessions you reviewed minutes earlier,
there's nothing to transcribe — the numbers are the numbers.

Moving your history over

If you're consolidating from a tracker-plus-invoicing stack, CSV import brings
your historical time entries in, so past work sits alongside new
automatically-captured sessions and nothing falls through the gap during the
switch.

The takeaway

The CSV export between your time tracker and your invoicing app isn't a feature
— it's a tax you pay every billing cycle. Track and bill in one tool, link
projects to clients and rates, and a reviewed week turns into a numbered
invoice without a single copy-paste.

Frequently asked questions

Do I still need a separate invoicing app?

No. Tracking and invoicing are in the same product, so tracked sessions become invoice line items directly — there's no CSV export to a second tool.

How do tracked hours turn into an invoice?

Each project links to a client and a rate. When you invoice a client, the captured sessions on their projects supply the hours, the project supplies the rate, and the line items are grouped by project.

Are invoices numbered automatically?

Yes. Invoices are auto-numbered in an ORG-YYYYMM-XXXX format, so numbering stays consistent without you tracking it by hand.

Can different clients be billed at different rates?

Yes. Rates are set per project, so each client's invoice reflects their own rate, generated from the hours that tracked to their projects.

Can I import past invoices or time from my old tools?

CSV import brings historical time entries in so they sit alongside automatically captured sessions while you consolidate onto one tool.