Asana time tracking report: hours per person and week in Sheets
Asana logs time but has no timesheet. Turn its time entries into a report of hours per person, project and week in Google Sheets, with one SUMIFS formula.
·8 min read
Key takeaways
Asana has no timesheet screen. On a tab of its time entries, one SUMIFS on the person and the week's dates builds the weekly report.
Each time entry comes back from Asana's API as a date, a duration in minutes, a person and a task, with no start or end time.
Asana's project CSV exports 1h 30min as 1:30, which a spreadsheet can read as a clock time, so format the column as a duration first.
Asana tracks time on Advanced, Enterprise and Enterprise+ only. Starter has none, and Personal gets it only through other tools.
Billable status, descriptions and categories need the paid Timesheets and Budgets add-on from Asana.
Friday, 5pm, invoice run. You need hours per client for the week, split by person. Asana has the time, logged across 60 tasks in 4 projects, and no timesheet. There's no screen in Asana that adds up one person's week, so the Asana time tracking report you want gets built somewhere else.
This post builds it in Google Sheets™: the time entries in one tab, and a grid of hours per person per week from one SUMIFS. Swap one column and the same grid shows hours per project.
First, the plan check. Asana tracks time on Advanced, Enterprise and Enterprise+ only, so on Starter or the free Personal plan there are no entries to report on. Plan gates and limits come from Asana's help center and pricing page, checked again on 28 October 2026.
The short answer
Asana time tracking lives on Advanced, Enterprise and Enterprise+, plus the legacy Business and Legacy Enterprise plans. You can run the timer on a task or type the hours in. Either way, the entry Asana saves comes back from its API as a date and a duration, with no start or end time. Billable status and categories need the paid Timesheets and Budgets add-on from Asana.
The data Asana records for a time log
Time tracking puts 2 numbers on a task. Estimated time is what the work should take. Actual time is the total logged so far. Under actual time sit the individual entries, one per log.
An entry records 4 things:
the day it counts for
how long, which Asana stores in minutes
the person who gets the credit
the task, and the project it counts toward
A log of 1h 30min on Tuesday is a Tuesday and 90 minutes. Asana's API doesn't say whether that was 9 to 10:30 or 3 bursts across the afternoon.
The Timesheets and Budgets add-on adds a description, a billable status and a category to each entry. It also lets someone log time on another person's behalf. Asana offers it on Starter, Advanced, Enterprise and Enterprise+, with a 14-day self-serve trial.
The Asana plan you need
Asana plan
Price per user per month, billed annually
Native time tracking
Personal
$0
Only through integrations
Starter
$10.99
No
Advanced
$24.99
Yes
Enterprise
Contact sales
Yes
Enterprise+
Contact sales
Yes
Monthly billing costs more, at $13.49 on Starter and $30.49 on Advanced. Asana sells no 1-seat plan, so the smallest Advanced team is 2 seats. What the free plan can't do covers the rest of the gaps below Advanced.
Getting time out of Asana by hand
Asana gives you 2 exports. Neither one is a report.
The project CSV. Open the project's dropdown menu, then Export, then CSV. Asana's help center says time tracking values come along, and that 1h 30min exports as 1:30. A spreadsheet can read 1:30 as half past one in the morning. Add up a column of those without fixing the format and a 30-hour week can show as 6:00.
Those values belong to tasks. A task total says 6 hours. It doesn't say who logged them or on which days. The second export exists for that.
Time entries as CSV. It sits in the same menu, and Asana's help center labels it a beta in limited availability. Your workspace may not have it yet. Where it does, you still download a file by hand every week and paste it over last week's.
A sync writes one row per time entry and picks up new ones on its own. Asana to Sheets, our Asana to Google Sheets add-on, syncs time entries on its Pro plan, $19 a month, and on Business. Your Asana workspace must be on Advanced or higher, because that's the only place Asana keeps time tracking.
On each row you get the entry's date and duration, the person, the task and the project. There are no start or end columns, because Asana's API doesn't return them. On Pro, a scheduled sync runs every 3 hours.
Billable status and descriptions exist in Asana only when the workspace has the Timesheets and Budgets add-on. Without it, there's nothing for any tool to bring across.
Leave the synced tab alone, apart from resizing or hiding columns. Build the report on a second tab, so the next sync can't overwrite it.
Build a weekly timesheet with SUMIFS
Say the synced tab has the name Time. The date sits in column A, the duration in column B, the person in column C and the project in column D. Your own column order will differ, so swap the letters to match.
Open a new tab. Put the Monday of each week across row 1 from B1.
Put each person's name down column A from A2.
In B2, enter =SUMIFS(Time!$B:$B, Time!$C:$C, $A2, Time!$A:$A, ">="&B$1, Time!$A:$A, "<"&B$1+7).
Fill it right and down.
The finished grid reads like this, one row per person and one column per week:
Person
Mon 5 Oct
Mon 12 Oct
Mon 19 Oct
Dana
31.5
36
28.25
Luis
22
25.5
30
Priya
38
34.75
37
Now a cell shows one person's total for one week. If the duration column reads in minutes, wrap the formula in /60 to get hours. Swap column C for column D in the formula and the same grid becomes hours per project per week. That's the number most invoices need.
A pivot table gets there with no formulas. Point it at the Time tab, put the person in rows, the project in columns and the duration in values as a sum. Add a filter on the date for the week you're billing.
Spot-check 3 tasks before anything goes to a client. Open them in Asana, read the actual time, and compare it with a filter on the Time tab. When a total is off by one day's entries, look at the week boundary in your formula first. Dates that land a day early usually come from time zones or the sheet's locale.
Keep one habit. On the first working day of each month, copy the finished grid and paste it as values into an Archive tab. If someone edits an old entry in Asana, the archived copy still matches the invoice you sent.
Estimated against actual, per project
Time tracking also gives every task an Estimated time. Asana stores it as a number field on the task, in minutes. If it shows up as a column in your task tab, you can put estimate and actual side by side.
Sum the estimates per project from the task tab with SUMIFS. Sum the logged time per project from the Time tab the same way. One column divided by the other gives a ratio per project. Anything above 1.2 is at least 20% over its estimate, and that's the list worth reading on Monday.
Treat 1.2 as a starting line. Some agencies flag at 1.1 because their margin is thin. Pick the number where your margin starts to hurt.
Gaps no spreadsheet fills
These come from Asana itself.
The time of day work happened. Asana's API returns a date and a duration only.
Billable against non-billable, unless the workspace has the Timesheets and Budgets add-on.
Anything at all on Starter or Personal, where native time tracking doesn't exist.
If clock-in times matter, for payroll or a client who audits hours, use a dedicated time tracker that connects to Asana. Personal and Starter teams end up there anyway.
Frequently asked questions
Does Asana have time tracking on the free plan?
No. Native time tracking is on Advanced, Enterprise and Enterprise+. Asana's pricing page lists time tracking on the free Personal plan only through integrations with other tools.
Can Asana track billable hours?
Only with the Timesheets and Budgets add-on, which Asana offers on Starter and up with a 14-day trial. Without it, an entry has no billable status, no description and no category.
Why does exported Asana time show as 1:30?
Asana exports 1h 30min as 1:30. Spreadsheets can read that as a clock time. Format the column as a duration, or convert it to minutes, before you add anything up.
Does an Asana time entry have a start and end time?
No. Asana has a timer on each task, but the entry it saves comes back from the API as a date and a duration. A report that needs clock-in times has to come from a separate tracker.
Does time on subtasks count toward the parent task?
Yes. Asana's help center says time tracked on subtasks rolls up into the parent task. So in a task tab, a parent's actual time already holds its subtasks' hours. Add up parents or subtasks there, never both, or the hours count twice. The Time tab has one row per entry and can't double up.
Which Asana to Sheets plan includes time entries?
Pro, at $19 a month or $190 a year, and Business, at $39 a month. Both need the Asana workspace on Advanced or higher, since that's where Asana has time tracking.
Your next step
Start with one project and one week. Get the entries into a tab, build the SUMIFS grid, and check the totals against what people say they worked. Plans and trial terms are on the pricing page.
Asana is a trademark of Asana, Inc. Google Sheets and Google Workspace are trademarks of Google LLC. Asana to Sheets has no affiliation with either, and neither endorses it.