USER STORIES & ACCEPTANCE CRITERIA

Project: FinTech Fraud Detection & Risk Analytics

Each user story follows the standard format: As a [role], I want [capability], so that [business value]. Acceptance criteria define the conditions that must be met for the story to be considered done.

 

EPIC 1: Fraud Exposure Quantification

US-01: Fraud KPI Overview

Field

Detail

User Story

As a Risk Analyst, I want to see a single-view KPI summary of total transactions, fraud count, fraud rate %, and total exposure, so that I can communicate fraud impact to leadership in one slide.

Priority

High

Story Points

3

Sprint

Sprint 1

 

Acceptance Criteria:

-         Given the full transaction dataset is loaded, when the KPI query runs, then it returns: total_transactions, fraud_count, fraud_rate_pct, total_fraud_amount, total_transaction_volume in a single row

-         Fraud rate % is calculated as fraud_count / total_transactions * 100, rounded to 2 decimal places

-         Output renders in under 5 seconds on a 5K row dataset

-         Results match Excel Executive Summary tab values within 0.1%

 

US-02: Merchant Category Risk Ranking

Field

Detail

User Story

As a Fraud Analyst, I want to rank merchant categories by fraud rate and exposure so that I can prioritize which categories need immediate controls.

Priority

High

Story Points

3

Sprint

Sprint 1

 

Acceptance Criteria:

-         Query returns all distinct merchant_category values with: total_txns, fraud_txns, fraud_rate_pct, avg_txn_amount, fraud_exposure

-         Results are ordered by fraud_rate_pct descending

-         Each category is assigned a risk tier: HIGH (>40%), MEDIUM (>20%), LOW (<=20%)

-         Excel tab "Fraud by Category" shows a color-coded bar chart matching SQL output

 

US-03: Time-of-Day Fraud Pattern

Field

Detail

User Story

As a Risk Analyst, I want to identify which hours of the day have the highest fraud rate so that I can define time-based transaction velocity rules.

Priority

High

Story Points

2

Sprint

Sprint 1

 

Acceptance Criteria:

-         Query returns top 10 hours ranked by fraud_rate_pct with total_txns, fraud_txns, avg_amount

-         hour_of_day values are integers 0-23 (24-hour format)

-         Power BI Page 3 includes a column chart of fraud rate by hour with hour_of_day on X-axis

-         Hours with fraud rate > 30% are visually highlighted in the dashboard

 

EPIC 2: Risk Scoring

US-04: Merchant Risk Scorecard View

Field

Detail

User Story

As a Product Manager, I want a reusable merchant risk scorecard database view so that Engineering can query it directly when building the fraud rule engine.

Priority

High

Story Points

5

Sprint

Sprint 2

 

Acceptance Criteria:

-         CREATE VIEW v_merchant_risk_scorecard executes without errors in SQLite and PostgreSQL

-         View returns: merchant_name, merchant_category, total_transactions, fraud_count, fraud_rate_pct, total_fraud_exposure, risk_tier

-         risk_tier logic: HIGH if fraud_rate_pct > 40%, MEDIUM if > 20%, LOW otherwise, no NULLs

-         View is queryable with additional WHERE/ORDER BY filters by downstream consumers

-         View definition is documented in fraud_analysis.sql with inline comments

 

US-05: High-Risk Customer Queue

Field

Detail

User Story

As a Compliance Officer, I want a list of the top 10 customers by fraud exposure so that I can initiate Customer Due Diligence reviews in line with AML obligations.

Priority

Medium

Story Points

2

Sprint

Sprint 2

 

Acceptance Criteria:

-         Query returns exactly top 10 customers with: customer_id, total_txns, fraud_txns, fraud_exposure, avg_txn_amount

-         Only customers with at least 1 fraud transaction are included (HAVING SUM(is_fraud) > 0)

-         Ordered by fraud_exposure descending

-         Output can be exported to CSV for CDD team intake queue

 

EPIC 3: Reporting & Dashboard

US-06: Monthly Fraud Trend Report

Field

Detail

User Story

As a Finance Director, I want to see monthly fraud rate and loss trends across the full year so that I can track the impact of any controls implemented during the period.

Priority

Medium

Story Points

3

Sprint

Sprint 2

 

Acceptance Criteria:

-         Query returns all 12 months of 2024 with: month, total_txns, fraud_txns, fraud_rate_pct, monthly_fraud_loss

-         No months missing from output (validated against full year date range)

-         Excel "Monthly Trend" tab includes a column chart with month on X-axis and fraud rate on Y-axis

-         Power BI line chart on Page 1 reflects same monthly trend with date slicer

 

US-07: Interactive Power BI Dashboard

Field

Detail

User Story

As a Risk Team Lead, I want an interactive dashboard where I can filter by merchant category, state, and date range so that I can investigate specific fraud patterns without writing SQL.

Priority

High

Story Points

8

Sprint

Sprint 3

 

Acceptance Criteria:

-         Dashboard has 3 pages: Executive Overview, Merchant Risk Scorecard, Time & Amount Analysis

-         All slicers (Status, State, Category, Date) cross-filter all visuals on the same page

-         KPI cards update dynamically when slicers are applied

-         Dashboard is accessible from Power BI Service via shareable URL

-         Mobile layout is configured for at least Page 1 (Executive Overview)

 

DEFINITION OF DONE

-         SQL query executes without errors and output matches acceptance criteria

-         Excel tab renders with correct data, chart, and formatting

-         Power BI visual cross-filters correctly when slicers are applied

-         All acceptance criteria checked off by BA (self-review)

-         Deliverable committed to GitHub repository in correct folder

-         RTM updated to reflect completion status