Asana export to dashboard
Your Asana project export, counted honestly.
Export a project to CSV from the Asana project menu, drop the file here, and you get a delivery dashboard in about two seconds. Subtasks are recognized by their Parent task reference and kept out of the headline task count, rows with a blank Completed At are treated as still open, comma-joined Tags and Projects are split into real categories, and cycle time is calculated as Completed At minus Created At for every finished task.
Prefer the full explorer? Open the app, or start from the generic dashboard builder.
One project, not one workspace
The first surprise is scope. Asana exports a project, not a workspace, so the CSV you just downloaded contains the tasks on one board and nothing else. Teams that run design in one project, engineering in a second and QA in a third end up with three files and a mental note to combine them later. That note is where reporting goes to die. The columns are identical across projects, so combining them is genuinely easy, but you have to know that is the job before you start.
The second surprise is the row count. Subtasks are exported as their own rows with the parent named in Parent task. A project with forty real deliverables and six subtasks under each looks like two hundred and eighty tasks. Every velocity number built on that row count is wrong by a factor that changes as your team's habits change, which is worse than being consistently wrong. This page splits the file into parents and children on load and asks you which one you meant.
How to export from Asana
- Open the project you want Sign in at app.asana.com and click into the project itself rather than My Tasks or a portfolio. The export follows the project, so a saved search or a personal task list will not give you the file you expect.
- Clear the view filters first Asana exports what the current view contains. If you have filtered to Incomplete tasks or to one assignee, that filter comes along silently and your completion rate reads as zero percent.
- Use the project menu, then Export The dropdown next to the project name has Export, and inside that CSV. The JSON option exists too, but CSV keeps one row per task which is what a dashboard wants.
- Wait for the email Asana prepares the file in the background and mails a download link to the address on your account. Small projects arrive in seconds, large ones in a minute or two.
- Drop the CSV on this page Section/Column becomes a status axis immediately, Assignee becomes a workload breakdown, and the parent-against-subtask split shows up in the summary strip.
Portfolio-level reporting needs one export per project. The headers match exactly, so merging several files first and then loading the combined CSV works fine, and Projects tells you which board each row came from.
Try with sample Asana data (the same columns, 95 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 Asana names it.
- Completion over time. Completed At forms the axis for a burn-up. Tasks with a blank value sit in the open backlog rather than distorting the finished line.
- Cycle time distribution. Completed At minus Created At, shown as a spread rather than an average, because the long tail is where the process problems hide.
- Workload by assignee. Open task counts per person, with unassigned as its own bar since an unassigned backlog is a planning signal in itself.
- Section or column flow. Section/Column is the closest thing Asana has to a status field, so it becomes the kanban-style breakdown.
- Overdue against due date. Due Date compared to today for open rows, and to Completed At for closed ones, which separates late delivery from current risk.
- Tag mix. Comma-joined Tags are split into individual values, so bug, chore and customer-request stop being one long string.
Task ID,Created At,Completed At,Last Modified,Name,Assignee,Assignee Email,Start Date,Due Date,Tags,Notes,Projects,Parent task,Section/Column,Priority
Six things about the Asana export that skew your numbers
- Subtasks are full rows. Each carries a Parent task value naming its parent. Counting rows counts a task and everything under it, so a checklist-heavy team looks four times more productive than a team that writes fewer, larger tasks.
- Completed At is blank for open work. There is no status column that says open. The absence of a completion timestamp is the signal, which means any tool that drops empty cells throws away your entire backlog.
- The export is per project. No workspace-wide CSV exists from the interface. Cross-team reporting means several exports, and the Projects column is what stitches them back together.
- Tags and Projects are comma-joined. Both are multi-value fields flattened into a single cell. A task tagged bug and urgent reads as the literal string bug, urgent, which groups as its own category unless something splits it.
- Cycle time is not in the file. You get two timestamps and no duration. Nobody subtracts ninety-five pairs of dates by hand, which is exactly why most teams never look at their own cycle time.
- The view filter travels with the export. Whatever the board is showing is what you get. A completed-tasks-hidden view produces a file that makes the project look permanently unfinished.
Asana is not being sloppy. Subtasks are real tasks, a blank completion date genuinely means not done, and multi-value fields have to collapse somehow in a flat file. The export just needs a reader that knows those three conventions before it starts counting.
Frequently asked questions
Why does my Asana task count look so high?
Because subtasks are exported as their own rows. Asana writes the parent name into the Parent task column and gives the subtask a full row of its own, so a project with forty deliverables broken into five steps each shows up as two hundred and forty rows. This page separates parents from children on load and lets you count either one deliberately, rather than mixing them.
How do I tell which tasks are still open?
Look at Completed At. Asana does not export a status column for the basic complete flag; it simply leaves the completion timestamp empty on anything unfinished. Blank means open. That trips up any import that treats empty cells as bad data and drops them, because dropping blanks removes your entire backlog and leaves a file where everything looks delivered.
Can I export my whole Asana workspace at once?
Not from the normal interface. The Export option lives on the project menu and gives you one project per file. For a team-wide view, export each project, then merge the CSVs before loading, since the headers are identical across projects. The Projects column carries the board name, so the merged file still knows where each row came from.
How is cycle time calculated here?
Completed At minus Created At, for rows that have both. That gives you the elapsed time from a task being written down to it being finished, which is the number teams argue about and almost never measure. The dashboard shows the distribution rather than only the mean, because a median of three days with a tail of forty-day stragglers is a very different situation from a flat three days.
Why do my tags group into strange combinations?
Tags is a multi-value field flattened into one cell with commas between values. A task tagged both bug and urgent exports as one string containing both, and a naive group-by treats that string as a distinct category separate from bug alone. The parser here splits on the separator and counts each tag individually, so the totals across tags can exceed the task count, which is correct.
Does my team's task data leave the browser?
No. The CSV is parsed by JavaScript in the tab you have open, and the charts are drawn from what is already in memory. An Asana export carries assignee names, work email addresses and the full Notes field, which often contains customer detail and internal discussion. There is no upload step and no account to create before you can look at it.
Related tools
See an Asana dashboard before you export anything
The sample uses the real Asana column names: 95 rows with subtasks under parents, open tasks carrying a blank Completed At, and comma-joined tags on most of them.
Open the sample Asana dashboard