Toggl Track export to dashboard
Time tracked in HH:MM:SS, totaled properly at last.
Export a detailed report from Toggl Track and drop the CSV here. The Duration column arrives as HH:MM:SS text, which no spreadsheet sums without a conversion, so it is turned into decimal hours on load. Start date and start time are recombined into one timestamp, and the Amount column is treated as billable revenue only, since it is populated exclusively where a rate has been set.
Prefer the full explorer? Open the app, or start from the generic dashboard builder.
HH:MM:SS is text, and text does not add up
Toggl writes each entry's duration as a clock string. Two hours and fifteen minutes is 02:15:00. That is perfectly readable and completely unsummable: a spreadsheet either treats it as text and returns zero, or guesses it is a time of day and wraps around after twenty-four hours, which produces a monthly total that looks almost right and is off by whole days. The fix is to convert to decimal hours before doing anything, so 02:15:00 becomes 2.25 and arithmetic works normally.
The split date and time columns are the second annoyance. Start date and Start time are separate, as are End date and End time, so sorting chronologically means concatenating four columns first. Do that in a spreadsheet and you will discover the date format follows your workspace settings rather than a standard. This page joins them and reads the format from the column as a whole, which is why the trend chart appears immediately instead of after fifteen minutes of formula work.
How to export from Toggl Track
- Open Reports in Toggl Track Sign in at track.toggl.com and choose Reports in the left sidebar. Pick Detailed rather than Summary or Weekly: only Detailed gives one row per time entry, which is what a dashboard needs.
- Set the date range and team scope Widen the range to a full month or quarter. Check the team filter too, since a workspace admin looking at their own entries by default will export a fraction of the hours.
- Check your rounding setting The report has a rounding toggle, and it changes the exported durations, not just the display. Rounding to the nearest fifteen minutes can shift a monthly total by several hours across a busy team.
- Download as CSV Use the export control at the top right and choose CSV. The PDF option formats nicely for a client and is useless for anything you want to chart.
- Drop the file here Durations become decimal hours, Project and Client become breakdown chips, and Billable splits the hours into two clearly separated totals.
The Toggl Reports API returns durations in milliseconds rather than as clock strings, which is easier to work with. If you already pull data that way, the numbers land on the same panels without the conversion step.
Try with sample Toggl Track data (the same columns, 114 rows, no upload needed).
What the dashboard shows
Every panel below is built from a column that is actually in the export, named the way Toggl Track names it.
- Hours per day. The rebuilt start timestamp on the axis and decimal hours as the value, which makes a week with two twelve-hour days immediately visible.
- Client and Project split. Two levels of the same question. Client answers who the time was for, Project answers what it went into, and they cross-filter.
- Billable against non-billable. Hours split by the Billable flag, expressed as a utilization percentage, which is the number an agency actually runs on.
- Revenue by client. Amount summed per client, populated only for billable entries with a rate, and clearly labeled as such rather than presented as total value.
- Per-person hours. User as a group-by, with the caveat that a part-time contractor and a full-time employee should not be compared on raw hours alone.
- Tag and task breakdown. Comma-joined tags split apart, plus Task where it is used, which is where meeting time usually reveals itself.
User,Email,Client,Project,Task,Description,Billable,Start date,Start time,End date,End time,Duration,Tags,Amount (USD),Hourly rate (USD)
Six things about a Toggl export that need fixing first
- Duration is a clock string. HH:MM:SS, as text. Summing it in a spreadsheet gives zero, or a time-of-day value that silently wraps at twenty-four hours and produces a total that is plausible and wrong.
- Start and end are four columns. Date and time are separate for both ends of the entry. Chronological sorting requires joining them, and the date format follows workspace settings rather than a standard.
- Rounding changes the exported numbers. The report-level rounding toggle is applied to the file, not just the screen. Two exports of the same period with different rounding settings will not reconcile, and neither is labeled.
- Amount is only for billable entries with a rate. A billable entry on a project with no hourly rate configured exports with an empty Amount. That is not missing data, it is unpriced work, and it makes revenue totals look lower than the billable hours suggest.
- Entries can cross midnight. A session starting at 23:30 has one start date and a different end date. Grouping by start date puts the whole thing on the earlier day, which is usually what you want but rarely what you checked.
- Descriptions are free text. Nobody types them consistently. Client call, client call and Call w/ client are three categories to any grouping tool, which is why Project and Tags carry the analysis instead.
Convert the durations, join the timestamps, and know whether rounding was on. After those three the file is genuinely good: Toggl records at entry level with client, project and billable state attached, which is more structure than most time data ever gets.
Frequently asked questions
Why will my spreadsheet not sum the Duration column?
Because Toggl writes duration as HH:MM:SS, which is text. Some spreadsheets refuse it outright and return zero. Worse, some interpret it as a time of day, which means totals wrap around after twenty-four hours and a month of tracked time comes out as a handful of hours. Converting to decimal, where 02:15:00 becomes 2.25, is the only reliable fix, and it happens here on load.
How do I get a single timestamp for each entry?
Join Start date with Start time, which Toggl exports as two separate columns. The same applies at the other end with End date and End time. The date format follows your workspace locale rather than a standard, so a day-first file read on a month-first machine goes wrong for the first twelve days of every month. This page checks the whole column before deciding.
Why is Amount empty on some billable rows?
Because Amount is calculated from an hourly rate, and a project without a rate configured produces billable hours with no monetary value attached. It is unpriced work rather than missing data. If a large share of your billable hours have no amount, that is usually a setup gap in Toggl rather than a problem with the export, and it is worth fixing at the source.
Does the rounding setting affect the file?
Yes, and this catches people comparing two exports. The rounding control in Reports applies to the exported durations, not just the display, so the same period exported with fifteen-minute rounding and with rounding off will differ, sometimes by hours across a team. Nothing in the CSV records which setting was used, so decide on one and keep it consistent.
What happens to entries that cross midnight?
They keep one start date and a different end date, so the entry spans two calendar days. Grouping by start date attributes the whole duration to the day the work began, which is usually the right call for a late-night session but does mean a daily hours chart can show more than twenty-four hours on a busy day for a whole team. The dashboard flags entries in this shape.
Is client and team data uploaded?
No. The CSV is parsed inside your browser tab. A Toggl detailed report carries client names, hourly rates and per-person hours, which together amount to your agency's pricing and margin structure. That is exactly the kind of file that should not go to an unknown server to become a bar chart. There is no upload here and no account to create.
Related tools
Total your tracked hours in one drop
114 time entries with real HH:MM:SS durations, split date and time columns, three clients, and billable rows where some have a rate and some do not.
Open the sample Toggl Track dashboard