User guide

Time tracker and hourly billing

Time work sessions live or log them by hand, set an hourly rate per session, and turn unbilled hours into invoice lines without billing anything twice.

Updated: 2026-09-09

If you sell your time, the invoice is only as good as the record behind it. Invoice Flow’s Time Tracker keeps that record on the phone: each work session is stored with its client, a project name, a description, a start and end time and an hourly rate. When it is time to bill, you pick the sessions, the app writes one invoice line per session with the hours as the quantity and the rate as the price, and the sessions are marked as invoiced so they can never be picked again.

This guide follows Inês Carvalho, a freelance translator in Lisbon who bills in euros. She charges Editora Horizonte EUR 45 an hour for literary translation, Bramble & Co. Solicitors in London EUR 55 an hour for legal work, and Vinhos do Tejo EUR 40 an hour for catalogue and website copy. Some sessions she times live, some she enters after the fact, and once a fortnight she turns the open hours into invoices.

You need the tracker whenever your price is expressed per hour. If you quote fixed prices per job, you can still use it as a private log of where the day went, but nothing in the app forces you to.

What you see on the screen

The tracker is a full-screen tool, not a tab. Open the Tools tab in the bottom bar, look under Productivity and tap the blue Time Tracker card. From the dashboard there is a shortcut too: the quick-action chip labelled Timer, and, when a timer is running, a Timer Running card that opens the tracker when tapped.

The screen has four parts stacked top to bottom:

In the app bar sits To Invoice with a red badge. The number in the badge is how many finished sessions have not been billed yet, and it is the single most useful figure on the screen when you are deciding whether it is invoice day.

Invoice Flow app Time Tracker screen with an idle 00:00:00 card, Start and Manual buttons, a Today summary of 3h 50m and 2 entries, filter chips All, Uninvoiced and By Client, and sessions grouped under Today, Yesterday and This week with green tick icons on the invoiced ones
Four open sessions across two days, two invoiced ones with green ticks, and a badge of 4 on To Invoice.

The round icon on each row is the invoiced flag. A grey clock means the session is still open and will appear in the invoice pickers. A green tick means it has already been placed on a saved invoice. There is no separate billable switch on a time entry: every finished session is billable until it lands on an invoice, and the only way to keep private hours out of the pickers is to leave them out when you select sessions, or to delete them.

The tracker shows earnings with a dollar sign and the rate fields carry a fixed $ prefix, whatever currency your profile uses. The numbers are right: Inês's 2h 45m at 45 shows as $123.75, and when those hours reach an invoice they are priced in euros. Treat the symbol on this screen as decoration and type the rate as a plain number.

How to time a session live

Starting a timer takes one sheet. Fill it in once and the tracker remembers the client, project, description and rate for the next timer you start in the same visit.

  1. Open Tools, then Time Tracker.
  2. Tap Start on the timer card. The New Timer sheet slides up.
  3. Choose the Client from the dropdown, or leave it on No client for unbillable work.
  4. If you have created projects for this profile, a Projects dropdown also appears; pick one to link the session, or leave Not specified.
  5. Type a Project name and a short Description. Together they become the invoice line text later, so write them as you would want the client to read them.
  6. Enter the Hourly rate as a number, for example 55.
  7. Tap the Start button at the bottom of the sheet. The clock begins immediately.
Invoice Flow app New Timer bottom sheet with Client set to Bramble & Co. Solicitors, Project Bramble share purchase agreement, Description Final proofread and terminology check, Hourly rate 55 and a Start button
The sheet asks for everything an invoice line will later need: who, what, and the rate.

The running card replaces the idle card. It shows the elapsed time in hours, minutes and seconds, the project name, the client and a live earned figure that climbs as the seconds pass. Two round buttons sit on the right: pause and a red stop.

Invoice Flow app Time Tracker with a running timer card reading 00:47:16 for A Casa do Rio chapters 7-9, Editora Horizonte, $35.45 earned, with pause and stop buttons, and Add Timer and Manual buttons beneath it
Forty-seven minutes into a translation session; the earned figure updates every second.

Tap the red stop button when you are done. The app writes the end time and the duration, and the session drops into the list under Today. You can run more than one timer at a time with Add Timer, which is handy when a client call interrupts a translation job: start a second timer for the call, stop it when the call ends, and the first one keeps going.

Pause only freezes the digits on the screen. The session keeps its original start time, and when you tap stop the stored duration is the full span from start to stop, including the paused minutes. If you leave the tracker and come back, the pause is forgotten and the counter catches up. For a genuine break, stop the timer and start a new one afterwards, or fix the end time in the edit dialog.

How to log a session by hand

Sessions you forgot to time, or work done away from the phone, go in through the Manual button.

  1. Tap Manual on the timer card (or under the running cards). The Add Entry dialog opens.
  2. Pick the Client and, if shown, the Projects link.
  3. Fill in Project name, Description and Hourly rate.
  4. Tap Date to choose the day. The calendar allows any date from 2020 up to tomorrow.
  5. Tap Start time and End time and set both with the clock picker. The Duration line under the pickers recalculates as you go.
  6. Tap Save.
Invoice Flow app Add Entry dialog with Client Editora Horizonte, Project name A Casa do Rio chapters 7-9, Description Editorial call with the publisher, Hourly rate 45, Date Sep 9 2026, Start time and End time rows and a Duration of 1h 00m, with Cancel and Save buttons
The dialog opens with the current time as the start and one hour later as the end; adjust both to match the real session.

The same dialog is used for editing. Tap any row in the list to open it as Edit Entry with the stored values, change what you need and tap Save. A long press on a row shows a small menu with Edit, Duplicate and Delete; a swipe from right to left on a row also deletes it, after a confirmation that names the entry.

How to invoice tracked hours

There are two doors into the same result. You can start from the tracker and let it open a new invoice, or start from the invoice editor and pull sessions in. Which you use depends on where you are standing.

From the tracker

  1. Tap To Invoice in the app bar. The Create Invoice dialog lists every finished session that is not yet on an invoice, newest first, with the client, duration and amount.
  2. Tick the sessions to bill. The button at the bottom counts them, for example Create Invoice (2).
  3. Tap Create Invoice (2). A new invoice opens with one line per session already in place.
  4. Check the lines, add VAT if you charge it, then tap Save Draft.
Invoice Flow app Create Invoice dialog over the Time Tracker listing four uninvoiced sessions with the two Bramble share purchase agreement entries checked and a Create Invoice (2) button
Only open sessions are offered; the two Bramble sessions are ticked, the Tejo and Horizonte ones stay for later.

If every session you ticked belongs to the same client, that client is preselected on the new invoice. Mix clients and the invoice opens with no client, which you then have to choose by hand, so it is worth filtering by one client first.

From the invoice editor

  1. Create a new invoice and pick the client under Select client.
  2. Scroll to Line Items and tap the Time chip next to Product / Service.
  3. In Add Time Entries, tick the sessions and tap Add (2).
  4. Continue with the rest of the invoice and save.
Invoice Flow app invoice editor with the Add Time Entries dialog listing two Bramble & Co. Solicitors sessions, both checked, and an Add (2) button
With a client chosen, the picker hides other clients' sessions.
Invoice Flow app invoice editor showing two line items tagged Time, Bramble share purchase agreement with quantity 2.25 at price 55.00 for €123.75 and quantity 3.5 at 55.00 for €192.50, with a subtotal and total of €316.25
Each session becomes a line with hours as the quantity and the rate as the unit price.

The editor’s picker is stricter than the tracker’s: once a client is selected it shows that client’s open sessions plus sessions with no client, and nothing else. If there is nothing to show you get a short message instead of an empty dialog, such as No entries for this client (2 for others).

Each generated line has the text “Project name — Description” (or just Services if both were empty), the duration in hours rounded to two decimals as Qty, the session’s rate as Price, and a small Time tag on the card. The tax rate is left at zero, so Inês taps the percent field and applies 23% VAT on lines for Portuguese clients. You can edit the description, the quantity and the price freely before saving; the link back to the session survives the edits.

What happens to the sessions

The invoiced flag is set at the moment the invoice is saved, not when you tick a session in a picker. Cancel the editor and every session you selected stays open and keeps its grey clock. Save it, and each linked session is marked invoiced, gets a green tick in the tracker, disappears from both pickers and from the To Invoice badge count, and remembers which invoice it went on. The invoice detail screen shows the connection from the other side: a Time Entries card near the bottom lists the sessions billed on that document with their duration, rate and amount in the invoice currency.

Invoice Flow app invoice detail for IC-2026-034 showing a subtotal of €200.00, tax €46.00, total €246.00, payment terms, a Payments card with €246.00 remaining and a Time Entries card listing Wine export catalogue 3h 0m at €40.00/h for €120.00 and Website localisation 2h 0m at €40.00/h for €80.00
After saving, the invoice carries its own list of the sessions it bills.

Rules and details

Pro features. Starting a timer, adding or editing an entry by hand, duplicating an entry and the final step of To Invoice all require Pro or an active trial; tapping them without access opens the paywall. Looking at the list, filtering, pausing, stopping a running timer and deleting entries work on the free tier.

Nothing is mandatory. The timer sheet and the entry dialog have no required fields. A session with neither project name nor description shows an empty title in the list, and an empty or non-numeric rate is stored as zero, in which case the row shows duration only and the invoice line gets a price of 0.

Rates are per session. The hourly rate is copied into each entry when you create it. Changing your mind later means editing the entry, or the invoice line. There is no rate stored on the client or the project. The tracker does remember the last rate you typed until you leave the screen.

Timers survive restarts. A running timer is a database row with a start time; the elapsed figure is recomputed from the clock, so closing the app or rebooting the phone does not lose the session. Running timers are excluded from the list, the summary strip and both invoice pickers until you stop them.

Manual durations. The dialog computes end minus start on the same date. If the end time is earlier than the start time, the duration is stored as 0 rather than rejected, so double-check overnight sessions; split them into two entries, one per day.

Duplicate. The long-press Duplicate action copies client, project, description, rate and duration into a new entry that starts now, so it lands under Today. The project link from the Projects dropdown is not copied.

Delete is permanent. There is no bin. Deleting an invoiced session does not touch the invoice; the line stays on the document, only the Time Entries card on the invoice detail loses the row.

Grouping and filters. Sessions are grouped by their start date: Today, Yesterday, This week for anything less than seven days old, then the date. By Client does nothing until you have at least one client and defaults to the first one alphabetically.

WhereWhat it listsClient rule
Tracker, To InvoiceAll finished, uninvoiced sessionsClient preselected on the new invoice only if all ticked sessions share one client
Editor, Time chipFinished, uninvoiced sessionsIf a client is chosen: that client’s sessions and sessions with no client

Tips

Name the project the way you want it printed. The invoice line is built from the project name and the description joined with a dash, so "Bramble share purchase agreement — Schedules and warranties, PT to EN" reads well on the PDF, while "job 3 — misc" does not. You can always retype the line in the editor, but it is quicker to get it right in the sheet.
Filter before you bill. Tap By Client, pick the client, and read the list once; then open To Invoice and tick only that client's rows. You will get the client preselected on the invoice and avoid a mixed-client document that has to be split by hand.
Round in the editor, not in the tracker. A 1h 35m session becomes a quantity of 1.58 hours. If you bill in quarter hours, change the quantity to 1.75 on the line; the session keeps its true duration for your own records.
Use a second timer for interruptions instead of pausing. Pausing does not shorten the stored duration, so a paused timer overbills. Stopping and restarting, or timing the interruption separately under the other client, keeps every minute attributed correctly.