Sample User Stories with Full Acceptance Criteria
Complete sample user stories organized by feature: authentication, search, notifications, and settings. Each includes the standard format, multiple acceptance criteria, story point estimates, and MoSCoW priority levels.
How to use these sample stories
These sample user stories are organized by common product features that most software teams build at some point: authentication, search, notifications, and settings. Each story includes a unique ID, the standard format, priority level, story point estimate, and multiple acceptance criteria.
Use these as starting points. Replace the personas with your actual user segments, adjust the acceptance criteria to match your product\'s specific behavior, and recalibrate the point estimates against your team\'s velocity. The structure and quality level are what you should replicate, not the specific content.
Sample stories by feature
Authentication
Sign up with email
3 pts | MustAs a new visitor, I want to create an account using my email address, so that I can access the platform without needing a Google or GitHub account.
Acceptance Criteria
- 1. Given I am on the signup page, when I enter a valid email and password and click "Create Account," then my account is created and I am redirected to onboarding.
- 2. Given I enter an email that is already registered, when I click "Create Account," then I see an error message saying "This email is already registered" with a link to sign in.
- 3. Given I enter a password with fewer than 8 characters, when I click "Create Account," then I see a validation error before the form submits.
Sign in with Google OAuth
2 pts | MustAs a returning user, I want to sign in with my Google account, so that I do not have to remember a separate password.
Acceptance Criteria
- 1. Given I am on the login page, when I click "Sign in with Google," then I am redirected to Google's OAuth consent screen.
- 2. Given I approve the Google OAuth consent, when I am redirected back, then I am signed in and see my dashboard.
- 3. Given my Google account email matches an existing account, when I sign in with Google, then my accounts are linked and I can use either method.
Reset password
2 pts | MustAs a user who forgot my password, I want to reset it via email, so that I can regain access to my account.
Acceptance Criteria
- 1. Given I am on the login page, when I click "Forgot password" and enter my email, then I receive a password reset email within 2 minutes.
- 2. Given I click the reset link in the email, when I enter a new password that meets the requirements, then my password is updated and I am signed in.
- 3. Given the reset link is older than 24 hours, when I click it, then I see a message saying the link has expired with an option to request a new one.
Search
Full-text search
5 pts | MustAs a team member, I want to search across all documents by content, so that I can find relevant information without remembering the exact document title.
Acceptance Criteria
- 1. Given I type a search query in the search bar, when I press Enter, then results appear within 2 seconds showing documents that contain the query in their content.
- 2. Given results are displayed, when I click on a result, then I am taken to the document with the matched term highlighted in context.
- 3. Given my query matches no documents, when results load, then I see an empty state suggesting I try different keywords.
Search filters
3 pts | ShouldAs a power user, I want to filter search results by document type and date range, so that I can narrow down results when searching a large workspace.
Acceptance Criteria
- 1. Given I have search results showing, when I select "PRDs only" from the type filter, then only PRD documents appear in the results.
- 2. Given I select a date range of "Last 30 days," when results refresh, then only documents created or modified within that range are shown.
- 3. Given I have multiple filters applied, when I click "Clear all filters," then all filters reset and the full result set is displayed.
Recent searches
2 pts | CouldAs a frequent searcher, I want to see my recent search queries when I click the search bar, so that I can quickly repeat common searches.
Acceptance Criteria
- 1. Given I have performed searches in the past, when I click the search bar, then my 5 most recent queries appear as suggestions.
- 2. Given I see recent search suggestions, when I click one, then the search executes immediately with that query.
Notifications
In-app notifications
3 pts | MustAs a team member, I want to receive in-app notifications when someone mentions me or assigns me a task, so that I do not miss important updates.
Acceptance Criteria
- 1. Given someone mentions me in a comment, when the comment is saved, then I see a notification badge on the bell icon within 5 seconds.
- 2. Given I click the notification bell, when the dropdown opens, then I see a list of unread notifications sorted by most recent.
- 3. Given I click a notification, when it opens, then I am taken to the relevant item and the notification is marked as read.
Email notification preferences
2 pts | ShouldAs a user, I want to choose which events trigger email notifications, so that I only receive emails for things I care about.
Acceptance Criteria
- 1. Given I am on the notification settings page, when I toggle off "Email for task assignments," then I no longer receive emails when tasks are assigned to me.
- 2. Given I have all email notifications disabled, when someone mentions me, then I still receive in-app notifications (email is off, in-app is always on).
Digest email
3 pts | CouldAs a manager, I want to receive a daily digest email summarizing activity across my projects, so that I can stay informed without checking the app constantly.
Acceptance Criteria
- 1. Given I have daily digest enabled, when it is 9:00 AM in my timezone, then I receive an email summarizing new comments, completed tasks, and status changes from the past 24 hours.
- 2. Given there was no activity in the past 24 hours, when the digest would normally send, then no email is sent.
Settings and Preferences
Update profile information
1 pts | MustAs a user, I want to update my display name and profile photo, so that my teammates can identify me in comments and assignments.
Acceptance Criteria
- 1. Given I am on the profile settings page, when I change my display name and click "Save," then the new name appears across all my comments and assignments.
- 2. Given I upload a new profile photo, when it is saved, then the photo appears in the navigation bar and in all my comments within 10 seconds.
Change timezone
2 pts | ShouldAs a remote team member, I want to set my timezone in settings, so that all dates and times in the app are displayed in my local time.
Acceptance Criteria
- 1. Given I am on settings, when I change my timezone from UTC to PST, then all timestamps across the app update to reflect PST.
- 2. Given a teammate in a different timezone views the same event, when they check the time, then it shows in their configured timezone.
Related templates
User Story Template
The standard format with INVEST checklist and splitting strategies.
View template →User Story Examples
20+ examples across SaaS, e-commerce, fintech, and mobile categories.
View template →Acceptance Criteria Template
The Given-When-Then format with examples and quality checklist.
View template →Frequently asked questions
Generate user stories from your product data
Connect your tools and Vantage generates stories with traced acceptance criteria. Free to start.
Free to start. No credit card required.