How to Write a User Story [20 Examples + Templates]

User stories are the backbone of effective Agile project management.

They capture requirements from the user’s perspective, ensuring that every feature delivers real value. But how do you write a user story that hits the mark? This guide will walk you through everything you need to know—from basic concepts to advanced techniques.

By the end of this guide, you’ll be able to craft user stories that are clear, actionable, and impactful.

What Is a User Story?

(This post may have afilliate links. Please see my full disclosure)
Team brainstorming user stories in a modern office setting -- How to Write a User Story
I made this image with AI — How to Write a User Story

A user story is a simple, concise description of a feature or functionality from the perspective of the end user.

It outlines who the user is, what they want to achieve, and why they want to achieve it.

User stories typically follow this format: As a [type of user], I want [goal] so that [reason].

This formula keeps the focus on the user and their needs, rather than on technical specifications.

Example: “As a frequent traveler, I want to receive flight status updates so that I can plan my airport arrival accordingly.”

Why Are User Stories Important?

User stories drive development by ensuring that features deliver real value to the user.

They also help teams stay aligned on the project’s goals, provide clarity on priorities, and facilitate communication between developers, designers, and stakeholders.

Benefits of User Stories:

  • User-Centric: Keeps the focus on the user’s needs.
  • Collaboration: Encourages teamwork and communication.
  • Flexibility: Easily adjustable as priorities change.
  • Clarity: Offers clear guidance on what needs to be built.

Key Components of a User Story

A well-written user story includes several essential components. Understanding these will help you create user stories that are both comprehensive and actionable.

  1. User Role: Identify who the user is. This could be a specific type of user, like an “admin” or “customer,” or a more general role, like “end user.”
  2. Goal: Specify what the user wants to achieve. This should be a single, clear objective.
  3. Reason: Explain why the user wants to achieve this goal. This provides context and justification for the feature.
  4. Acceptance Criteria: Acceptance Criteria: Set the expectations that have to be met for the user story to be closed.These are often written as a checklist of specific requirements.

Example of Acceptance Criteria:

For the user story: “As a customer, I want to receive an email confirmation so that I know my order has been processed.”

Acceptance criteria might include:

  • The email should be sent within 1 minute of order completion.
  • The email should include the order number and a summary of items purchased.
  • The email should have a link to track the order status.

Writing User Stories: A Step-by-Step Guide

Now, let’s break down how to write a user story from start to finish.

This section will walk you through each step, providing examples and templates along the way.

Step 1: Identify the User

The first step is to identify who the user is. This could be based on personas you’ve developed, or you might refer to the user more generally.

Example:

  • “As an admin…”
  • “As a new user…”

Tip: Be as specific as possible. The more you understand about your user, the more precise your story will be.

Step 2: Define the Goal

Next, specify what the user wants to achieve. This should be a single, clear action that the user wants to perform.

Example:

  • “I want to reset my password…”
  • “I want to filter search results by date…”

Tip: Focus on what the user wants to do, not how they will do it. The “how” is for the development team to figure out.

Step 3: Explain the Reason

Finally, explain why the user wants to achieve this goal. This adds context and helps prioritize the user story.

Example:

  • “…so that I can regain access to my account.”
  • “…so that I can find the most recent articles quickly.”

Tip: The reason should reflect the user’s needs, not the business’s. Keep it user-focused.

Step 4: Add Acceptance Criteria

Once you’ve written the basic user story, add acceptance criteria. This defines what “done” looks like for this story.

Example:

For the story: “As an admin, I want to reset a user’s password so that I can assist users who are locked out.”

Acceptance Criteria:

  • The system should send a password reset email within 1 minute of request.
  • The reset link should be valid for 24 hours.
  • The user should receive a confirmation email after successfully resetting their password.

Tip: Acceptance criteria should be measurable. Avoid vague statements like “should be user-friendly.”

Step 5: Prioritize the Story

Not all user stories are created equal. Some will be more critical to the user experience than others. Prioritize your stories based on their importance and urgency.

Example:

  • High Priority: “As a customer, I want to receive an order confirmation email so that I know my order has been processed.”
  • Low Priority: “As a customer, I want to receive a thank you email after completing a purchase.”

Tip: Use a ranking system or categories (e.g., Must-Have, Should-Have, Nice-to-Have) to prioritize stories.

Common Mistakes to Avoid

Even seasoned professionals can make mistakes when writing user stories. Here are some common pitfalls and how to avoid them.

1. Vagueness

Example of a Vague User Story:
“As a user, I want a better dashboard.”

Why It’s a Problem:
This story is too vague. What does “better” mean? More features? Faster load time?

How to Fix It:
Be specific. What does the user actually want to improve?

Revised Example:
“As a frequent user, I want the dashboard to load within 2 seconds so that I can quickly access my reports.”

2. Too Large

Example of a Large User Story:
“As an admin, I want to manage users, roles, and permissions.”

Why It’s a Problem:
This is more of an epic than a user story. It encompasses too many actions.

How to Fix It:
Break it down into smaller, more manageable stories.

Revised Example:

  • “As an admin, I want to add new users so that I can grant access to new employees.”
  • “As an admin, I want to assign roles to users so that they have the appropriate permissions.”

3. Focusing on Solutions

Example of a Solution-Oriented Story:
“As a user, I want a drop-down menu to select my country.”

Why It’s a Problem:
This story specifies the solution (a drop-down menu) rather than the user’s need.

How to Fix It:
Focus on the problem, not the solution.

Revised Example:
“As a user, I want to easily select my country during sign-up so that I can complete my profile.”

Advanced Techniques for Writing User Stories

Once you’ve mastered the basics, you can start experimenting with more advanced techniques to make your user stories even more effective.

1. INVEST Criteria

Good user stories should be:

  • Independent: They should stand alone and not depend on other stories.
  • Negotiable: They should be flexible and open to discussion.
  • Valuable: They should deliver value to the user.
  • Estimable: They should be easy to estimate in terms of time and effort.
  • Small: They should be small enough to complete within a single sprint.
  • Testable: They should have clear acceptance criteria.

Example: For the story: “As a customer, I want to track my order status so that I know when it will arrive.”

Analysis Using INVEST:

  • Independent: This story can be implemented without affecting other stories.
  • Negotiable: The team can discuss whether to implement this as a real-time tracking system or a simple status update.
  • Valuable: The ability to track an order is valuable to customers.
  • Estimable: The effort required can be estimated based on similar features.
  • Small: The story is focused on a single feature.
  • Testable: Clear acceptance criteria can be set for this story.

2. User Story Mapping

User story mapping is a technique for visualizing the entire user journey, from start to finish. It helps teams understand the big picture and ensures that all necessary features are covered.

How to Create a User Story Map:

  1. Identify the Backbone: Start with the major steps in the user journey.
  2. Add Stories: Under each step, add the relevant user stories.
  3. Prioritize: Arrange the stories from most to least important.
  4. Review and Adjust: Make sure the map reflects the user’s journey accurately.

Example: If you’re creating a story map for an e-commerce site:

  • Backbone Steps:
    • Browse Products
    • View Product Details
    • Add to Cart
    • Checkout
    • Receive Confirmation
  • User Stories for ‘View Product Details’:
    • “As a user, I want to see high-resolution images so that I can closely examine the product.
    • “As a user, I want to read customer reviews so that I can make an informed decision.
    • “As a user, I want to see the price and availability so that I know if I can purchase it.

By organizing stories in this way, you can ensure that every aspect of the user experience is accounted for and prioritized appropriately.

3. The Three Cs: Card, Conversation, Confirmation

This method helps structure the process of creating and refining user stories.

  • Card: The user story is initially written on a card (physical or digital), capturing the essence of the requirement. Example: “As a returning customer, I want to see my past orders so that I can quickly reorder items.
  • Conversation: The details of the user story are fleshed out through conversations between team members, including developers, testers, and product owners. This step ensures that everyone understands the context and requirements. Example: During a team discussion, you might explore how the past orders will be displayed, what filters or sorting options should be available, etc.
  • Confirmation: Acceptance criteria are defined to confirm that the story is complete when those criteria are met. Example:
    • Users should be able to view their past orders within 1 year.
    • Orders should be sortable by date and amount.
    • A reorder button should be available next to each past order.

Here is a video about how to write user stories:

YouTube Video by TechCanvass — How to Write a User Story With Acceptance Criteria

Templates for Writing User Stories

Using templates can streamline the process and ensure consistency across your user stories.

Below are some templates tailored for different scenarios.

Basic User Story Template

Template: “As a [type of user], I want [goal] so that [reason].”

Example: “As a new user, I want to sign up using my Google account so that I can avoid filling out the registration form.

Detailed User Story Template

Template: “As a [type of user], I want [goal] so that [reason].
Acceptance Criteria:

  • [Criterion 1]
  • [Criterion 2]
  • [Criterion 3]”

Example: “As a premium user, I want to download reports in PDF format so that I can easily share them with my team.
Acceptance Criteria:

  • Reports should be downloadable within 5 seconds.
  • The PDF should include the company logo and date of generation.
  • The report layout should be consistent with on-screen formatting.”

Epic User Story Template

Template: “As a [type of user], I want [high-level goal] so that [reason].
Sub-stories:

  • As a [user], I want [sub-goal 1].
  • As a [user], I want [sub-goal 2].
  • As a [user], I want [sub-goal 3].”

Example: “As an admin, I want to manage user accounts so that I can control access to the system.
Sub-stories:

  • As an admin, I want to create new user accounts so that new employees can access the system.
  • As an admin, I want to assign roles to users so that they have appropriate permissions.
  • As an admin, I want to deactivate user accounts so that former employees can no longer access the system.

Example User Stories for Different Scenarios

Below are examples of user stories tailored for different contexts, demonstrating how to apply the principles and templates discussed above.

E-commerce Platform

Story: “As a shopper, I want to filter products by price so that I can find items within my budget.

Acceptance Criteria:

  • Price filter should allow users to set a minimum and maximum range.
  • Products should refresh automatically when the filter is applied.
  • The filter should work on both desktop and mobile devices.

SaaS Application

Story: “As a project manager, I want to export task lists to Excel so that I can analyze data offline.

Acceptance Criteria:

  • The export feature should be accessible from the task list view.
  • The Excel file should include all task details, including due dates and assignees.
  • The export should complete within 5 seconds.

Educational Platform

Story: “As a student, I want to track my course progress so that I know what lessons I need to complete.

Acceptance Criteria:

  • Progress should be displayed as a percentage.
  • Completed lessons should be marked as such.
  • A summary of progress should be available on the course dashboard.

Healthcare System

Story: “As a patient, I want to schedule appointments online so that I can choose a convenient time without calling the office.

Acceptance Criteria:

  • The scheduling system should display available time slots in real-time.
  • Patients should receive a confirmation email after scheduling.
  • The system should prevent double-booking of appointments.

Mobile Banking App

Story: “As a bank customer, I want to receive push notifications for account activity so that I can monitor transactions in real-time.

Acceptance Criteria:

  • Notifications should be sent instantly after a transaction occurs.
  • The notification should include the transaction amount and location.
  • Users should be able to customize notification settings.

Fitness Tracking App

Story: “As a fitness enthusiast, I want to set daily step goals so that I can track my progress towards better health.

Acceptance Criteria:

  • Users should be able to set a custom step goal.
  • Progress should be displayed on the app’s main screen.
  • An alert should notify users when the goal is reached.

Customer Support System

Story: “As a support agent, I want to prioritize tickets by urgency so that I can address the most critical issues first.

Acceptance Criteria:

  • Tickets should be sortable by urgency level.
  • Urgent tickets should be highlighted in red.
  • Agents should receive a notification when a new urgent ticket is submitted.

Content Management System (CMS)

Story: “As a content editor, I want to schedule blog posts in advance so that they publish automatically at the desired time.

Acceptance Criteria:

  • The scheduling option should be available in the post editor.
  • The system should confirm the scheduled date and time before saving.
  • Posts should publish automatically without manual intervention.

E-learning Platform

Story: “As an instructor, I want to track student progress in real-time so that I can provide timely feedback.

Acceptance Criteria:

  • Instructors should be able to see a live dashboard of student activity.
  • The dashboard should display completed lessons, quiz scores, and time spent.
  • Instructors should receive alerts for students who fall behind.

Social Media App

Story: “As a social media user, I want to mute notifications from specific groups so that I can reduce distractions from irrelevant updates.

Acceptance Criteria:

  • Users should be able to mute notifications for any group.
  • Muted groups should not send push notifications or email alerts.
  • Users should see a list of all muted groups in their settings.

Online Marketplace

Story: “As a vendor, I want to see sales analytics on my dashboard so that I can track my business performance.

Acceptance Criteria:

  • The dashboard should display total sales, top-selling products, and daily revenue.
  • Data should be available for custom date ranges.
  • Vendors should be able to export sales reports in CSV format.

Final Thoughts: How to Write a User Story

Remember, the goal is not just to document requirements but to inspire development that delivers real value to users. So, get your team together, start writing, and refine your process as you go.

Read This Next