Epic
beta · Family delivery-docs · Phase deliver · Sizes lean, full · ~2,650 tokens
A named body of work large enough to need splitting into stories, written to carry what a tracker’s own epic record cannot: why the work exists, who it serves, what is deliberately left out, and what larger effort it ladders up to. Native to no Scrum, XP, or Kanban framework, formalized only by SAFe, and everywhere else a vocabulary borrowed from the tools that ship it as fields on a work-item panel.
Fast reference for the Epic bundle. For the full reasoning, history, and sources, read
epic_companion.md.
When to use
Section titled “When to use”- To carry what a tracker’s own epic record cannot: why this body of work exists, who it serves, what is deliberately left out, and what larger effort it ladders up to.
- When a body of work is large enough that it needs to be split into stories and something has to say why those stories belong together.
- When the work crosses teams, carries real dependencies, or needs a stated (or explicitly absent) answer to what sits above it. That is the point to grow lean into full, not to open a second document type.
When NOT to use
Section titled “When NOT to use”- Your team lives entirely inside one tool’s epic record, with short-lived, single-team work. The tracker’s own fields for title, dates, parent-child links, and rollups already do that job; write only the narrative summary a field cannot carry, at the lean size. If you need the exclusions, the owned dependencies, or a stated position above the epic, that is the signal to use full.
- You need a cost estimate, a value-return figure, or a go/no-go recommendation. That is
business-caseterritory. This document groups the work and states what it is in service of; it does not argue for the investment. - You need one story’s own detailed, checkable conditions. That is
acceptance-criteriaat the story level. This document’s own Acceptance Criteria section is the high-level gate for the whole epic, not a place to duplicate a single story’s criteria.
Pick a variant
Section titled “Pick a variant”- Lean (default): Title and Narrative Summary, Goal and Context, Scope, Child Stories, and Acceptance Criteria. Enough to state what the work is, why it exists, and what closes it, for a single-team epic living inside one tool.
- Full: adds Out of Scope, Dependencies, and Link Upward. For work that crosses teams, carries real dependencies, or needs a stated position above it. Grow lean into full by adding these three sections; the first five keep their name and order.
The rubric
Section titled “The rubric”Score each 0, 1 or 2. Under 12 out of 16 and a reader still has to go ask someone what this epic actually excludes, depends on, or sits under, which is exactly the information this document exists to carry instead of the tracker’s fields.
Which rows apply to what. This bundle ships two variants, and three rows grade sections only the full variant carries, so scoring lean against all eight would penalise the choice of variant rather than the quality of the epic.
| Variant | Rows that apply | Maximum | Score against |
|---|---|---|---|
| full | all 8 | 16 | 12 |
| lean | 1-5 (it carries none of the three full-only sections) | 10 | 7 |
Both thresholds sit above two-thirds of the available points; neither is a bare pass mark. Under 7 out of 10 on the lean rows and this document is not doing anything the tracker’s own title and status fields do not already do.
| # | Criterion | 0 | 1 | 2 |
|---|---|---|---|---|
| 1 | Audience and value named | Title alone, or a persona sentence with no stated audience and no stated value | A persona sentence exists, but it is generic enough to paste onto any epic in the backlog | A reader who has never met the author can say who benefits and what they get, from the sentence alone |
| 2 | Goal points upward | No larger effort named, and no reason given for why now | A larger effort is named, but the section restates Scope’s feature list under a different heading | You could point at the sentence that names the larger effort, and say which lever it loses if this epic is cut |
| 3 | Scope has an edge | A feature list with no stated boundary | Some items suggest a boundary, but a reader has to infer where scope actually stops | A reader can point at the sentence that says where scope stops, not only what it includes |
| 4 | Child list stays current | List absent, or stories with no status and no id a reader could look up | IDs and statuses are present, but nothing ties this list to what the tracker actually rolls up | Every row names a real story id and a status a reader could go verify in the tracker right now |
| 5 | Criteria are checkable gates | Criteria restate the goal or the scope in different words | Some criteria are checkable, but at least one restates scope or duplicates a single story’s own criteria | Every criterion could be marked pass or fail by someone who did not write it, and none belongs to one story alone |
| 6 | Exclusions are specific (full only) | No Out of Scope section, or “everything else is out of scope” | Exclusions are listed, but they are generic enough to belong to any epic | You can point at a specific thing that came up, was refused, and say which other epic it belongs to instead |
| 7 | Dependencies are owned (full only) | Dependencies recorded as bare links, with no type, severity, or owner | Type or severity is given, but at least one dependency has no named owner on one side | Every dependency names its type, its severity, and a person on each side who would confirm they own it |
| 8 | Position stated or absent (full only) | The field is blank, or it names a tier your own organization does not actually use | Something is named above the epic, but the section does not say whether that is your own organization’s convention or a documented standard | The field names the real tier in your organization’s own vocabulary, or states plainly that none exists, without asserting a tier borrowed from a vendor |
Named anti-patterns (the usual wrecks)
Section titled “Named anti-patterns (the usual wrecks)”- The epic that never closes. Scope keeps absorbing new work and nothing ever marks it done. The published fixes disagree: dissolve the artifact, or hold it to an evidence-based Done rather than a completion checklist.
- Scope with no stated exclusions. A Scope section that never says what is out invites the drift that later makes the epic hard to close. Write the exclusions as their own step, not as an afterthought.
- Unowned dependencies. A dependency recorded as a bare link, with no named owner on each side, is not meaningfully tracked at all, whatever the tracker’s own link field suggests.
- Writing an epic that only repeats field values. Every tracker surveyed already does titles, dates, parent-child links, and rollups well. This document earns its place only where it says something none of those fields say.
- Crossing into a business case’s territory. A cost estimate, a value-return figure, or a go/no-go
recommendation belongs to
business-case, not here. - Treating one vendor’s hierarchy as the only correct one. Three published hierarchies disagree with each other, and none claims the others are wrong. Asserting one as universal will read as wrong to a reader using either of the other two.
The artifacts
Section titled “The artifacts”epic_template-lean.md · ~2,650 tokens
---title: "{{epic_name}} Epic"epic_name: "{{epic_name}}"owner: "{{owner}}"status: "{{status}}"target_timeframe: "{{target_timeframe}}"doc_type: epicsize: leansource_template: epicsource_template_version: 0.1.0---
<!--LEAN EPIC. The five sections a tracker's own fields cannot carry: what this body of work is and who itserves (Title and Narrative Summary), the larger effort it ladders up to (Goal and Context), its boundaries(Scope), the maintained list of stories it splits into (Child Stories), and the high-level bar for callingit done (Acceptance Criteria). Use it for a single-team epic living inside one tool's own record. To grow itinto a full epic (see epic_template-full.md), ADD sections; never rename or reorder the ones below, becausethe full variant is a strict superset of this one.
AN EPIC IS A TRACKER RECORD FIRST, AND A DOCUMENT ONLY SECOND. Every tracker this library's researchexamined (Jira, Azure Boards, GitLab, Linear, Aha!) already ships titles, dates, parent-child links, androllups, as typed fields on a work-item panel. Keep using those fields for what they already do well. Writethis document only for what those fields cannot carry. At the lean size that is the context: what this workis in service of, and why now. The exclusions, the owned dependencies, and the position above the epic arethe three sections the full variant adds; grow into it when you need them. See epic_companion.md section 1and section 8.
YOUR FRAMEWORK PROBABLY DOES NOT DEFINE THIS WORD, AND THE WORD HAS DRIFTED FROM ITS FOUNDING MEANING. Fourof the five methodologies this library's research surveyed (Scrum, XP, the Kanban Method, LeSS Huge) have noepic concept at all; SAFe is the outlier, and it formalizes the artifact heavily. The founding publisheddefinition (Cohn, 2004) is a single oversized story destined to be split and then to disappear, not a group;every tracker examined now implements the container sense instead, a drift Cohn himself names but did notauthor. This template teaches the container, because that is what a reader actually has open in front ofthem. See epic_companion.md section 2 and section 5.
THE SHARPEST BOUNDARY IS AGAINST A BUSINESS CASE. A cost estimate, a value-return figure, or a go/no-gorecommendation belongs to the `business-case` artifact, not here. This document groups the work and stateswhat it is in service of; it does not argue for the investment. See epic_companion.md section 8.
HOW TO FILL THIS IN1. Read the comment under each heading: WHAT it wants, WHY it matters (with a pointer into epic_companion.md for the deep reasoning), guiding questions to ASK, a GOOD and a WEAK example, and the TRAP to avoid. For the table, PRIORITY explains the row order and ROW HINT says what a good row contains.2. Replace each {{placeholder}} with your content. Write Scope before Child Stories; the boundary should produce the story list, not the other way around.3. If a section does not apply, write "N/A" and one line of why, rather than deleting it.4. Before you share it: self-grade against epic_guide.md, then DELETE every HTML comment. They are guidance, not content.-->
# {{epic_name}} Epic
## Title and Narrative Summary
<!-- WHAT A short, clear name; then one sentence on the goal; then a persona-form narrative naming who this serves and what they get: "As the [persona], I want to [objective] so that [value]." WHY A tracker's title field forces brevity; it does not force a stated audience or a stated value. ProductPlan is the named source for asking for more than a title: a title, a short description of the goal, and a persona-form narrative. Deep dive: epic_companion.md section 3 (Anatomy > Title and Narrative Summary). ASK What is the epic called? In one sentence, what are you trying to achieve? Who is this for, and what do they get? GOOD "Audit Trail. Let a Compliance Officer answer who changed a record, and when, without asking an engineer to run a query. As a Compliance Officer, I want a searchable history of changes to any record, so that I can answer an auditor's question the same day it is asked." WEAK "Audit Trail." (a title alone; states no audience and no value, and repeats what the tracker's own title field already carries) TRAP Stopping at the title. A tracker's title field already forces brevity; writing nothing past it wastes the one thing this section can do that the field cannot. -->
{{goal_description}}
As a {{persona}}, I want {{objective}}, so that {{value}}.
## Goal and Context
<!-- WHAT The larger effort this epic ladders up to, and why it matters now: what it is in service of, stated in whatever form the reader actually has above them. WHY This is the section the rest of the document answers to, and the reason to write an epic as prose rather than open a ticket: everything a tracker's fields already do well, keep doing; this is where prose earns a place they cannot fill. What the larger effort is called is itself unsettled: SAFe formalizes an Epic Hypothesis Statement naming a target customer, a need, and a measurable outcome, while three tool hierarchies disagree on what sits above an epic at all. Deep dive: epic_companion.md section 3 (Anatomy > Goal and Context) and section 6 (Debates). ASK What larger goal, initiative, or theme does this serve? Why now? What would make this epic worth having done, a quarter after it ships? GOOD "Serves the FY26 'Enterprise Readiness' goal: two deals stalled last quarter on our inability to evidence who changed what, and Audit Trail is the largest lever we have on that this half." WEAK "Because the roadmap says so." (names no goal and no reason, and gives a reviewer nothing to check the epic against) TRAP Stating the goal as a feature list ("build views, sharing, defaults") rather than the effort above the epic. If Goal and Context reads like Scope, you have written the same thing twice under two headings. -->
{{goal_and_context}}
## Scope
<!-- WHAT The boundaries of the work this epic covers: what is included, described as an edge rather than a feature list. WHY ProductPlan names this step directly: "jot down the scope of work for this epic - in other words, the boundaries." No tracker examined ships a dedicated scope-boundary field; the closest tracker fields describe priority and timing, not boundaries. Deep dive: epic_companion.md section 3 (Anatomy > Scope). ASK What is included in this body of work? Where does it start and stop? What would make you say "that belongs to a different epic"? GOOD "Covers saving, naming, listing, and reopening a dashboard's current filter and view state, for one user's own views: the storage and retrieval mechanics, and the UI to manage a personal list." WEAK "Saved views and related work." (no boundary; "related work" could mean anything, and nothing here tells you what is out) TRAP Writing scope as a feature list with no edge. A scope with no boundary reads the same whether the epic is nearly done or barely started. -->
{{scope}}
## Child Stories
<!-- WHAT The maintained list of stories this epic splits into: the founding relation itself. WHY Cohn's founding relation states the direction: "Epics can be split into two or more stories of smaller size." Aha!'s present-day description keeps the same shape from the grouping side: "Epics are used to group features that often share a common business objective." This document's version is a maintained, intentional list; the tracker's version is what that list later feeds into a rollup such as Jira's Epic Burndown. Deep dive: epic_companion.md section 3 (Anatomy > Child Stories). ASK Which stories does this epic split into? Is the list current? What is each story's status? PRIORITY Order rows by the sequence the stories will actually be pulled, top first. ROW HINT A good row names the story's id (from user-stories or the backlog), a short title, and a status you keep current. A weak row is a bare feature name with no id and no status. GOOD | SV-1 | Persist a saved view (storage) | In progress | WEAK | | "Views stuff" | | TRAP Letting this list silently drift from the tracker's own child links, so the document and the epic's real children disagree. The tracker computes its rollup from these children; a list that has stopped matching them stops being useful for anything. -->
| ID | Story | Status ||---|---|---|| {{story_id}} | {{story_title}} | {{story_status}} |
## Acceptance Criteria
<!-- WHAT The high-level list of requirements the team will need to approve before this epic is considered done. WHY ProductPlan frames this as the completion gate: "a clear set of acceptance criteria - the high-level list of requirements your team will need to approve." This is not the only published answer to how an epic closes: SAFe substitutes a falsifiable hypothesis for acceptance criteria instead, and the Cohn lineage has no closure artifact for an epic at all, because an epic there is not distinct enough from a story to need one. This template follows ProductPlan's convention; treat the alternative as a live, unresolved debate, not a settled one. Deep dive: epic_companion.md section 3 (Anatomy > Acceptance Criteria) and section 6 (Debates). ASK What must be true, overall, for this body of work to be considered done? Is each item something the team can actually check, rather than a restatement of the scope? GOOD "- [ ] A user can save the current dashboard state as a named view. - [ ] A user can reopen a saved view in one click. - [ ] Saved views persist across sessions." WEAK "- [ ] Views work." (not checkable, and restates the epic rather than gating it) TRAP Writing story-level detail here. This is the high-level gate for the whole epic; the story-by-story detail belongs in each story's own acceptance criteria (see the acceptance-criteria artifact), not duplicated here. -->
- [ ] {{criterion_1}}- [ ] {{criterion_2}}epic_template-full.md · ~4,150 tokens
---title: "{{epic_name}} Epic"epic_name: "{{epic_name}}"owner: "{{owner}}"status: "{{status}}"target_timeframe: "{{target_timeframe}}"related: ["{{related_docs}}"]doc_type: epicsize: fullsource_template: epicsource_template_version: 0.1.0---
<!--FULL EPIC. Every section, for a body of work that crosses teams, carries real dependencies, or needs astated (or explicitly absent) position above it. Most single-team, single-tool epics do not need this; thelean five sections are the whole artifact for them.
The full variant is a strict superset of the lean one: the first five sections keep their names and order,and this file only ADDS Out of Scope, Dependencies, and Link Upward, the three places this research foundprose doing work a tracker's own fields do not do for it: a named exclusion, a two-sided owned dependency,and a stated position in a hierarchy that even the vendors who publish one cannot agree on. If you aregrowing from lean, add these three; do not reorder anything already there.
AN EPIC IS A TRACKER RECORD FIRST, AND A DOCUMENT ONLY SECOND. Every tracker this library's researchexamined (Jira, Azure Boards, GitLab, Linear, Aha!) already ships titles, dates, parent-child links, androllups, as typed fields on a work-item panel. Keep using those fields for what they already do well. Writethis document only for what those fields cannot carry: the context, the exclusions, the owned dependencies,and the position above it. See epic_companion.md section 1 and section 8.
YOUR FRAMEWORK PROBABLY DOES NOT DEFINE THIS WORD, AND THE WORD HAS DRIFTED FROM ITS FOUNDING MEANING. Fourof the five methodologies this library's research surveyed (Scrum, XP, the Kanban Method, LeSS Huge) have noepic concept at all; SAFe is the outlier, and it formalizes the artifact heavily, including an MVP, a Leanbusiness case, and a named accountable Epic Owner role. The founding published definition (Cohn, 2004) is asingle oversized story destined to be split and then to disappear, not a group; every tracker examined nowimplements the container sense instead, a drift Cohn himself names but did not author. This template teachesthe container, because that is what a reader actually has open in front of them. See epic_companion.mdsection 2 and section 5.
THE SHARPEST BOUNDARY IS AGAINST A BUSINESS CASE, AND SAFe'S OWN LEAN BUSINESS CASE IS THE CLEAREST EVIDENCEWHY. When an epic is written as a genuine multi-section document, the strongest documented case of it isSAFe's Lean Business Case, which wraps a Scope Definition and an In Scope / Out of Scope pair around a CostEstimate, a Value Return, and a Go/No-Go Recommendation. Those three, costing, value return, and ago/no-go call, belong to the `business-case` artifact, not here. This document groups the work and stateswhat it is in service of; it does not argue for the investment. See epic_companion.md section 4 andsection 8.
HOW TO FILL THIS IN1. Read the comment under each heading: WHAT it wants, WHY it matters (with a pointer into epic_companion.md for the deep reasoning), guiding questions to ASK, a GOOD and a WEAK example, and the TRAP to avoid. For a table, PRIORITY explains the row order and ROW HINT says what a good row contains.2. Replace each {{placeholder}} with your content. Write Scope before Out of Scope; the exclusions should answer questions the boundary actually raised, not restate it in the negative.3. If a section does not apply, write "N/A" and one line of why, rather than deleting it.4. Before you share it: self-grade against epic_guide.md, then DELETE every HTML comment. They are guidance, not content.-->
# {{epic_name}} Epic
## Title and Narrative Summary
<!-- WHAT A short, clear name; then one sentence on the goal; then a persona-form narrative naming who this serves and what they get: "As the [persona], I want to [objective] so that [value]." WHY A tracker's title field forces brevity; it does not force a stated audience or a stated value. ProductPlan is the named source for asking for more than a title: a title, a short description of the goal, and a persona-form narrative. Deep dive: epic_companion.md section 3 (Anatomy > Title and Narrative Summary). ASK What is the epic called? In one sentence, what are you trying to achieve? Who is this for, and what do they get? GOOD "Audit Trail. Let a Compliance Officer answer who changed a record, and when, without asking an engineer to run a query. As a Compliance Officer, I want a searchable history of changes to any record, so that I can answer an auditor's question the same day it is asked." WEAK "Audit Trail." (a title alone; states no audience and no value, and repeats what the tracker's own title field already carries) TRAP Stopping at the title. A tracker's title field already forces brevity; writing nothing past it wastes the one thing this section can do that the field cannot. -->
{{goal_description}}
As a {{persona}}, I want {{objective}}, so that {{value}}.
## Goal and Context
<!-- WHAT The larger effort this epic ladders up to, and why it matters now: what it is in service of, stated in whatever form the reader actually has above them. WHY This is the section the rest of the document answers to, and the reason to write an epic as prose rather than open a ticket: everything a tracker's fields already do well, keep doing; this is where prose earns a place they cannot fill. What the larger effort is called is itself unsettled: SAFe formalizes an Epic Hypothesis Statement naming a target customer, a need, and a measurable outcome, while three tool hierarchies disagree on what sits above an epic at all. Deep dive: epic_companion.md section 3 (Anatomy > Goal and Context) and section 6 (Debates). ASK What larger goal, initiative, or theme does this serve? Why now? What would make this epic worth having done, a quarter after it ships? GOOD "Serves the FY26 'Enterprise Readiness' goal: two deals stalled last quarter on our inability to evidence who changed what, and Audit Trail is the largest lever we have on that this half." WEAK "Because the roadmap says so." (names no goal and no reason, and gives a reviewer nothing to check the epic against) TRAP Stating the goal as a feature list ("build views, sharing, defaults") rather than the effort above the epic. If Goal and Context reads like Scope, you have written the same thing twice under two headings. -->
{{goal_and_context}}
## Scope
<!-- WHAT The boundaries of the work this epic covers: what is included, described as an edge rather than a feature list. WHY ProductPlan names this step directly: "jot down the scope of work for this epic - in other words, the boundaries." No tracker examined ships a dedicated scope-boundary field; the closest tracker fields describe priority and timing, not boundaries. Deep dive: epic_companion.md section 3 (Anatomy > Scope). ASK What is included in this body of work? Where does it start and stop? What would make you say "that belongs to a different epic"? GOOD "Covers saving, naming, listing, and reopening a dashboard's current filter and view state, for one user's own views: the storage and retrieval mechanics, and the UI to manage a personal list." WEAK "Saved views and related work." (no boundary; "related work" could mean anything, and nothing here tells you what is out) TRAP Writing scope as a feature list with no edge. A scope with no boundary reads the same whether the epic is nearly done or barely started. -->
{{scope}}
## Child Stories
<!-- WHAT The maintained list of stories this epic splits into: the founding relation itself. WHY Cohn's founding relation states the direction: "Epics can be split into two or more stories of smaller size." Aha!'s present-day description keeps the same shape from the grouping side: "Epics are used to group features that often share a common business objective." This document's version is a maintained, intentional list; the tracker's version is what that list later feeds into a rollup such as Jira's Epic Burndown. Deep dive: epic_companion.md section 3 (Anatomy > Child Stories). ASK Which stories does this epic split into? Is the list current? What is each story's status? PRIORITY Order rows by the sequence the stories will actually be pulled, top first. ROW HINT A good row names the story's id (from user-stories or the backlog), a short title, and a status you keep current. A weak row is a bare feature name with no id and no status. GOOD | SV-1 | Persist a saved view (storage) | In progress | WEAK | | "Views stuff" | | TRAP Letting this list silently drift from the tracker's own child links, so the document and the epic's real children disagree. The tracker computes its rollup from these children; a list that has stopped matching them stops being useful for anything. -->
| ID | Story | Status ||---|---|---|| {{story_id}} | {{story_title}} | {{story_status}} |
## Acceptance Criteria
<!-- WHAT The high-level list of requirements the team will need to approve before this epic is considered done. WHY ProductPlan frames this as the completion gate: "a clear set of acceptance criteria - the high-level list of requirements your team will need to approve." This is not the only published answer to how an epic closes: SAFe substitutes a falsifiable hypothesis for acceptance criteria instead, and the Cohn lineage has no closure artifact for an epic at all, because an epic there is not distinct enough from a story to need one. This template follows ProductPlan's convention; treat the alternative as a live, unresolved debate, not a settled one. Deep dive: epic_companion.md section 3 (Anatomy > Acceptance Criteria) and section 6 (Debates). ASK What must be true, overall, for this body of work to be considered done? Is each item something the team can actually check, rather than a restatement of the scope? GOOD "- [ ] A user can save the current dashboard state as a named view. - [ ] A user can reopen a saved view in one click. - [ ] Saved views persist across sessions." WEAK "- [ ] Views work." (not checkable, and restates the epic rather than gating it) TRAP Writing story-level detail here. This is the high-level gate for the whole epic; the story-by-story detail belongs in each story's own acceptance criteria (see the acceptance-criteria artifact), not duplicated here. -->
- [ ] {{criterion_1}}- [ ] {{criterion_2}}
## Out of Scope
<!-- WHAT What this epic deliberately does not cover: the boundary partner to Scope, named as its own step rather than left implicit. WHY The sharpest teaching point this research returned for this document: write the exclusions, not just the scope. ProductPlan frames the boundary step as writing what is deliberately left out; no tracker examined ships a dedicated field for it. A scope section that never states an exclusion is the likeliest single reason an epic never closes. Deep dive: epic_companion.md section 3 (Anatomy > Out of Scope) and section 7 (Anti-patterns). ASK What has come up that this epic will not cover? What adjacent work looks related but belongs to a different epic? What would you refuse if someone tried to fold it in here? GOOD "Out of scope: sharing a view with another user (a separate epic); team-level default views (needs a permissions model this epic does not build); exporting a view's data (already covered by the existing export feature)." WEAK "Everything else is out of scope." (names nothing; the next person to propose scope creep has nothing to point at) TRAP Treating Out of Scope as an afterthought copied from Scope's negative space. Name specific things that have actually come up, ideally something a reasonable colleague would argue for including. -->
{{out_of_scope}}
## Dependencies
<!-- WHAT What this epic needs from outside its own team, or owes to someone else, each classified by type and severity, with a named owner on both sides. WHY Agility at Scale's dependencies guidance is the named source for asking more than a link: "Classify each dependency by type (knowledge, technical, process) and severity (blocking versus informational)." And, more pointedly: "Every dependency gets an owner on both sides - the requesting team and the providing team. Unowned dependencies are invisible dependencies in disguise." This is more structure than a tracker's own linked-item field carries on its own. Deep dive: epic_companion.md section 3 (Anatomy > Dependencies) and section 7 (Anti-patterns > Unowned dependencies). ASK What does this epic need from outside itself, or owe to someone else? What kind of dependency is it (knowledge, technical, process)? How severe if it slips (blocking versus informational)? Who owns it on each side? PRIORITY Order rows by severity, blocking first. Every row needs an owner on both sides; a dependency with only one named owner is not yet tracked. ROW HINT A good row names the specific thing needed, its type and severity, and both owners. A weak row is a bare link with no owner. GOOD | D-01 | Platform team delivers the change-capture hook the history feed reads from | Technical | Blocking | Dana Osei (Audit Trail) | Lee Zhang (Platform) | Confirmed | WEAK | D-01 | Waiting on platform | | | | | | TRAP Recording a dependency as a bare link with no owner on each side. A dependency without a named owner on the providing side is not meaningfully tracked at all, whatever the tracker's own link field suggests. -->
| ID | Dependency | Type | Severity | Owner (this side) | Owner (other side) | Status ||---|---|---|---|---|---|---|| {{dependency_id}} | {{dependency}} | {{dependency_type}} | {{severity}} | {{owner_this_side}} | {{owner_other_side}} | {{dependency_status}} |
## Link Upward (Initiative, Theme, or nothing)
<!-- WHAT Whatever sits above this epic in your own organization's hierarchy, named in your own vocabulary: an Initiative, a Theme, or nothing at all. WHY Three hierarchies disagree with each other and none claims the others are wrong: Jira and Atlassian place an Initiative above the epic, Aha! places its own Initiative above Epic above Feature, and SAFe has no initiative tier, running Epic above Feature above Story. No source claims one of these is correct, so this field is a pointer to your own hierarchy, not an assertion of a named tier. Deep dive: epic_companion.md section 3 (Anatomy > Link Upward) and section 6 (Debates > What sits above the epic?). ASK Does your organization have a tier above the epic? What is it actually called there? If there is none, say so rather than inventing a name. GOOD "Initiative: 'Enterprise Readiness' (Jira Initiative INIT-4). No Theme is tracked separately for this epic." WEAK "Theme: Analytics." (Theme is not established as a hierarchy level by the sources this bundle checked; naming it here as if it were a settled rung asserts more than the evidence supports) TRAP Naming Theme as if it were a settled rung in the hierarchy. The Agile Alliance glossary records that themes are "typically not used as a level in a backlog hierarchy," and Cohn defines a theme as a collection of stories sharing a topic, not a tier above one. If your organization genuinely uses Theme as a rung, say so, and say that is your organization's own convention rather than a documented standard. -->
{{link_upward}}---title: "Saved Views Epic"epic_name: "Saved Views"owner: "Priya Nair (PM, Reporting)"status: activetarget_timeframe: "By the end of Q3 2026, the close of the FY26 roadmap's Now lane"related: ["../prd/prd_example.md (Saved Views for Dashboards PRD, created 2026-06-12)", "../product-strategy/product-strategy_example.md (FY26 product strategy, agreed 2026-01-28)", "../product-roadmap/product-roadmap_example.md (FY26 product roadmap, agreed 2026-02-11; this epic fills its Now lane)"]doc_type: epicsize: fullcreated: "2026-06-13"updated: "2026-06-17"source_template: epicsource_template_version: 0.1.0---
> **Worked example.** A filled `epic`, full variant, for the same "Saved Views" work later covered by the> [Saved Views PRD](../prd/prd_example.md) it groups, and by the> [product backlog](../product-backlog/product-backlog_example.md), the> [user stories](../user-stories/user-stories_example.md), the acceptance criteria, the release notes, and> the [Saved Views design document](../sdd/sdd_example.md) that follow it. It is dated one day after the PRD> entered review, before any of those five documents existed and before a single story had been written up:> the Child Stories table below reserves the `SV-*` numbering the product backlog later assigns real statuses> to, and the Acceptance Criteria section states the same four-item gate (save, load, default, share) that> the [DEF-2291 postmortem](../incident-postmortem/incident-postmortem_example.md) later finds a gap in, at> the aggregate level, when it is triaged on 2026-07-13. Reading this example after those siblings shows> where their facts came from; reading it first is closer to what the team actually had in hand when the> epic was opened. Figures marked "illustrative" are made up for the example.
# Saved Views Epic
## Title and Narrative Summary
Dashboards in Acme Analytics always reopen in the same blank default state, so anyone who checks the sameslice of data every day pays a small setup tax before they can do anything useful with it. This epic groupsthe work needed to let a person capture that setup once, under a name, and get it back without redoing it: asaved combination of filters, date range, and visible columns that survives between visits and, for a TeamLead, can be handed to a whole team so everyone starts from the same numbers.
As a Recurring Analyst, I need my usual filters to survive between visits, so that opening a dashboard putsme back where I left off instead of back at zero.
## Goal and Context
This epic exists because of the 2026-05 Reporting friction study, which turned a long-standing assumption("re-filtering just works") into a measured cost: across the twelve analysts interviewed, reassembling afilter set was the single most frequent repeated action inside a dashboard, ahead of both export and share,and three kept a personal note of "the filters I always use" rather than trust the dashboard to rememberthem. The request had been deferred twice before as a nice-to-have; the study is what reframed it as arecurring tax on exactly the people the product exists to serve.
It ladders up to the FY26 "Time to Insight" company goal, which the[FY26 product strategy](../product-strategy/product-strategy_example.md) set out in January and the[FY26 product roadmap](../product-roadmap/product-roadmap_example.md) placed in its Now lane the followingmonth: cutting the time between opening a report and doing something with it. A quarter after this epicships, the honest test is whether a Recurring Analyst's first move on opening a dashboard is reading thedata in front of them, not reassembling the lens they need to see it through.
## Scope
Scope is everything the PRD's six functional requirements ask for on top of the dashboard's existing filterengine, plus one enabling piece none of them can ship without. In pull order: a durable place for a savedview to live; letting a user capture the dashboard's current filters, date range, and columns under a name(FR-1); switching between that user's own saved views in one action (FR-2); marking one view a default thatloads automatically (FR-3); making a view visible to a teammate who already has access to the same dashboard(FR-4); letting the owner rename or retire a view (FR-5); and, lowest priority, flagging a shared view whenthe dashboard underneath it has since changed (FR-6, a Could). Everything above operates on state thedashboard already holds; nothing in this epic touches how the dashboard itself is built.
## Child Stories
The rows below reserve the `SV-*` numbering this epic expects to use once each is written up in full; theproduct backlog and the story set will carry the same IDs forward rather than renumbering them later.Ordered by the sequence each is expected to be pulled, not by the FR list above.
| ID | Story | Status ||---|---|---|| SV-1 | Give a saved view somewhere durable to live | Not started || SV-2 | Save the dashboard's current state under a name (FR-1) | Not started || SV-3 | List a user's own views and switch between them (FR-2) | Not started || SV-4 | Set one view as the dashboard's default (FR-3) | Not started || SV-0 | Spike: confirm the sharing permission model holds before building on it | Not started || SV-5 | Share a view with a team, permission-checked (FR-4) | Not started || SV-6 | Let an owner rename or retire their own view (FR-5) | Not started || SV-7 | Flag a shared view whose dashboard has since changed (FR-6, Could) | Not started |
## Acceptance Criteria
- [ ] Saving captures the dashboard's current filters, date range, and visible columns under a name the owner chooses.- [ ] Loading a saved view restores that exact configuration in one action, with nothing left to rebuild by hand.- [ ] Marking a view as the default means the dashboard opens already in that configuration, with no extra step.- [ ] A teammate who already has access to the dashboard can pick a view its owner marked shared and see the same slice of data.
## Out of Scope
Three things came up during discovery and are staying out on purpose, each traceable to a non-goal alreadynamed in the PRD rather than invented for this document. Scheduling a view for delivery by email or Slackis deferred; it sits as a parked backlog idea rather than a story inside this epic, and would only move inif that non-goal were lifted. A "global" view spanning more than one dashboard is deliberately not beingbuilt either, because it opens permissions questions this epic has no reason to answer yet. And nothinghere touches a dashboard's own structure: a view remembers how someone looked at a dashboard, not what thedashboard is built from, so changing chart types, available columns, or the underlying query stays entirelyoutside this epic.
## Dependencies
| ID | Dependency | Type | Severity | Owner (this side) | Owner (other side) | Status ||---|---|---|---|---|---|---|| D-01 | Read access to the per-user preferences store the Platform team shipped in Q1 | Technical | Blocking (resolved) | Marcus Bell (Staff Engineer, Reporting) | Dana Osei (Staff Engineer, Platform) | Done || D-02 | A permissions check the sharing story (SV-5) can call before it ships | Technical | Blocking | Marcus Bell (Staff Engineer, Reporting) | Dana Osei (Staff Engineer, Platform) | Confirmed, integration pending || D-03 | An updated menu component from the shared design system for the Views control | Technical | Informational | Priya Nair (PM, Reporting) | Elena Cho (Design Systems) | In progress |
## Link Upward (Initiative, Theme, or nothing)
Acme's own tracker does offer an Initiative tier above Epic, but Reporting has never populated one for thisbody of work. The answer that actually gets used when someone asks what this ladders up to is the FY26roadmap's Now lane and the "Time to Insight" company goal underneath it; those are the documents a personwould be pointed at, not a tracker field nobody keeps current. So: no Initiative record for this epic, bychoice rather than oversight.Provenance
Section titled “Provenance”The reasoning, the history and every source, in the repository:
- Companion - the long-form argument: why these sections, where the sources disagree, and what the bundle refuses to claim
- History - what changed in this bundle, and when
- Research log - every source consulted, with what each one actually supports
- Catalog metadata - the machine-readable record this page is generated from
Catalog record: 8 sections across 1 format(s), methodology Agile/SAFe, typically owned by Product Owner / PM.