BA Playbook 10
Business Analyst User Story Template
Stop staring at the blank Jira ticket. A reusable toolbox for turning a vague ask into a user story your team can actually build, test and challenge.
Surya · August 8, 2026 · 7 min read · 11 practices
For Freshers and aspiring Business Analysts writing their first template-driven story, Business Analysts who want a reusable structure instead of a blank Jira box, QAs and developers who need acceptance criteria they can actually test against and Anyone trying to understand how real requirements work inside technology teams.
You open Jira.
Click Create.
And suddenly this tiny empty box feels like an exam.
Summary · Description · Acceptance Criteria
What exactly are you supposed to put in there?
A user story doesn’t need to be long. It needs to make the next conversation easier.
Here’s a template you can actually use.
You won’t need every section in every story. Think of this as a toolbox, not a form.
Start with the simple version
The skeleton
As a [user / role]
I want [capability / action]
So that [business outcome / reason]
India example — UPI Payments
As a customer
I want to see why my UPI payment failed
So that I know whether to retry, use another account, or contact my bank.
Capital Markets example — Trade Surveillance
As a Trade Surveillance Analyst
I want alerts to show the customer’s latest risk classification
So that I can prioritise high-risk cases.
Both are valid. But neither is ready to build yet.
First, look at a bad story
Bad story
As a user, I want risk information, so that I can use it.
It follows the format. But what does it actually tell us? Which user? What information? Where should it appear? How fresh must it be? What happens if it is unavailable?
A story can look complete and still contain a lot of ambiguity.
Let’s fix that.
Context
Explain what happens today.
India — UPI
Customers may receive a generic message when a UPI payment fails and not understand what went wrong.
Capital Markets — Trade Surveillance
Analysts currently open another system to check customer risk classification while investigating an alert.
Problem
Explain why it matters.
India — UPI
Customers may retry unnecessarily or contact support because they don’t know what action to take.
Capital Markets — Trade Surveillance
Analysts spend extra time switching systems and may miss relevant risk information.
Context = what happens. Problem = why we care.
Expected Behaviour
Describe what should happen after the change.
India — UPI
When a payment fails, show an understandable reason and, where appropriate, guidance on what to do next.
Capital Markets — Trade Surveillance
When an analyst opens an alert, show the latest available customer risk classification alongside the customer information.
Notice what we haven’t written: “Call API X using endpoint Y and populate column Z.” That may be part of the implementation. But first describe the behaviour.
Don’t confuse the solution with the requirement.
Acceptance Criteria
Now make the behaviour testable, using Given / When / Then.
India — Insufficient balance
Given the customer initiates a UPI payment
And the linked account has insufficient balance
When the transaction fails
Then the customer should see a clear reason.
India — Bank unavailable
Given the bank is temporarily unavailable
When the transaction cannot be completed
Then the customer should be informed
And advised to try again later.
Capital Markets — Risk available
Given customer risk information is available
When the analyst opens the alert
Then the latest risk classification should be displayed.
Capital Markets — Risk unavailable
Given customer risk information cannot be retrieved
When the analyst opens the alert
Then show “Risk information unavailable”
And do not present an older classification as current.
Now: QA knows what to test. Development knows what behaviour matters. Business can challenge the rule before code exists. That’s the point.
Business Rules
Some rules apply across several scenarios. Keep them visible.
India — UPI
- BR-01: A failed payment must never appear successful.
- BR-02: Customer messages should use understandable language, not internal error codes.
Capital Markets — Trade Surveillance
- BR-01: Only the latest active risk classification should be shown.
- BR-02: Expired classifications must not appear current.
- BR-03: If no classification exists, make that clear.
Data Requirements
If behaviour depends on data, make the data visible.
| Data | Source | Required? | Notes |
|---|---|---|---|
| Customer ID | Surveillance alert | Yes | Identifies customer |
| Risk classification | Risk system | Yes | Latest active value |
| Classification date | Risk system | Yes | Determines freshness |
| Risk reason | Risk system | No | Future scope |
You don’t need a huge mapping document for every story. But ask:
What happens if the data is missing, stale, delayed, duplicated, or inconsistent?
That question often exposes important requirements.
Dependencies
Ask: what has to work before this story can work?
India — UPI
- Payment platform returns a meaningful failure status.
- Failure statuses are mapped to customer-friendly messages.
- Mobile app supports the new responses.
Simple stories often get stuck here. Find dependencies early.
Assumptions
Write down what the team is currently treating as true.
Capital Markets — Trade Surveillance
- One customer has one active risk classification.
- The risk system owns the classification.
- Surveillance users can view it.
Assumptions are dangerous when everyone has them but nobody writes them down.
An assumption is not a decision.
Out of Scope
Make the boundary visible.
India — UPI, out of scope
- Payment routing changes
- Bank-side processing changes
- Refund handling
- Card-payment failures
Clear scope prevents arguments later.
Open Questions
Don’t hide unresolved questions in meeting notes. Put them on the story.
Capital Markets — Trade Surveillance
- What happens if the risk service times out?
- How old can the classification be before it becomes stale?
- Should analysts see the classification timestamp?
- Who owns the stale-data decision?
An open question is fine. A hidden open question isn’t.
Decision Log
When an important question gets answered, preserve it.
| Decision | Owner | Reason |
|---|---|---|
| Show a customer-friendly message instead of the raw payment error | Payments Product | Customers should not need to understand internal banking codes |
Three weeks later, someone will ask: “Why did we do it this way?” Now the answer isn’t trapped in someone’s memory.
Before You Move It to Ready
Readiness check
- Do we know who needs this?
- Do we understand why?
- Is expected behaviour clear?
- Can QA test it?
- Are business rules visible?
- Do we know the relevant systems and data?
- Are dependencies and assumptions visible?
- Is out-of-scope clear?
- Are open questions visible?
- Do we know who owns key decisions?
If several answers are no, the story probably isn’t ready. And that’s okay. The goal isn’t to make Jira look complete. The goal is to make sure the team understands what it is agreeing to build.
Take This With You
Don’t just read the playbook. Use it in your next refinement session.
A good user story isn't the requirement.
It's the container for the conversation that turns a requirement into something buildable.
Your job as a BA isn't to fill every field. It's to make ambiguity visible before it becomes code.
Take this with you
BA User Story Template
## User Story **As a:** [role] **I want:** [capability] **So that:** [business outcome] ## Context [What happens today?] ## Problem [Why does it matter?] ## Expected Behaviour [What should happen?] ## Acceptance Criteria ### AC1 **Given** [condition] **When** [event/action] **Then** [expected behaviour] ## Business Rules * BR-01: * BR-02: ## Data Requirements * Data: * Source: * Validation: * Fallback behaviour: ## Dependencies * ## Assumptions * ## Out of Scope * ## Open Questions * ## Decisions * Decision: * Owner: * Reason:
Get new playbooks first.