Skip to main content

Product Requirements Document - Users & Features

4. User Personas & Use Cases​

4.1 Primary Personas​

Persona 1: "Novice Nina" - The Beginner Investor​

Demographics

  • Age: 28
  • Occupation: Office worker
  • Income: β‚©40M/year
  • Investment Experience: < 1 year
  • Investment Amount: β‚©10M

Goals

  • Learn how to analyze stocks properly
  • Find stable, dividend-paying stocks
  • Avoid risky investments
  • Build long-term portfolio

Pain Points

  • Overwhelmed by financial jargon
  • Doesn't know which metrics matter
  • Scared of making mistakes
  • Needs guidance and education

Key Features Needed

  • Pre-built screening templates ("Stable Dividend Stocks")
  • Metric explanations and tooltips
  • Visual indicators (grades, scores)
  • Conservative filtering options

Success Scenario

Nina opens the platform, clicks "Dividend Stocks" template, sees 50 results sorted by dividend yield with A-grade financial stability. She clicks Samsung Electronics, sees clear financial charts with explanations, and feels confident adding it to her watchlist.


Persona 2: "Tactical Tom" - The Active Trader​

Demographics

  • Age: 38
  • Occupation: Self-employed / Day trader
  • Income: β‚©80M/year
  • Investment Experience: 5+ years
  • Investment Amount: β‚©100M

Goals

  • Find short-term trading opportunities
  • Identify momentum stocks early
  • Track sector rotations
  • Maximize returns through active trading

Pain Points

  • Too slow to scan all stocks manually
  • Misses fast-moving opportunities
  • Needs real-time data
  • Wants customizable alerts

Key Features Needed

  • Real-time HOT stocks (volume surge detection)
  • Technical indicator filtering
  • Custom screening criteria
  • Price/volume alerts

Success Scenario

Tom checks "Today's Hot Stocks" at 10 AM, sees a biotech stock with 300% volume surge and breaking resistance. He filters for "Volume > 200%, Price Change > 5%, Market Cap < 500B" to find similar opportunities. Sets alert for stocks matching criteria.


Persona 3: "Value Victor" - The Fundamental Investor​

Demographics

  • Age: 45
  • Occupation: Senior manager
  • Income: β‚©120M/year
  • Investment Experience: 10+ years
  • Investment Amount: β‚©300M

Goals

  • Find undervalued quality companies
  • Long-term wealth accumulation
  • Outperform index through stock-picking
  • Data-driven decision making

Pain Points

  • Time-consuming fundamental analysis
  • Difficult to compare across sectors
  • Needs comprehensive financial data
  • Wants backtest strategies

Key Features Needed

  • Advanced valuation filters (PER, PBR, EV/EBITDA)
  • Financial statement comparisons
  • Industry peer analysis
  • Quality metrics (ROE, profit margins)

Success Scenario

Victor creates a custom screen: "PER < 10, PBR < 1, ROE > 15%, Debt Ratio < 100%, Dividend Yield > 3%". Gets 15 results. Compares them side-by-side, exports to Excel for deeper analysis. Adds 3 stocks to his "Value Portfolio" for tracking.


4.2 User Journey Maps​

Journey 1: First-Time Stock Screening​

1. Landing Page
β†’ Sees "Find your next investment in 60 seconds"
β†’ Clicks "Start Screening"

2. Screening Interface
β†’ Presented with simple filters + templates
β†’ Selects "High Dividend Stocks" template
β†’ Adjusts dividend yield slider: > 4%

3. Results Display
β†’ 50 stocks appear instantly (< 500ms)
β†’ Sorted by dividend yield
β†’ Color-coded by financial grade

4. Stock Selection
β†’ Clicks on "KB Financial Group"
β†’ Sees detailed page with charts

5. Analysis
β†’ Reviews financial summary
β†’ Checks 5-year dividend history chart
β†’ Reads metric explanations

6. Action
β†’ Adds to "Watchlist"
β†’ (Optional) Creates account to save

Journey 2: Portfolio Tracking​

1. Login
β†’ Navigates to "My Portfolio"

2. Portfolio Creation
β†’ Clicks "New Portfolio"
β†’ Names it "Growth Portfolio"

3. Adding Holdings
β†’ Searches "Samsung Electronics"
β†’ Enters: 10 shares @ β‚©70,000

4. Performance Monitoring
β†’ Dashboard shows: +5.2% gain
β†’ Sees daily P&L chart
β†’ Compares vs KOSPI index

5. Rebalancing Decision
β†’ One stock down 15%
β†’ Uses screener to find replacement
β†’ Updates portfolio

4.3 Use Cases​

UC-001: Basic Stock Screening​

Actor: Any user (guest or registered)

Precondition: User is on the main screening page

Main Flow:

  1. User selects market (KOSPI/KOSDAQ/All)
  2. User applies filters:
    • Valuation: PER < 15
    • Growth: Revenue Growth > 10%
    • Size: Market Cap > β‚©1T
  3. System queries database
  4. System returns filtered results in < 500ms
  5. User sees list of matching stocks with key metrics

Postcondition: Results are displayed with option to refine filters

Alternative Flows:

  • 2a: User selects pre-built template instead
  • 4a: No results found β†’ System suggests relaxing filters

UC-002: Stock Detail Analysis​

Actor: Registered user

Precondition: User has selected a stock from screening results

Main Flow:

  1. System loads stock detail page
  2. System displays:
    • Price chart (1D, 1W, 1M, 3M, 6M, 1Y, 5Y views)
    • Financial summary (revenue, profit, margins)
    • Valuation metrics (PER, PBR, PSR, etc.)
    • Growth indicators
    • Financial statements (5 years)
  3. User switches between tabs (Overview, Financials, Valuation, etc.)
  4. User hovers over metrics to see explanations
  5. User clicks "Add to Watchlist"

Postcondition: Stock is saved to user's watchlist

Alternative Flows:

  • 5a: User not logged in β†’ Prompted to login/register

UC-003: Real-time Hot Stock Detection​

Actor: System (automated) + Any user

Precondition: Market is open

Main Flow:

  1. System monitors trading volume every 5 minutes
  2. System detects stocks with volume > 150% of 20-day average
  3. System calculates price momentum
  4. System ranks by combined volume + momentum score
  5. System updates "Today's Hot Stocks" section
  6. User visits homepage, sees updated hot stocks
  7. User clicks on a hot stock to investigate

Postcondition: User discovers trending opportunities

Business Rule: Only update during market hours (09:00-15:30 KST)


UC-004: Portfolio Performance Tracking​

Actor: Registered user (Premium tier)

Precondition: User has created at least one portfolio

Main Flow:

  1. User navigates to "My Portfolio"
  2. System calculates current portfolio value
  3. System computes:
    • Total gain/loss (KRW and %)
    • Daily change
    • Performance vs KOSPI index
  4. System displays:
    • Holdings table (stock, shares, avg cost, current price, P&L)
    • Performance chart over time
    • Asset allocation pie chart
  5. User clicks "Add Holding"
  6. User searches for stock and enters purchase details
  7. System updates portfolio calculations

Postcondition: Portfolio reflects new holdings


UC-005: Custom Alert Creation​

Actor: Registered user (Premium tier)

Precondition: User is viewing a stock detail page

Main Flow:

  1. User clicks "Create Alert" button
  2. System shows alert creation modal
  3. User configures alert:
    • Type: Price Alert
    • Condition: "Price rises above β‚©75,000"
    • Notification: Email + Push
  4. User saves alert
  5. System monitors stock price continuously
  6. When condition met, system triggers notification
  7. User receives email: "Alert triggered for Samsung Electronics"

Postcondition: Alert is active and monitoring

Business Rule: Free users: 3 alerts max, Premium: Unlimited


5. Feature Requirements​

5.1 Feature Prioritization Framework​

Priority Levels:

  • P0 (Must-Have): Core functionality, product unusable without it
  • P1 (High): Critical for competitive advantage
  • P2 (Medium): Enhances user experience
  • P3 (Low): Nice to have, future consideration

5.2 Functional Requirements​

FR-1: Stock Screening Engine​

Priority: P0

Description: Core filtering system enabling users to discover stocks matching custom criteria.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-1.1Support filtering by 200+ indicatorsP0All indicators from data spec available
FR-1.2Multi-dimensional filtering (AND/OR logic)P0Users can combine β‰₯10 filters simultaneously
FR-1.3Range-based filters (min/max)P0All numeric filters support min/max values
FR-1.4Real-time query executionP0Results returned in < 500ms (p99)
FR-1.5Result sorting (any column)P0Click column header to sort asc/desc
FR-1.6Result paginationP1Show 50 results per page
FR-1.7Export results to CSV/ExcelP2Download button exports current view
FR-1.8Save custom screensP1Registered users can save filter combinations
FR-1.9Pre-built templatesP1β‰₯10 templates (dividend, growth, value, etc.)
FR-1.10Market selection (KOSPI/KOSDAQ/All)P0Toggle to filter by market

User Stories:

  • As a value investor, I want to filter stocks with PER < 10 AND PBR < 1 AND ROE > 15%, so that I can find undervalued quality companies
  • As a beginner, I want to use a "High Dividend" template, so that I don't have to understand complex filters
  • As an active trader, I want to save my custom screens, so that I can reuse them daily

FR-2: Stock Detail Page​

Priority: P0

Description: Comprehensive analysis view for individual stocks.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-2.1Price chart with multiple timeframesP0Support 1D, 1W, 1M, 3M, 6M, 1Y, 5Y views
FR-2.2Real-time price updatesP1Update price every 30 seconds during market hours
FR-2.3Financial summary dashboardP0Display revenue, profit, margins, ROE
FR-2.4Valuation metrics sectionP0Show PER, PBR, PSR, PCR, EV/EBITDA, etc.
FR-2.5Financial statements (5 years)P0Income statement, balance sheet, cash flow
FR-2.6Quarterly & annual data toggleP1Switch between quarterly/annual view
FR-2.7Peer comparisonP2Compare with industry average + top 3 competitors
FR-2.8Metric explanations (tooltips)P1Hover over metric name to see explanation
FR-2.9Add to watchlist buttonP1One-click to add/remove from watchlist
FR-2.10Historical dividend dataP1Chart + table of dividend history

User Stories:

  • As an investor, I want to see 5 years of financial statements, so that I can identify trends
  • As a beginner, I want metric explanations, so that I can learn what PER means
  • As an analyst, I want to compare a stock with its peers, so that I can assess relative valuation

FR-3: Real-time Market Insights​

Priority: P1

Description: Dynamic sections highlighting market trends and opportunities.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-3.1Today's hot stocks (volume surge)P1Top 20 stocks with volume > 150% of 20D avg
FR-3.2Top gainers/losersP1Top 20 by % price change today
FR-3.3Sector performance heatmapP2Color-coded grid of 10 sectors with % change
FR-3.4Rising/falling themesP1Identify trending investment themes
FR-3.5Market overview dashboardP1KOSPI/KOSDAQ index, volume, top news
FR-3.6Update frequencyP1Refresh every 5 minutes during market hours
FR-3.7Historical comparisonP2Compare today's movers vs yesterday

User Stories:

  • As an active trader, I want to see volume surge stocks, so that I can identify momentum opportunities
  • As a thematic investor, I want to see rising themes, so that I can ride sector rotations

FR-4: Portfolio Management​

Priority: P1

Description: Track and analyze personal stock holdings.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-4.1Create multiple portfoliosP1Users can create β‰₯5 separate portfolios
FR-4.2Add/edit/delete holdingsP1Enter stock, shares, purchase price, date
FR-4.3Real-time portfolio valuationP1Calculate current value using live prices
FR-4.4Gain/loss tracking (absolute & %)P1Show unrealized P&L per holding and total
FR-4.5Performance vs benchmarkP1Compare portfolio return vs KOSPI index
FR-4.6Asset allocation visualizationP2Pie chart by stock, sector, or market cap
FR-4.7Transaction historyP2Log of all buy/sell transactions
FR-4.8Export portfolio to ExcelP2Download current holdings + performance
FR-4.9Dividend trackingP2Record received dividends, calculate yield
FR-4.10Portfolio sharing (optional)P3Generate shareable link to portfolio

User Stories:

  • As an investor, I want to track my holdings in one place, so that I can monitor performance easily
  • As a long-term investor, I want to see my performance vs KOSPI, so that I know if I'm outperforming

FR-5: User Account & Authentication​

Priority: P0

Description: Secure user registration and authentication system.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-5.1Email + password registrationP0Users can sign up with email
FR-5.2Email verificationP0Send verification link to confirm email
FR-5.3Login with email/passwordP0Authenticate users securely
FR-5.4OAuth login (Google, Kakao, Naver)P1Support social login for convenience
FR-5.5Password reset flowP0Email-based password recovery
FR-5.6Session managementP0Secure JWT-based sessions with refresh tokens
FR-5.7User profile managementP1Edit name, email, password, preferences
FR-5.8Subscription tier displayP1Show current plan (Free/Basic/Pro)
FR-5.9Account deletionP2Users can request account deletion (GDPR)
FR-5.10Two-factor authentication (2FA)P3Optional 2FA via SMS/authenticator app

User Stories:

  • As a new user, I want to sign up with my email, so that I can save my preferences
  • As a busy user, I want to login with Kakao, so that I don't have to remember another password

FR-6: Search & Discovery​

Priority: P1

Description: Quick search functionality to find stocks.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-6.1Search by stock name (Korean)P1Autocomplete suggestions as user types
FR-6.2Search by stock codeP1Support 6-digit KOSPI/KOSDAQ codes
FR-6.3Search autocompleteP1Show top 10 matches in dropdown
FR-6.4Recent searchesP2Show last 5 searched stocks
FR-6.5Popular stocks sectionP2Display 10 most-viewed stocks today
FR-6.6Search performanceP1Return autocomplete results in < 100ms

User Stories:

  • As a user, I want to quickly search "μ‚Όμ„±μ „μž" and jump to its detail page
  • As a researcher, I want autocomplete to suggest stocks as I type, saving me time

FR-7: Alerts & Notifications​

Priority: P2

Description: Customizable alerts for price movements and screening results.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-7.1Price alerts (above/below threshold)P2Trigger when stock crosses specified price
FR-7.2Volume surge alertsP2Notify when volume > X% of average
FR-7.3Screening result alertsP2Notify when new stocks match saved screen
FR-7.4Email notificationsP2Send alert via email
FR-7.5Push notifications (web)P2Browser push notifications
FR-7.6Alert management dashboardP2View/edit/delete all active alerts
FR-7.7Alert frequency limitsP2Max 1 notification per hour per alert
FR-7.8Free tier limitsP2Free: 3 alerts, Basic: 10, Pro: Unlimited

User Stories:

  • As a trader, I want to be notified when Samsung crosses β‚©80,000, so I can act quickly
  • As a screener user, I want daily alerts when new stocks match my "Value" screen

FR-8: Data Visualization​

Priority: P1

Description: Charts and visual representations of financial data.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-8.1Interactive price chartsP1Zoom, pan, crosshair on charts
FR-8.2Chart indicators (MA, volume)P2Overlay moving averages, volume bars
FR-8.3Financial statement chartsP1Bar charts for revenue, profit over time
FR-8.4Comparison chartsP2Overlay multiple stocks on one chart
FR-8.5Responsive designP1Charts adapt to mobile/tablet/desktop
FR-8.6Chart export (image)P3Download chart as PNG
FR-8.7Performance optimizationP1Render charts with 5 years data in < 1s

FR-9: Educational Content​

Priority: P2

Description: Help users understand financial concepts.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-9.1Metric glossaryP2Explain 200+ indicators in simple Korean
FR-9.2Tutorial videosP2β‰₯10 video guides (screening, analysis, etc.)
FR-9.3Blog articlesP2Weekly investment insights and tips
FR-9.4Contextual helpP1"?" icon next to complex features
FR-9.5Onboarding flowP13-step interactive tutorial for new users

FR-10: Subscription & Billing​

Priority: P1

Description: Tiered subscription plans with payment processing.

Requirements:

IDRequirementPriorityAcceptance Criteria
FR-10.1Three-tier pricing (Free/Basic/Pro)P1Clearly differentiated feature access
FR-10.2Payment processingP1Support credit card, bank transfer, Kakao Pay
FR-10.3Subscription upgrade/downgradeP1Users can change plans mid-cycle
FR-10.4Billing historyP1Show past invoices and receipts
FR-10.5Auto-renewalP1Automatically charge monthly/yearly
FR-10.6Cancellation flowP1Users can cancel anytime (no refund pro-rata)
FR-10.7Free trialP114-day free trial of Pro tier

Pricing Tiers (Draft):

FeatureFreeBasic (β‚©9,900/mo)Pro (β‚©29,900/mo)
Stock screeningβœ“ (10 filters)βœ“ (Unlimited)βœ“ (Unlimited)
Stock detail pagesβœ“βœ“βœ“
Historical data1 year5 years10 years
Portfolios1 portfolio3 portfoliosUnlimited
Alerts3 alerts10 alertsUnlimited
Export dataβœ—βœ“ CSVβœ“ Excel + API
Real-time updatesβœ— (20 min delay)βœ“βœ“
Peer comparisonβœ—βœ“βœ“
API accessβœ—βœ—βœ“

5.3 Non-Functional Requirements​

NFR-1: Performance​

IDRequirementTargetMeasurement
NFR-1.1Screening query response time< 500ms (p99)Application Performance Monitoring (APM)
NFR-1.2Stock detail page load time< 1.5s (p95)Real User Monitoring (RUM)
NFR-1.3API endpoint response time< 200ms (p95)APM
NFR-1.4Chart rendering time< 1s for 5 years dataFrontend profiling
NFR-1.5Search autocomplete latency< 100msFrontend metrics
NFR-1.6Database query optimizationNo query > 1sSlow query log

NFR-2: Scalability​

IDRequirementTargetMeasurement
NFR-2.1Concurrent usersSupport 10,000+ simultaneouslyLoad testing
NFR-2.2Database scalabilityHandle 2,400 stocks Γ— 200 indicators = 480K metricsDatabase monitoring
NFR-2.3Horizontal scalingAuto-scale API servers based on CPU > 70%Kubernetes HPA
NFR-2.4Cache hit rate> 80% for frequently accessed dataRedis monitoring
NFR-2.5CDN coverageServe static assets via CDNCDN analytics

NFR-3: Reliability​

IDRequirementTargetMeasurement
NFR-3.1System uptime99.9% (< 8.76 hours downtime/year)Uptime monitoring
NFR-3.2Error rate< 0.1% of all requestsError tracking (Sentry)
NFR-3.3Database backupDaily backups, 30-day retentionBackup logs
NFR-3.4Disaster recoveryRTO < 4 hours, RPO < 1 hourDR drills
NFR-3.5Health checksAll services report health statusHealth endpoint monitoring

NFR-4: Security​

IDRequirementTargetMeasurement
NFR-4.1AuthenticationSecure JWT with refresh tokens, 15min expirySecurity audit
NFR-4.2Password storageBcrypt with salt, min cost factor 12Code review
NFR-4.3HTTPS onlyAll traffic over TLS 1.3SSL Labs scan
NFR-4.4API rate limiting100 req/min per user, 1000 req/min per IPRate limiter logs
NFR-4.5SQL injection preventionParameterized queries, ORM usageSecurity testing
NFR-4.6XSS preventionContent Security Policy, sanitized inputsSecurity headers check
NFR-4.7Sensitive data encryptionEncrypt PII at rest (AES-256)Compliance audit
NFR-4.8Vulnerability scanningWeekly automated scansDependency checker

NFR-5: Usability​

IDRequirementTargetMeasurement
NFR-5.1Mobile responsivenessSupport screens β‰₯ 360px widthDevice testing
NFR-5.2Browser compatibilitySupport Chrome, Safari, Edge, Firefox (latest 2 versions)Cross-browser testing
NFR-5.3AccessibilityWCAG 2.1 Level AA complianceAccessibility audit
NFR-5.4Page load performanceLighthouse score > 90Lighthouse CI
NFR-5.5InternationalizationKorean language, KRW currencyi18n framework

NFR-6: Data Quality​

IDRequirementTargetMeasurement
NFR-6.1Data accuracy99.9% match with official sources (KRX)Automated validation
NFR-6.2Data freshnessUpdate daily prices within 30 min of market closePipeline monitoring
NFR-6.3Data completeness< 0.1% missing data pointsData quality checks
NFR-6.4Historical data integrityNo retroactive changes without audit logChange tracking

NFR-7: Maintainability​

IDRequirementTargetMeasurement
NFR-7.1Code coverage> 80% unit test coverageCoverage reports
NFR-7.2DocumentationAll APIs documented (OpenAPI spec)Documentation review
NFR-7.3Code qualitySonarQube quality gate passStatic analysis
NFR-7.4Deployment frequencySupport daily deploymentsCI/CD metrics
NFR-7.5Rollback capabilityRollback to previous version in < 5 minDeployment testing

NFR-8: Compliance​

IDRequirementTargetMeasurement
NFR-8.1Data licensingProper attribution for KRX/F&Guide dataLegal review
NFR-8.2Investment disclaimerDisplay on all pages with financial dataCompliance checklist
NFR-8.3Privacy policyGDPR/PIPA compliantLegal review
NFR-8.4Terms of serviceClearly stated user agreementLegal review
NFR-8.5Cookie consentEU Cookie Law compliance (if applicable)Cookie banner implementation