Acceptance Criteria: 18 Examples, Given/When/Then and Jira

On this page
  1. Where acceptance criteria come from
  2. Rules or scenarios: the two formats
  3. 18 examples to copy
  4. Acceptance criteria, Definition of Done, Definition of Ready
  5. Keeping acceptance criteria in Jira
  6. Common mistakes
  7. Sources

The story says “Agents can refund a payment”. It passes review, goes to Done, and on Friday an agent refunds €4,000 to the wrong card because nothing stopped a refund larger than the original payment. Nobody broke a rule: there was no rule. The story had a title and a sentence, and every person who read it filled the gaps differently.

Acceptance criteria are the gaps, filled in before the work starts. Below are 18 criteria and 7 scenarios to copy, for six kinds of work, in the two formats teams use, plus the difference from the Definition of Done that causes most confusion, and a Jira setup that makes them stick.

Short answer: acceptance criteria are the testable conditions one story must meet. Write them as a rule list (“A refund cannot exceed the payment”) or as Given/When/Then scenarios (“Given a €40 payment, When the agent refunds €50, Then the refund is refused”). They are not the Definition of Done, which applies to every story. In Jira, keep them where something checks them before Done.

Where acceptance criteria come from

The phrase is not in the Scrum Guide: the 2020 edition talks about items becoming “ready for selection” after refinement and defines the Definition of Done, nothing more. The modern shape comes from Dan North’s “Introducing BDD”, first published in Better Software magazine in March 2006. His team “started describing the acceptance criteria in terms of scenarios, which took the following form: Given some initial context (the givens), When an event occurs, Then ensure some outcomes.” His story template that followed reads:

Title (one line describing the story)
Narrative:
  As a [role]
  I want [feature]
  So that [benefit]
Acceptance Criteria: (presented as Scenarios)
  Scenario 1: Title
    Given [context]
      And [some more context]...
    When [event]
    Then [outcome]
      And [another outcome]...

Cucumber’s Gherkin reference turned the three words into a test language: Given steps describe “the initial context of the system”, When steps “an event, or an action”, and Then steps “an expected outcome, or result”, which “should be on an observable output”. That last rule is the useful one even if you never automate a test: an outcome nobody can see cannot be accepted.

Bill Wake’s INVEST checklist for user stories (2003) ends in T for Testable: a story card carries “an implicit promise: ‘I understand what I want well enough that I could write a test for it.’” Acceptance criteria are where that promise gets written down.

Rules or scenarios: the two formats

FormatLooks likeBest for
Rule list“A refund cannot exceed the payment.”Simple stories, constraints, non-functional needs
Given/When/ThenGiven…, When…, Then… per scenarioBehaviour with conditions and edge cases

Most teams mix them: rules for limits and wording, scenarios where the result depends on a situation. Either way, three tests keep a criterion honest:

  • Observable. Someone outside the team can see whether it holds (“shows an error”, not “handles the error”).
  • One condition. One rule or one scenario per line, so it can be ticked on its own.
  • No solution design. Say what, not how: “search returns results in under 2 seconds”, not “add an index on the table”.

18 examples to copy

1. A feature: refunds by support agents

Rules:

  • A refund cannot exceed the amount paid, minus earlier refunds.
  • A refund over €500 needs a second agent to approve it.
  • The customer gets an email when the refund is issued.

Scenarios:

Scenario: Refund larger than the payment is refused
  Given a payment of €40 with no earlier refunds
  When the agent refunds €50
  Then the refund is refused
  And the agent sees "You can refund at most €40.00"

Scenario: Large refund waits for approval
  Given a payment of €900
  When the agent refunds €600
  Then the refund status is "Waiting for approval"
  And no money moves until a second agent approves it

2. A bug fix

Rules:

  • The steps in the bug report no longer reproduce the problem.
  • An automated test covers the case and fails on the old code.
  • The fix does not change the behaviour of the screens around it.

Scenario:

Scenario: Discount code applies on mobile Safari
  Given a cart of €80 on iPhone Safari
  And the code SAVE10
  When the customer applies the code
  Then the total shows €72.00

3. An API endpoint

Rules:

  • POST /refunds returns 201 with the refund id when it succeeds.
  • A request without authentication returns 401 and creates nothing.
  • Sending the same idempotency key twice creates one refund, not two.

Scenario:

Scenario: Duplicate request does not refund twice
  Given a refund request with idempotency key "r-1042"
  When the same request is sent a second time
  Then the response is the first refund
  And only one refund exists for the payment

4. A user interface change

Rules:

  • The form can be completed with the keyboard alone.
  • Every field shows its error next to it, in text, not only in colour.
  • The page works at 390 px wide without scrolling sideways.

Scenario:

Scenario: Missing card number
  Given the payment form is open
  When the customer submits it without a card number
  Then "Enter your card number" appears under the field
  And focus moves to the card number field

5. Security and data

Rules:

  • Card numbers never appear in logs, emails or Jira tickets; only the last four digits.
  • Only agents in the Payments group can open the refund screen.
  • Every refund is recorded with who did it and when.

Scenario:

Scenario: Agent outside the Payments group
  Given an agent who is not in the Payments group
  When they open the refund screen
  Then they see "You do not have access to refunds"
  And the attempt is recorded

6. A performance or data migration task

Rules:

  • The payment search returns the first page in under 2 seconds for 1 million payments.
  • After the migration, the count and the total amount match the old table exactly.
  • The migration can run again without creating duplicates.

Scenario:

Scenario: Migration totals match
  Given 1,204,331 payments in the old table totalling €18,442,019.55
  When the migration finishes
  Then the new table holds 1,204,331 payments
  And their total is €18,442,019.55

Acceptance criteria, Definition of Done, Definition of Ready

Chart titled Three lists, three questions, comparing Definition of Ready, acceptance criteria and Definition of Done. Answers: can we start it; does it do what this story promised; is it built to our quality bar. Scope: every item as a team rule; one item, unique to it; every item as a team rule. Written by: the team; the product owner with testers and developers; the team or the organisation. Checked: before sprint planning; when the work is tested; before it counts as done. Example: estimated with no blockers and criteria written; a refund over 500 euros asks a second agent to approve; reviewed, tested, docs updated, deployed to staging. Origin: the Definition of Done is in the 2020 Scrum Guide, acceptance criteria as Given/When/Then scenarios come from Dan North in 2006, and the Scrum Guide has no Definition of Ready.

The two are easy to mix up because both are checklists. The test: if the line would be true for every story (“code reviewed”, “tests pass”), it belongs in the Definition of Done. If it only makes sense for this story (“a refund over €500 needs approval”), it is an acceptance criterion. The Scrum Guide is strict about the first: “If a Product Backlog item does not meet the Definition of Done, it cannot be released or even presented at the Sprint Review.”

A Definition of Ready is a third, optional list: what a story needs before the team takes it (estimated, criteria written, no blocking dependency). The Scrum Guide does not define one; many teams use it as their own rule for “ready for selection”.

Keeping acceptance criteria in Jira

Jira has no acceptance criteria field. Four places teams use:

WhereGoodThe catch
The descriptionZero setup; Given/When/Then reads wellNothing checks it; ticks are not searchable
Native action items ([])Checkboxes in the descriptionOur test item went to Done with 2 of 3 unticked
A custom text fieldSame place on every storyStill text; no ticking, no gate
A checklist app with a validatorEach criterion ticked; Done blockedAn app to install

We tested the last two rows on our own Jira Cloud site for our Jira checklist guide on 5 November 2026. A work item with native action items moved to Done with two of three open. With Team Checklist and its validator on the Done transition, the same move was refused, even through the REST API, with “Finish the team checklist first: every item must be done (the Team Checklist panel shows what is left).” Team Checklist ships an Acceptance criteria template next to Definition of Done, so a project can add both to every new story; open items are searchable with JQL (teamChecklistOpen > 0).

If the criteria are scenarios, keep them in the description where they read as a story, and put one checklist line per scenario (“Scenario: Duplicate request does not refund twice”) so each can be ticked when its test passes.

Common mistakes

  • Criteria written after the work. They then describe what was built, not what was needed. Write them in refinement, before the story is “ready for selection”.
  • The Definition of Done copied into every story. Twenty identical lines hide the three that matter. Keep the shared list once.
  • Untestable words. “Fast”, “user-friendly”, “secure”: replace each with a number or an observable result.
  • A story with fifteen criteria. It is several stories. INVEST’s S is for Small.
  • Edge cases left for the tester to find. Ask in refinement: what if it is zero, empty, twice, too large, or not allowed?

Ordering the stories once their criteria are clear is a different problem; our RICE & WSJF calculator and the cost of delay calculator help there, and our epic vs story vs task guide covers where a story sits in Jira.

Sources

Frequently asked questions

What are acceptance criteria?

The conditions one piece of work must meet to be accepted: what it does, written so that anyone can check it. Dan North, who introduced the Given/When/Then form in 2006, put it as the answer to “how do we know when we have delivered this story?”.

What is the difference between acceptance criteria and the Definition of Done?

Acceptance criteria belong to one story and say what it must do. The Definition of Done applies to every story and says how it must be built: reviewed, tested, documented, deployed. The 2020 Scrum Guide calls the Definition of Done “a formal description of the state of the Increment when it meets the quality measures required for the product”. A story is finished when it meets both.

What is the Given/When/Then format?

A scenario in three parts: Given a starting situation, When something happens, Then a result you can observe. Cucumber’s Gherkin reference describes Given as “the initial context of the system”, When as “an event, or an action” and Then as “an expected outcome, or result”. Extra conditions join with And.

How many acceptance criteria should a story have?

Enough to cover the behaviour and its edge cases, usually three to eight. More than about ten often means the story is too big and should be split; Bill Wake’s INVEST asks for stories that are Small and Testable.

Who writes acceptance criteria?

The product owner owns them, but they work best written together with a tester and a developer before the sprint, so that each criterion is testable and nobody discovers a hidden case on the last day.

Where do I put acceptance criteria in Jira?

In the description, in a checklist, or in a custom text field. The description is the simplest but nothing checks it. A checklist app with a workflow validator can stop a story moving to Done until every criterion is ticked; on our site Team Checklist refused the move with “Finish the team checklist first”.

Keep reading