Epic
A large body of work that's too big to finish in one task or sprint, broken down into smaller related tasks. An epic groups those tasks under a shared goal, like 'Build user authentication.'
An epic is a large chunk of work that can't be completed in a single task — so it's split into several smaller tasks that all roll up under one heading. "Build user authentication" is an epic; "add login form," "wire up OAuth," and "write password-reset flow" are the tasks inside it. The epic exists to give a group of related work a shared name and a shared goal.
Where epics sit in the hierarchy
Most agile tools use a three-level hierarchy: epics contain stories (or tasks), which may contain subtasks. An epic is the coarsest unit you'd track on a roadmap; a subtask is the finest unit you'd check off in a day. Some tools add a fourth level above epics ("initiative" or "theme") for quarterly planning.
When epics help
Epics are useful when a single goal spans weeks and many tasks, and you want to track overall progress without losing the detail. They let a stakeholder ask "how's authentication going?" and get a percentage answer, while the team still works task-by-task underneath. They also keep a backlog readable by collapsing twenty related items into one expandable group.
When epics are overkill
For a solo developer or a tiny team, formal epics often add a layer of bookkeeping without payoff. If "build authentication" is just five cards you'll finish this week, grouping them under a tracked epic object is ceremony. A simple label or a shared prefix in card titles does the same job with no extra structure.
How GritShip handles this
GritShip keeps the hierarchy flat: tasks, with one optional level of subtasks (a Pro feature). There's no separate epic object, because the small teams it targets rarely run work big enough to need three tracking levels. A label is the lightweight substitute when you want to group related cards.
Looking for a tool that respects these concepts?
GritShip is project management for developers who'd rather ship than configure.
Try GritShip free →