Free guide · JWillum products
How to bill flat-fee plus hourly work from Toggl time entries
Bill a flat fee plus hourly prep from Toggl: tag prep and event time, total and round once, and build one hourly and one flat invoice line.
Published
A common setup: a fixed fee for the event, workshop or shoot itself, plus hourly billing for the preparation around it. You track everything in Toggl, but the invoice should have exactly two lines: one hourly line for the prep and one flat line for the event. Not forty time entries, and not the event hours billed twice.
This guide shows how to set that up with tags, export once and build both lines in a spreadsheet.
Step 1: Tag the time as you track it
Tags in Toggl add context to a time entry beyond its client and project, and reports can be filtered by tag (Toggl Track: Tags). Create two tags, for example:
prep: billable hourly (research, calls, rehearsal, travel if your contract bills it)event: covered by the flat fee
Keep both under the same client and project so the job stays together. Every entry should get exactly one of the two tags; an untagged entry is one you'll have to chase later.
Step 2: Filter and check before exporting
Open Reports, set the date range for the job and add a filter on the project. Report filters include Tag, and conditions can be combined with AND/OR (Toggl Track: Using filters in reports). Filter on entries with no tag, or scan the tag column, to make sure nothing is missing.
Step 3: Export the detailed report
Use the Detailed report, which shows each individual entry, and Export it as CSV or Excel. Toggl notes that CSV and Excel exports are a paid-plan feature (Toggl Track: Detailed report). Check that the export includes the tags column before you go further.
If durations come out as 1:30:00 or text, convert them to decimal hours first (see How to convert Toggl or Clockify durations to decimal hours).
Step 4: Total the prep hours, then round once
Build a pivot table with Tags as rows and sum of decimal hours as the value. You now have one total for prep and one for event.
Round the prep total, not each entry. Rounding every short call up to a quarter hour inflates the bill and is hard to explain if a client asks. With the prep total in B2, =CEILING(B2,0.25) rounds it up to the next quarter hour (or use MROUND for nearest). If you use Toggl's own report rounding instead, apply it to grouped entries: Toggl then totals the group as is and rounds the subtotal (Toggl Track: Rounding). Don't round in both places.
Step 5: Build the two invoice lines
| Description | Quantity | Unit price | Amount |
|---|---|---|---|
| Preparation (hourly), 1–14 May | 6.75 | 90.00 | 607.50 |
| Event day: flat fee | 1 | 1,200.00 | 1,200.00 |
- The hourly line uses the rounded prep hours as the quantity and your hourly rate as the unit price.
- The flat line is always quantity 1 at the agreed fee. The event-tagged hours don't go on the invoice at all.
Keep the event hours anyway. They tell you what the flat fee really earned per hour (1,200 ÷ 9 event hours = 133 per hour). That's what you need to price the next job.
Step 6: Watch the edges
- Prep that ran into the event day: decide by contract, not by date. If the contract says the flat fee covers the day, tag it
event. - Overtime beyond the flat scope: give it its own tag (for example
extra) so it becomes a third, clearly labelled hourly line rather than disappearing into prep. - Non-billable entries: if you use Toggl's billable flag, filter to billable before building the hourly line.
Doing it faster
Tracker Invoice Lines handles the hourly side. Drop in a detailed Toggl (or Clockify or Harvest) CSV and it groups billable time into invoice lines with your rate, ready for Xero, Wave or a generic Qty × Rate sheet. If prep and event are separate tasks, the Project+task grouping gives you separate lines for them. It doesn't add flat-fee lines, so add the one flat line yourself in Xero or Wave after importing. $8, paid once, runs offline.
Related tools
- Paid through Stripe? StripeClear Journal turns Stripe balance exports into a balanced QuickBooks journal CSV.
FAQ
How do I separate prep time from event time in Toggl?
Create two tags, such as prep and event, keep both under the same client and project, and give every entry exactly one of them. Reports can then be filtered or grouped by tag.
Should the event hours appear on the invoice?
No. The flat-fee line is quantity 1 at the agreed fee. Keep the event hours in Toggl anyway to see what the flat fee earned per hour.
Where should I round when billing hourly prep?
Round the prep total once, not each entry. If you use Toggl report rounding, apply it to grouped entries so the subtotal is rounded.
Can Tracker Invoice Lines add the flat-fee line?
No. It builds the hourly lines from a time export; add the single flat-fee line yourself in Xero or Wave after importing.
Official documentation
The tool for this job
Tracker Invoice Lines
Toggl Clockify Harvest to Xero Wave Lines — Offline Invoice CSV
Turn a Toggl, Clockify or Harvest detailed time CSV into Xero, Wave or generic Qty × Rate invoice line CSVs.