---
title: "Task Statuses Compared: Asana vs Trello vs ClickUp"
short_title: "Task Statuses: Asana vs Trello vs ClickUp"
description: "Asana tasks have no status field — just completed. Trello cards have none either — the list is the status. ClickUp has status groups where Done and Closed mean different things."
date: 2026-09-24
products: Asana=https://asana.com; Trello=https://trello.com; ClickUp=https://clickup.com
faq: Does Asana have task statuses?=Not as a field. An Asana task has a completed boolean and a completed_at time. Approval tasks add an approval_status (pending, approved, rejected, changes_requested) that is kept in sync with completed. || How does Trello track card status?=Through the list a card sits in (idList), plus two booleans: dueComplete, described as whether the status of the card is complete, and closed, which means archived. || What is the difference between Done and Closed in ClickUp?=Done is for tasks that are done but need to remain open and visible; they are not considered overdue. Closed is for tasks that are totally completed; closed tasks are hidden in List view by default, and you can't create custom Closed statuses.
---

# Task Statuses Compared: Asana vs Trello vs ClickUp

<p class="meta">Researched and verified against each product's API specification or help centre on 2026-09-24.</p>

:::tldr
**Short answer:** Two of the three most popular task tools don't have a task status at all. **Asana** has a `completed` true/false. **Trello** uses the list a card sits in, plus a `dueComplete` flag. **ClickUp** has real statuses, grouped into Not Started, Active, Done and Closed — and in ClickUp, *Done* and *Closed* are deliberately different.
:::

## Three models

| | Asana | Trello | ClickUp |
|---|---|---|---|
| Status field on a task | None — `completed` boolean | None — the card's list (`idList`) | Yes, custom statuses |
| "Finished" | `completed: true` | `dueComplete: true` | A status in the Done or Closed group |
| Workflow stages | Sections (board columns) | Lists | Statuses within groups |
| Archived | — | `closed: true` | — |
| Approval | `approval_status` on approval tasks | — | — |

## Asana: complete or not

Asana's API describes the field plainly: `completed` is "True if the task is currently marked complete, false if not," with `completed_at` recording "The time at which this task was completed, or null if the task is incomplete."

Workflow stages in Asana are sections of a project, shown as columns on a board — they are where a task sits, not a property of the task itself.

The interesting case is approvals. Tasks of subtype `approval` carry an `approval_status` of `pending`, `approved`, `rejected` or `changes_requested`, and Asana's specification says "This field is kept in sync with `completed`, meaning `pending` translates to false while `approved`, `rejected`, and `changes_requested` translate to true." In other words, a **rejected** approval counts as a **completed** task. That makes sense from the approver's side — their job is done — but it catches out anyone counting completed tasks as delivered work.

Asana also had a per-assignee scheduling field, `assignee_status` (today, upcoming, later, new, inbox), which its specification now marks *Deprecated*.

## Trello: the list is the status

A Trello card has no status either. Its position in the workflow is `idList` — "The ID of the list the card should be in." Moving a card between lists is how Trello users change "status."

Two booleans sit alongside. `dueComplete` is "Whether the status of the card is complete" — the checkbox on a card's due date. And `closed` means archived: "Whether the card should be archived (closed: true)."

The consequence for anyone building on Trello data: "Done" is whatever a board's owner decided to call their last list. Two boards can mean completely different things by the same list name, and nothing in the card says it's finished unless `dueComplete` was ticked.

## ClickUp: four groups, and Done isn't Closed

ClickUp has statuses, and every one belongs to a group. Its help centre lists "three default task status groups":

- **Active** — "Tasks that are currently being worked on."
- **Done** — "Tasks that are done, but need to remain open." "Tasks in this status group are not considered overdue."
- **Closed** — "Tasks that are totally completed." "Complete is the default Closed status."

A fourth, **Not Started**, "is activated through a ClickApp."

The split between Done and Closed is the design choice worth studying. ClickUp's example: "all engineering is completed on a sprint task, but marketing and technical writing teams still need access to it." Closing it would hide it — "If the status is marked as Complete, the task is automatically hidden from most views. Using a Done status instead will keep the task visible!" A Done status also unblocks work: "Waiting on Dependencies will be cleared when a blocking task is moved to a done status."

The Closed group is locked down: "You can't create custom Closed statuses, but you can rename them."

## What to take from this

1. **A boolean is a legitimate status model.** Asana has built one of the largest work-management products on `completed` plus sections. If your product's workflow varies by team, don't force a status list on everyone.
2. **If you let users define stages, give them fixed categories underneath.** ClickUp's groups, like Linear's categories, keep reports meaningful whatever users name their statuses. Trello doesn't have them, which is why "done" is unreliable in Trello data.
3. **Separate "finished for me" from "finished for everyone."** ClickUp's Done/Closed split and Asana's rejected-counts-as-complete are two answers to the same problem: work can be over for one person and still matter to others.

## Method and limits

Asana's fields are from its official OpenAPI specification on GitHub (`Asana/openapi`); Trello's from its published REST API specification; ClickUp's from its help centre articles on task statuses and Done statuses. All read on 2026-09-24. Each product also has custom fields, which teams often use as a status; we covered only the built-in model. We have no affiliation with any of the three.

## Sources

- Asana — [OpenAPI specification](https://github.com/Asana/openapi/blob/master/defs/asana_oas.yaml)
- Trello — [REST API specification](https://developer.atlassian.com/cloud/trello/swagger.v3.json)
- ClickUp — [Manage task statuses](https://help.clickup.com/hc/en-us/articles/6309452618647-Manage-task-statuses)
- ClickUp — [Use Done statuses](https://help.clickup.com/hc/en-us/articles/6309517280919-Use-Done-statuses)

---

*Researched by [SaaSReadyit](https://saasreadyit.com), which writes AI-generated validation reports for software ideas. Related: [Issue statuses: GitHub vs Jira vs Linear](https://saasreadyit.com/blog/issue-statuses-github-jira-linear.html).*
