What makes a good user story?
A user story describes a feature from the perspective of the person who will use it. It answers three questions: who is the user, what do they want to do, and why does it matter to them? The classic format — As a [role], I want to [action], so that [benefit] — is simple but frequently misused.
The most common user story mistakes
Mistake 1: Using "user" as the role
"As a user, I want to login so that I can access the system." This tells us nothing about who the user is, what they actually need, or how their login experience should differ from other users. Replace "user" with a specific role: administrator, finance manager, field technician, new customer.
As a user, I want to view reports so that I can see data.
As a finance manager, I want to filter the P&L report by cost centre and date range so that I can prepare the monthly pack for the board without downloading raw data to Excel.
Mistake 2: Writing the solution, not the need
"As a customer, I want a dropdown menu so that I can select my country." This prescribes the UI. The developer is now constrained by your design choice. Write the need: "As a customer, I want to specify my country so that the system shows me relevant pricing and delivery options."
Mistake 3: No acceptance criteria
A user story without acceptance criteria is a conversation invitation, not a specification. The development team will implement their interpretation. The BA will review against their interpretation. They will rarely match.
Writing acceptance criteria
Acceptance criteria define the conditions under which a story is considered done. The most useful format is Gherkin: Given [context], When [action], Then [observable outcome].
Scenario 1 — Successful login:
Given a user with a registered email and valid password
When they submit the login form
Then they are redirected to their dashboard within 2 seconds
Scenario 2 — Wrong password:
Given a registered user who enters an incorrect password
When they submit the login form
Then they see "Incorrect email or password" and the form is cleared
And after 5 failed attempts their account is locked for 15 minutes
20 real user story examples
Authentication
- As a returning customer, I want to reset my password via email so that I can regain access without contacting support.
- As an enterprise user, I want to log in with my company's SSO so that I don't manage a separate password for every tool.
Data and reporting
- As a regional manager, I want to export sales reports as CSV so that I can analyse the data in Excel alongside other datasets.
- As a product owner, I want to see a weekly email digest of KPIs so that I stay informed without logging in daily.
- As an operations analyst, I want to filter transactions by date range, status, and amount so that I can investigate specific patterns without downloading everything.
Notifications
- As a customer, I want to receive a confirmation email within 5 minutes of placing an order so that I have a record of my purchase.
- As a field technician, I want a push notification when a new job is assigned to me so that I can plan my route without checking the app manually.
Administration
- As a system administrator, I want to deactivate a user account without deleting it so that I preserve the audit trail while revoking access.
- As a compliance officer, I want to export all user activity logs for a date range so that I can respond to audit requests within our 48-hour SLA.
Onboarding
- As a new employee, I want a guided setup checklist on first login so that I know exactly what to configure before I start working.
- As a business owner signing up for a trial, I want to import my existing contacts from a CSV so that I can see the tool working with real data immediately.
Payments
- As a customer, I want to save multiple payment methods so that I can switch between personal and business cards without re-entering details each time.
- As a subscription customer, I want to download invoices for the last 12 months so that I can process them through my company expense system.
Search and discovery
- As a customer browsing products, I want to filter by price range, rating, and availability so that I only see products I can actually buy.
- As a support agent, I want to search customer accounts by email, phone, or account number so that I can find the right record within 10 seconds of a customer contacting us.
Performance and reliability
- As a sales manager, I want the dashboard to load in under 3 seconds even during month-end when all 50 team members are using it simultaneously so that we don't lose reporting time on our busiest days.
Mobile
- As a field inspector, I want to complete inspection forms offline on my tablet so that I can work in locations without mobile signal and sync when I return to the office.
- As a delivery driver, I want to capture a photo of the delivered package using my phone camera so that I have proof of delivery without carrying a separate device.
Accessibility
- As a visually impaired user, I want all form fields to have descriptive labels readable by a screen reader so that I can complete the application without assistance.
- As a user with motor impairment, I want to navigate the entire checkout process using only a keyboard so that I don't need a mouse to complete a purchase.
⚡ User story templates in SmartPrompt
SmartPrompt includes Standard User Story, Epic Story, Gherkin AC, Definition of Done, and 6 more agile templates — all with expert guidance built in.
Open User Story Templates →When user stories are not enough
User stories work well for features with a clear actor and a clear benefit. They are less effective for complex system behaviour, non-functional requirements, regulatory requirements, and data rules. For these, use use cases, NFR documents, or data requirements — and reference them from within the user story.