Skip to content

Tax Practice AI - User Stories

Last updated: 2024-12-23 (v2 - 100% requirements coverage)

This document organizes implementation work into user stories, sequenced by dependencies and priority. Stories are grouped into logical sequences that build on each other.


Story Format

Each story includes: - ID: Unique identifier (SEQ-NNN where SEQ = sequence number) - Title: Brief description - Story: As a [role], I want [goal], so that [benefit] - Acceptance Criteria: Testable conditions for completion - Traces: Requirement IDs from tax_practice_ai_requirements.md


Sequence 0: Data Migration (Pre-Launch)

These stories handle migrating existing practice data before go-live. Must be completed before first filing season.

Depends on: Sequence 1 (Foundation) - requires database and storage

S0-001: Client Data Import

Story: As an admin, I want to bulk import existing clients from CSV/Excel, so that all current clients are in the system at launch.

Acceptance Criteria: - Accept CSV/Excel with configurable column mapping - Validate required fields (name, email or phone) - Generate unique account numbers for imported clients - Detect and flag potential duplicates - Support dry-run mode (validate without committing) - Generate import summary with error report - Log all imports for audit

Traces: MIG-001 to MIG-008, MIG-020 to MIG-023


S0-002: Bulk Document Import

Story: As an admin, I want to import existing documents from folder structures, so that client documents are available in the new system.

Acceptance Criteria: - Import from nested folder hierarchies - Match documents to clients by folder name or account number - Auto-classify documents by filename patterns (W-2, 1099, etc.) - Preserve original filenames and paths as metadata - Scan for malware during import - Report unmatched documents for manual assignment - Support multiple folder structure patterns

Traces: MIG-030 to MIG-036, MIG-040 to MIG-043, MIG-050 to MIG-054


S0-003: Historical Return Data Import

Story: As an admin, I want to import prior year AGI and return history, so that returning clients can use Tier 1 authentication.

Acceptance Criteria: - Import prior year AGI from UltraTax export or generic CSV - Import filing status, refund/balance due - Match to imported client records - Support multiple prior years (at least 3) - Link to imported prior year return PDFs - Validate data quality

Traces: MIG-060 to MIG-065, MIG-070 to MIG-072


S0-004: Migration Validation

Story: As an admin, I want to validate the migration was successful, so that we can go live with confidence.

Acceptance Criteria: - Generate migration summary report - Compare source counts to imported counts - List all errors and warnings - Generate sample client report for spot-checking - Verify document counts per client match source - Support rollback of migration batch if needed

Traces: MIG-100 to MIG-103, MIG-110 to MIG-114, MIG-140 to MIG-143


Sequence 1: Foundation (Infrastructure & Core Services)

These stories establish the technical foundation. All other sequences depend on this.

S1-001: Aurora PostgreSQL Database Setup

Story: As a developer, I want a properly configured Aurora PostgreSQL database, so that the application has reliable transactional storage.

Acceptance Criteria: - Aurora Serverless v2 cluster created in us-east-1 - Database tax_practice created with all schemas from DATABASE_SCHEMA.sql - All 35 tables created with proper constraints and indexes - Connection pooling configured (RDS Proxy or application-level) - Health check endpoint returns database status - Encryption at rest enabled (KMS)

Traces: INF-001, INF-003, ENC-001, ENC-003


S1-002: S3 Document Storage Setup

Story: As a developer, I want S3 buckets configured for document storage, so that client documents are stored securely with proper lifecycle management.

Acceptance Criteria: - Document bucket created with versioning enabled - Lifecycle policies configured (hot/warm/cold transitions) - Cross-region replication to us-west-2 enabled - Server-side encryption with KMS - Bucket policies restrict access to application roles only - Presigned URL generation working for secure uploads/downloads

Traces: INF-004, RET-001, RET-003, ENC-001


S1-003: Service Centralization Framework

Story: As a developer, I want a centralized service registry, so that all external service connections go through a single, auditable interface.

Acceptance Criteria: - BaseService class implemented with logging, retry, circuit breaker - ServiceRegistry singleton provides access to all services - Configuration loaded from config.yaml - Secrets loaded from AWS Secrets Manager - Health check aggregates all service statuses - All service calls logged for audit

Traces: AUD-001, AUD-007


S1-004: Aurora Service Implementation

Story: As a developer, I want an AuroraService class, so that all database operations go through a consistent, auditable interface.

Acceptance Criteria: - Connection pooling implemented - Transaction support with commit/rollback - Query logging for audit trail - Parameterized queries only (SQL injection prevention) - Health check method validates connectivity - Retry logic for transient failures

Traces: WISP-001, AUD-003, SEC-005


S1-005: S3 Service Implementation

Story: As a developer, I want an S3Service class, so that all document operations are centralized with proper security controls.

Acceptance Criteria: - Upload with automatic encryption - Download with streaming support - Presigned URL generation (time-limited) - Malware scanning integration (ClamAV or similar) - Metadata management (content-type, tags) - Delete with soft-delete pattern (move to archive)

Traces: DOC-006, ENC-001, RET-004, RET-005


S1-006: API Framework Setup

Story: As a developer, I want a FastAPI application with authentication and authorization, so that the API endpoints have consistent security.

Acceptance Criteria: - FastAPI application with OpenAPI documentation - JWT authentication for staff (Cognito integration) - JWT authentication for clients (tiered verification claims) - Role-based access control middleware - Rate limiting implemented - Request/response logging for audit - CORS configured for web clients

Traces: SEC-001, SEC-002, SEC-003, SEC-004, AUD-001


S1-007: Audit Logging Service

Story: As a compliance officer, I want all user actions logged immutably, so that we have a complete audit trail for IRS requirements.

Acceptance Criteria: - Append-only audit log table with timestamp, user, action, resource - Before/after values captured for data modifications - Log retention policy (7+ years) - Log export capability for auditors - No log deletion capability (immutable) - Includes AI interaction logging

Traces: AUD-001, AUD-002, AUD-003, AUD-004, AUD-005, AUD-006, AUD-007


S1-008: Configuration Management

Story: As a developer, I want centralized configuration with environment separation, so that Dev/UAT/Prod environments are properly isolated.

Acceptance Criteria: - config.yaml with all parameters documented - Environment variable substitution for secrets - .env.example template for local development - Environment-specific overrides supported - Configuration validation on startup - Secrets never logged or exposed

Traces: ENV-001, ENV-004


Sequence 2: Client Identity & Onboarding

Depends on: Sequence 1 (Foundation)

S2-001: Client Registration

Story: As a new client, I want to register via the web portal, so that I can begin the tax preparation process.

Acceptance Criteria: - Registration form captures: name, email, phone, address - Email validation with verification link - Unique account number generated (format: YYYYMMDD-XXXX) - Duplicate detection based on SSN-4 + DOB + Name - Terms of service acceptance recorded - Registration confirmation email sent

Traces: INT-001, INT-003, INT-004


S2-002: Returning Client Authentication (Tier 1)

Story: As a returning client, I want to log in with minimal friction, so that I can access my account quickly.

Acceptance Criteria: - Match on Name + SSN-4 + DOB + Prior Year AGI - Magic link fallback if partial match - Security question as additional factor - Session created with appropriate timeout - Failed attempts tracked and logged - Account lockout after configurable attempts

Traces: INT-002, INT-010, INT-011, SEC-003, SEC-004, SEC-005


S2-003: New Client Identity Verification (Tier 2)

Story: As a new client, I want to verify my identity securely, so that my tax information is protected.

Acceptance Criteria: - Email verification (click link) - Phone verification (SMS or voice call option) - Government ID upload interface - Persona API integration for ID analysis - Confidence score stored with verification record - Staff review queue for 70-89% scores - Auto-approve for scores >= 90%

Traces: INT-012, INT-013, INT-014, IDV-001, IDV-002, IDV-004, IDV-005


S2-004: High-Risk Identity Verification (Tier 3)

Story: As a client flagged for high-risk verification, I want options to complete verification, so that I can proceed with my tax return.

Acceptance Criteria: - Triggers: refund > $5K to new account, score 70-89%, fraud indicators - Video call option via Google Meet - In-person office visit option - Notarized affidavit option - Verification checklist for staff - Recording stored in Drive (with consent) - Clear denial path with explanation

Traces: INT-015, INT-016, INT-017, GWS-001


S2-005: Multi-Contact Household Support

Story: As a household with multiple contacts (spouses, dependents), I want all contacts linked to my account, so that any authorized person can communicate with the firm.

Acceptance Criteria: - Primary and secondary contact roles - Each contact has own email/phone - Authorization levels configurable - All contacts can upload documents - Signature requests routed appropriately - Joint filers both receive notifications

Traces: INT-005


S2-006: Conflict of Interest Check

Story: As a preparer, I want the system to check for conflicts before engaging a new client, so that we comply with professional standards.

Acceptance Criteria: - New client checked against existing client database - Related entity detection (same address, SSN overlap) - Prior client relationships flagged - Manual override with documentation - Conflict check logged for audit - Blocking flag prevents engagement until resolved

Traces: PRE-001, PRE-002, PRE-003, PRE-004


S2-007: Staff Client Creation

Story: As a staff member, I want to create client records manually, so that I can onboard clients from phone calls, walk-ins, or referrals.

Acceptance Criteria: - Admin UI for client creation (separate from self-registration) - Minimum required fields: name + (email OR phone) - Auto-generate account number on creation - Client status set to ACTIVE (skip PENDING_VERIFICATION) - Log creating staff member for audit - Option to send portal invitation email to client - Role-based access (only authorized staff can create)

Traces: INT-040, INT-041, INT-042, INT-043, INT-044, INT-045


S2-008: Existing Client Portal Activation

Story: As an existing client (created by staff or migrated), I want to activate portal access, so that I can access my documents and communicate online.

Acceptance Criteria: - Client enters identifying info (name, email, SSN-4, DOB) - System matches to existing client record - If match found, trigger identity verification (Tier 1 or 2) - On successful verification, enable portal access - Preserve existing account number (no new number generated) - No duplicate client record created - Audit log records portal activation

Traces: INT-030, INT-031, INT-032


S2-009: Staff Portal Invitation

Story: As a staff member, I want to send portal invitation emails to existing clients, so that they can activate their online access.

Acceptance Criteria: - Select client from admin UI - Generate secure invitation link (time-limited) - Email contains: firm name, client name, activation link - Link pre-fills known client info (email) - Client completes identity verification on click - Track invitation status (sent, clicked, activated) - Resend capability for expired links

Traces: INT-033, INT-045


S2-010: Staff Document Upload

Story: As a staff member, I want to upload a folder of scanned documents for a client, so that walk-in clients and mailed documents can be added to the system efficiently.

Acceptance Criteria: - Select client from admin UI - Upload single file or entire folder - Auto-classify documents by filename patterns (W-2, 1099, etc.) - Assign tax year (default current, selectable) - Log uploading staff member for audit - Generate upload summary with document counts by type - Flag unclassified documents for manual review - Malware scan all uploads

Traces: DOC-030, DOC-031, DOC-032, DOC-033, DOC-034, DOC-035, DOC-036, DOC-037


Depends on: Sequence 2 (Client Identity)

S3-001: Engagement Letter Generation

Story: As an admin, I want to generate engagement letters from templates, so that clients can be onboarded efficiently.

Acceptance Criteria: - Templates stored and versioned - Client data auto-populated (name, address, tax year, services) - Fee schedule included based on return type - Multiple service types supported (tax prep, planning, representation) - Preview before sending - Version tracking on templates

Traces: PRE-010, PRE-011


S3-002: Engagement Letter Signature

Story: As a client, I want to sign my engagement letter electronically, so that I can engage the firm without mailing documents.

Acceptance Criteria: - Google Workspace signature request sent - Signing order enforced (if multiple signers) - Reminder emails sent for unsigned documents - Signed document retrieved and stored - Engagement status updated upon signature - Tax work blocked until signed

Traces: PRE-012, PRE-013, PRE-014, GSG-001, GSG-002, GSG-003, GSG-004, GSG-005


Story: As a preparer, I want to track Form 7216 consent, so that we never disclose client information without proper authorization.

Acceptance Criteria: - Consent form generated when disclosure needed - Consent types tracked (disclosure to third party, use for other services) - Expiration date tracked - Renewal reminders sent before expiration - Disclosure blocked if no valid consent - Consent history maintained for audit

Traces: PRE-020, PRE-021, PRE-022


Sequence 4: Document Management

Depends on: Sequences 1-3

S4-001: Document Upload via Portal

Story: As a client, I want to upload documents through the web portal, so that I can submit my tax documents securely.

Acceptance Criteria: - Drag-and-drop upload interface - Support for PDF, JPEG, PNG, HEIC - Support for DOCX, XLSX, CSV - Progress indicator during upload - Confirmation receipt displayed and emailed - Mobile camera capture supported - File size limit enforced (50MB)

Traces: DOC-001, DOC-003, DOC-003a, DOC-003b, DOC-004, DOC-005, PRT-004


S4-002: Document Upload via Email

Story: As a client, I want to email documents to the firm, so that I can submit documents using familiar tools.

Acceptance Criteria: - Dedicated intake email address monitored - Account number + tax year parsed from subject/body - Attachments extracted and processed - Unmatched emails queued for manual routing - Confirmation reply sent - MSG/EML format handling

Traces: DOC-002, DOC-003c, ANA-012


S4-003: Malware Scanning

Story: As a system administrator, I want all uploads scanned for malware, so that the system is protected from malicious files.

Acceptance Criteria: - ClamAV or equivalent integration - Scan occurs before storage in production bucket - Infected files quarantined with alert - Scan results logged - Client notified if file rejected - Bypass not possible

Traces: DOC-006


S4-004: Document Classification and Extraction

Story: As a preparer, I want uploaded documents automatically classified and key data extracted, so that I don't have to manually identify document types or key basic data.

Acceptance Criteria: - AI classifies document type (W-2, 1099-, 1098-, K-1, etc.) - All 27 document types from schema supported - Confidence score stored - Low-confidence items flagged for review - Classification editable by preparer - Classification logged for AI improvement - Form-specific extraction: - W-2: employer info, wages, withholdings (boxes 1-20) - 1099-INT/DIV/B/MISC/NEC/R/G/K: payer info, amounts, withholdings - 1098/1098-E/1098-T: lender/institution info, interest/tuition amounts - K-1 (1065/1120S/1041): partnership/S-corp/trust info, all schedule items - Brokerage statements: cost basis, sales, dividends, interest - Low-confidence extractions flagged for human review

Traces: DOC-010, DOC-012, AIE-001, AIE-002, AIE-003, AIE-004, AIE-005, AIE-006


S4-005: SmartVault Integration

Story: As a preparer, I want documents from SmartVault automatically retrieved, so that client uploads appear in our system without manual transfer.

Acceptance Criteria: - OAuth 2.0 authentication to SmartVault API - Polling for new client uploads (or webhook if available) - Document retrieved and processed in our system - Completed documents pushed back to SmartVault - Folder structure maintained - Sync status visible to staff

Traces: SMV-001, SMV-002, SMV-003, SMV-004, SMV-005, SMV-006


S4-006: Document Extraction (SurePrep Integration)

Story: As a preparer, I want document data extracted automatically via SurePrep, so that I don't have to manually key tax form data.

Acceptance Criteria: - Documents pushed to SurePrep for OCR/extraction - Binder created per client/tax year - Extracted data retrieved as structured JSON - Confidence scores per field - Low-confidence fields flagged - Link maintained between extraction and source document

Traces: DOC-011, DOC-013, DOC-014, SPR-001, SPR-002, SPR-003, SPR-004, SPR-005


S4-007: Document Checklist Management

Story: As a preparer, I want a checklist of expected documents based on prior year, so that I can track what's missing.

Acceptance Criteria: - Prior year documents inform current year checklist - Checklist items marked as received when uploaded - Missing items visible to preparer and client - Automated reminders for missing documents - Checklist customizable per client - Completion percentage calculated

Traces: DOC-020, DOC-021, DOC-022


S4-008: Manual Extraction Correction

Story: As a preparer, I want to correct extracted data, so that errors in OCR/extraction can be fixed.

Acceptance Criteria: - Side-by-side view: source document + extracted fields - Inline editing of extracted values - Correction logged with before/after - AI feedback loop (corrections improve future extractions) - Bulk correction support for repeated errors - Corrected flag on extraction record

Traces: DOC-015, AIE-007


Sequence 5: AI Analysis & Preliminary Review

Depends on: Sequence 4 (Document Management)

S5-001: Bedrock Service Implementation

Story: As a developer, I want a BedrockService class, so that all AI interactions go through a consistent, cost-optimized interface.

Acceptance Criteria: - Claude model routing (Haiku/Sonnet/Opus based on task) - Prompt management with version control - Token usage tracking for cost monitoring - Rate limiting to stay within quotas - Retry logic for transient failures - All interactions logged for audit

Traces: REV-014, AUD-004


S5-002: Prior Year Comparison

Story: As a preparer, I want AI to compare current year to prior year data, so that significant changes are flagged automatically.

Acceptance Criteria: - Income sources compared (new, removed, changed > 20%) - Deductions compared with variance flagging - Life events detected (new dependent, address change, status change) - Flagged items prioritized by materiality - Comparison report generated - Prior year data retrieved from firm records or client upload

Traces: ANA-002, AIA-001, AIA-002, INT-020, INT-021, INT-022, INT-023


S5-003: Missing Document Detection

Story: As a preparer, I want AI to identify potentially missing documents, so that clients are prompted before preparation begins.

Acceptance Criteria: - Prior year document types compared to current submissions - Industry-standard document patterns recognized - Missing document notification generated - Customizable rules per client type - Client-friendly language in notifications - Link to upload portal included

Traces: AIA-003, COM-002


S5-004: AI Question Generation

Story: As a preparer, I want AI to generate client clarification questions, so that common issues are resolved before I review.

Acceptance Criteria: - Questions generated from data inconsistencies - Plain language suitable for clients - Multiple choice where appropriate - Questions grouped logically - Preparer can edit/approve before sending - Responses tracked and parsed

Traces: ANA-004, ANA-005, AIA-004


S5-005: Preliminary Analysis Report

Story: As a preparer, I want an AI-generated preliminary analysis, so that I can quickly focus on items needing attention.

Acceptance Criteria: - Summary of extracted data by category - Flagged items with explanations - Suggested deductions/credits based on data - Risk indicators highlighted - Firm guidelines applied (not exposed to client) - Report format suitable for preparer dashboard

Traces: ANA-001, ANA-003, ANA-006, WFL-013


S5-006: Batch AI Processing

Story: As a preparer, I want to queue complex research questions for overnight batch processing, so that costs are reduced for non-urgent analysis.

Acceptance Criteria: - Items flaggable for batch processing - Preparer can add context/guidance to items - Batch runs during off-peak hours (using batch API) - Results queued for next business day - Cost savings tracked and reported - Interactive vs batch mode clearly distinguished

Traces: REV-020, REV-021, REV-022, REV-023, REV-024


Sequence 6: Tax Preparation Workflow

Depends on: Sequences 4-5

S6-001: Workflow State Machine

Story: As a preparer, I want returns to flow through defined workflow states, so that status is always clear and transitions are controlled.

Acceptance Criteria: - All 17 states from requirements implemented - Valid transitions enforced (per PROCESS_FLOWS.md) - State change logged with timestamp, user, reason - Guards prevent invalid transitions - Needs Review catch-all for exceptions - State rollback support for corrections

Traces: WFL-001, WFL-040, WFL-041


S6-002: Return Assignment

Story: As an admin, I want to assign returns to preparers, so that workload is distributed appropriately.

Acceptance Criteria: - Assignment UI shows preparer workload - Assignment logged with timestamp - Reassignment supported with reason - PTIN validation on assignment - Notification sent to assigned preparer - Bulk assignment supported

Traces: WFL-002, WFL-003, PTIN-001, PTIN-004


S6-003: Time Tracking

Story: As an admin, I want time spent on each return tracked, so that we can measure efficiency and bill accurately.

Acceptance Criteria: - Timer starts when return opened in prep/review mode - Timer pauses on inactivity - Manual time entry supported - Time logged by workflow state - Total time calculated per return - Time reports available for billing

Traces: WFL-004


S6-004: Workflow Dashboard

Story: As a preparer, I want a dashboard showing all returns by status, so that I can manage my workload effectively.

Acceptance Criteria: - Filter by status, preparer, tax year, due date - Sort by priority, age, completion percentage - Visual indicators for overdue/at-risk items - Quick actions (open, reassign, flag) - Count by status visible - Refresh without page reload

Traces: WFL-005, WFL-006, WFL-007


S6-005: Progress Tracking

Story: As a client, I want to see my return progress as a percentage, so that I understand how close to completion it is.

Acceptance Criteria: - Progress percentage mapped to workflow state - Client-friendly status descriptions - Last activity date shown - Next expected action described - Email notification on major state changes - Visual progress bar in portal

Traces: WFL-006, COM-004, PRT-002, PRT-005


S6-006: Priority and Rush Processing

Story: As an admin, I want to flag returns for priority processing, so that urgent returns are completed faster.

Acceptance Criteria: - Priority flag with reason - Rush fee tier selection (24-hour, 48-hour) - Priority returns visually distinguished - Priority queue filtering - SLA tracking for rush returns - Rush fee added to invoice automatically

Traces: WFL-050, WFL-051, WFL-052


S6-007: Exception Handling

Story: As a preparer, I want unclassifiable items routed to a review queue, so that nothing falls through the cracks.

Acceptance Criteria: - Items failing classification go to Needs Review - Alert when items age beyond threshold - Reason captured for exception - Resolution path back to normal flow - Exception metrics for process improvement - No item stuck indefinitely without alerting

Traces: WFL-040, WFL-041, WFL-042, WFL-043


S6-008: Cycle Time Analytics

Story: As an admin, I want cycle time tracked by workflow state, so that we can identify bottlenecks and improve processes.

Acceptance Criteria: - Time-in-state recorded for each workflow transition - Cycle time reports by state, preparer, return type - Bottleneck identification (states with longest duration) - Trend analysis over time - Export capability for analysis - Dashboard widget for real-time monitoring

Traces: WFL-008


S6-009: Preliminary Tax Calculations

Story: As a preparer, I want preliminary tax calculations generated automatically, so that I can see estimated results before detailed review.

Acceptance Criteria: - Preliminary calculations from extracted data - Integration with tax software via SurePrep for accurate calculations - Firm-defined guidelines applied to analysis (protected from clients) - Estimated refund/balance due displayed - Comparison to prior year tax liability - Calculation assumptions documented

Traces: WFL-010, WFL-011, WFL-012


Sequence 7: Preparer & Reviewer Interface

Depends on: Sequence 6

S7-001: Interactive Review Interface

Story: As a preparer, I want to review AI output in an interactive interface, so that I can efficiently review and correct the preliminary work.

Acceptance Criteria: - Return summary with drill-down to details - All source documents accessible in split-screen - AI-flagged items highlighted - Inline editing of values - Annotation support (notes, questions) - Keyboard shortcuts for common actions

Traces: REV-001, REV-002, REV-003, REV-004, STF-002, STF-004


S7-002: AI Q&A Assistant (Interactive)

Story: As a preparer, I want to ask the AI questions about a specific return, so that I can get quick answers while reviewing.

Acceptance Criteria: - Chat interface in review screen - AI has context of current return and all documents - Responses cite source documents - Tax code references included when applicable - Uncertainty clearly indicated - Conversation history maintained per return

Traces: REV-010, REV-011, REV-012, REV-013, AIQ-001, AIQ-002, AIQ-003, AIQ-004, AIQ-005


S7-003: Change Tracking

Story: As a reviewer, I want to see what the preparer changed from AI output, so that I can focus my review on human decisions.

Acceptance Criteria: - Diff view: AI original vs preparer final - Changes categorized (correction, addition, removal) - Reason for change captured (optional) - Time spent on changes tracked - Review interface highlights changes - Metrics: AI accuracy rate over time

Traces: REV-005


S7-004: Final Review Package

Story: As an EA/CPA, I want a complete review package, so that I can efficiently perform final review and approval.

Acceptance Criteria: - Return summary, all forms, all supporting documents - Preparer notes and flags included - Checklist of required review items - AI assistant available for questions - Approve/reject with required reason - Approval logged with timestamp and approver identity

Traces: FIN-001, FIN-002, FIN-003, FIN-004, FIN-005


S7-005: UltraTax Integration (via SurePrep)

Story: As a preparer, I want extracted data populated in UltraTax via SurePrep, so that I don't have to re-key data into tax software.

Acceptance Criteria: - Data exported to SurePrep in correct format - SurePrep CS Connect pushes to UltraTax - Confirmation of successful push - Error handling for push failures - No direct UltraTax integration attempted - Return data importable from SurePrep post-calculation

Traces: TXS-001, TXS-002, TXS-003, TXS-004, SPR-009


S7-006: Mobile Staff Interface

Story: As a preparer, I want to view my queue on mobile, so that I can monitor work status when away from my desk.

Acceptance Criteria: - Responsive mobile view of dashboard - Queue review and filtering - Note-taking support - View (not edit) return details - Push notifications for urgent items - Secure authentication on mobile

Traces: STF-010, STF-011, STF-012, STF-013


Sequence 8: Client Communication

Depends on: Sequences 6-7

S8-001: Secure Portal Messaging

Story: As a client, I want to communicate with my preparer through the portal, so that sensitive information stays secure.

Acceptance Criteria: - Thread-based messaging per return - Attachments supported - Read receipts - Staff can reply from their interface - Email notification when new message - Message history maintained

Traces: ANA-010, ANA-013


S8-002: Email Notifications

Story: As a client, I want email notifications for important events, so that I stay informed without checking the portal constantly.

Acceptance Criteria: - Notification on: document receipt, questions posted, status change, signature needed - Account number and tax year in all emails - Link to portal in all emails - Unsubscribe option (except critical) - Email templates branded and professional - Delivery tracking (bounces, opens)

Traces: ANA-011, ANA-012, COM-001, COM-004, EML-001, EML-002


S8-003: SMS Notifications

Story: As a client, I want SMS notifications for time-sensitive items, so that I don't miss important deadlines.

Acceptance Criteria: - Twilio integration for SMS - Voice call fallback option - Opt-in required for SMS - Rate limiting to prevent spam - Unsubscribe via reply - Critical notifications (rejection, deadline) override quiet hours

Traces: COM-005, EML-003, EML-004, SEN-003


S8-004: Missing Document Reminders

Story: As a client, I want reminders about missing documents, so that I don't delay my return.

Acceptance Criteria: - Automated reminders at 7, 14, 21 days - Reminder interval configurable - Clear list of what's missing - Direct upload link in reminder - Escalation path (preparer contact info) - Stop reminders when documents received

Traces: COM-002, COM-003, DOC-021


S8-005: Human Contact Option

Story: As a client, I want to easily reach a human, so that I can get help when automated systems don't suffice.

Acceptance Criteria: - Phone number prominently displayed - Callback request option - Live chat during business hours (future) - All automated messages include human contact option - Senior citizen accommodations prioritized

Traces: COM-006, SEN-002, PRT-003


Sequence 9: Client Delivery

Depends on: Sequences 7-8

S9-001: Tax Package Generation

Story: As a preparer, I want to generate a complete tax package for client delivery, so that all required documents are assembled automatically.

Acceptance Criteria: - Tax return (all applicable forms) - Cover letter from template - Form 8879 (e-file authorization) - Invoice - Estimated tax vouchers (1040-ES, state) - Package assembled as single PDF with bookmarks

Traces: DEL-001, DEL-002, DEL-003, DEL-004, DEL-006


S9-002: Google Workspace Signature Integration

Story: As a client, I want to sign my 8879 and other documents electronically, so that I can authorize e-filing without printing.

Acceptance Criteria: - Documents sent via Google Workspace signature request - Signing order enforced (8879 first) - Reminder emails for unsigned documents - Signed documents retrieved and stored - Signature status tracked and visible - Return blocked from filing until signed

Traces: DEL-010, DEL-011, DEL-012, DEL-013, DEL-014, GSG-001, GSG-002, GSG-003, GSG-004, GSG-005


S9-003: Payment Authorization

Story: As a client, I want to authorize payment when I sign my return, so that billing is handled seamlessly.

Acceptance Criteria: - Pre-filled payment authorization in package - Link to Stripe payment page - ACH and card options presented - Payment amount from invoice - Authorization optional (can pay separately) - Payment status updates return workflow

Traces: DEL-005


Sequence 10: E-Filing Status Tracking

Depends on: Sequence 9

Note: E-filing transmission is handled by UltraTax CS (confirmed ASM-001, 2024-12-24). This sequence focuses on status tracking via SurePrep CS Connect and client notifications.

S10-001: SurePrep E-File Status Integration

Story: As a developer, I want to receive e-file status updates from SurePrep CS Connect, so that our system stays synchronized with UltraTax filing status.

Acceptance Criteria: - SurePrep webhook handler for e-file status events - Status mapping: pending, transmitted, accepted, rejected - Federal and state status tracked separately - Confirmation numbers captured from SurePrep - All status changes logged with timestamps - Polling fallback if webhooks unavailable

Traces: EFT-001, EFL-001


S10-002: E-File Workflow Trigger

Story: As a preparer, I want returns marked ready for e-filing after 8879 signature, so that the UltraTax filing process can begin.

Acceptance Criteria: - Return status updated to "ready_to_file" on 8879 signature - SurePrep notified of filing readiness (if API supports) - Staff dashboard shows returns pending transmission - Batch filing queue visible in UltraTax - Status visible on client portal - Audit log of status transitions

Traces: EFL-002, EFL-003, EFL-004


S10-003: Acceptance Notification

Story: As a client, I want to be notified when my return is accepted by the IRS, so that I know my filing is complete.

Acceptance Criteria: - Email notification on federal acceptance - Email notification on each state acceptance - Confirmation number included in notification - Client portal updated with acceptance status - Expected refund date displayed (if available) - Staff notified of acceptance for records

Traces: EFL-010, EFL-011, EFL-012, EFL-013


S10-004: Rejection Handling

Story: As a preparer, I want e-file rejections categorized and routed appropriately, so that I can resolve them quickly.

Acceptance Criteria: - IRS/state error codes parsed from SurePrep status - Categories: data mismatch, missing info, duplicate, technical - Return workflow moved to "rejected" state - Preparer notified with rejection details - Client notified when additional info needed - Deadline tracking for rejection resolution - Duplicate filing rejections flagged for review - Rejection resolution tracked in audit log

Traces: EFL-020, EFL-021, EFL-022, EFL-023, EFL-024, EFL-025, EFL-026


Sequence 11: Billing & Payments

Depends on: Sequences 9-10

S11-001: Stripe Service Implementation

Story: As a developer, I want a StripeService class, so that payment processing is handled securely and consistently.

Acceptance Criteria: - Stripe API integration - Payment intents for card payments - ACH payment support - Webhook handler for payment events - Refund support - All transactions logged

Traces: PAY-001, PAY-002, PAY-003, PAY-004


S11-002: Invoice Generation

Story: As an admin, I want invoices generated from the fee schedule, so that billing is consistent and accurate.

Acceptance Criteria: - Fee schedule configured by return type/complexity - Invoice auto-generated on return approval - Complexity adjustments supported - Rush fees added automatically - Invoice PDF generated - Invoice stored with return record

Traces: BIL-001, BIL-002, BIL-003


S11-003: Payment Collection

Story: As a client, I want to pay my invoice online, so that I can complete payment conveniently.

Acceptance Criteria: - Payment link in delivery package - Card and ACH options presented - ACH fee discount shown - Payment confirmation email - Invoice status updated on payment - Partial payment handling

Traces: BIL-010, BIL-011, BIL-012, BIL-013


S11-004: Payment Reminders

Story: As an admin, I want overdue invoices to trigger reminders, so that collections are handled professionally.

Acceptance Criteria: - Overdue threshold configurable - Reminder sequence (7, 14, 30 days) - Escalation after threshold - Payment link in all reminders - Stop reminders on payment - Aging report for admin

Traces: BIL-014


Sequence 12: Estimated Tax Management

Depends on: Sequence 9

S12-001: Estimated Tax Calculation

Story: As a preparer, I want estimated tax amounts calculated automatically, so that clients receive accurate vouchers.

Acceptance Criteria: - Quarterly amounts calculated from return data - Federal and applicable state amounts - Safe harbor rules applied - Prior year comparison available - Override capability for preparer - Calculation logged

Traces: EST-001


S12-002: Voucher Generation

Story: As a client, I want estimated tax vouchers in my delivery package, so that I have what I need for quarterly payments.

Acceptance Criteria: - Federal Form 1040-ES generated - State estimated tax forms generated - Pre-filled with client info and amounts - Due dates clearly marked - Payment instructions included - Vouchers included in delivery PDF

Traces: EST-002, EST-003, EST-004


S12-003: Calendar Event Generation

Story: As a client, I want calendar events for estimated tax due dates, so that I don't forget to pay.

Acceptance Criteria: - ICS file generated for each due date - Events include payment amount and instructions - One-click add for Google, Outlook, Apple - Events in delivery package - Email delivery of calendar invites optional - Recurring event option

Traces: EST-010, EST-011, EST-012


S12-004: Estimated Tax Reminders

Story: As a client, I want reminders before estimated tax due dates, so that I avoid penalties.

Acceptance Criteria: - Reminder 14 days before due date - Reminder 3 days before due date - Payment amount included - Link to IRS Direct Pay included - Email or SMS per client preference - Mark as paid capability

Traces: EST-020, EST-021, EST-022, EST-023, EST-030, EST-031


Sequence 13: Extensions & Amendments

Depends on: Sequences 6, 10

S13-001: Extension Filing

Story: As a preparer, I want to file extensions electronically, so that clients get additional time when needed.

Acceptance Criteria: - Form 4868 generated - Estimated payment calculated and included - Electronic transmission via e-file service - Extension deadline tracked (October 15) - Confirmation stored - Return status updated to Extended

Traces: EXT-001, EXT-002, EXT-003, EXT-004


S13-002: Amended Return Workflow

Story: As a preparer, I want to create amended returns linked to originals, so that corrections are traceable.

Acceptance Criteria: - Form 1040-X generation - Link to original return maintained - Amendment reason captured - Separate workflow tracking - Supporting documents attachable - Filing (electronic or paper) tracked

Traces: AMD-001, AMD-002, AMD-003


Sequence 14: Compliance & PTIN

Depends on: Sequence 1

S14-001: PTIN Management

Story: As an admin, I want PTIN records for all preparers tracked, so that we maintain IRS compliance.

Acceptance Criteria: - PTIN stored for each preparer - Expiration date tracked - Alert 60/30/7 days before expiration - Preparation blocked with expired PTIN - PTIN verification against IRS (if available) - PTIN displayed on prepared returns

Traces: PTIN-001, PTIN-002, PTIN-003, PTIN-004


S14-002: Due Diligence Documentation

Story: As a preparer, I want due diligence steps documented per return, so that Circular 230 compliance is demonstrated.

Acceptance Criteria: - Checklist of due diligence items per return type - Completion tracked and enforced - Notes captured per item - Review confirms due diligence complete - All actions logged with timestamp - Export capability for audits

Traces: CIR-001, CIR-002, CIR-003


S14-003: Data Retention Policies

Story: As a compliance officer, I want data retention enforced automatically, so that we meet IRS requirements without manual effort.

Acceptance Criteria: - 7-year minimum retention for returns and documents - Permanent retention for engagement letters - Lifecycle policies move data to cold storage - Legal hold capability prevents deletion - Secure deletion when retention expires - Retention reports available

Traces: RET-001, RET-002, RET-003, RET-004, RET-005


S14-004: Privacy Request Handling

Story: As a client, I want to request my data or deletion, so that my privacy rights are respected.

Acceptance Criteria: - Data access request workflow - Export of all client data - Deletion request workflow (subject to retention) - Requests logged and tracked - Response within required timeframe - Confirmation sent to client

Traces: SPL-002, SPL-003


Sequence 15: Security & Infrastructure

Depends on: Sequence 1

S15-001: Multi-Factor Authentication

Story: As a staff member, I want MFA required for login, so that my account is protected from unauthorized access.

Acceptance Criteria: - MFA required for all staff accounts - TOTP and SMS options - MFA enrollment on first login - Recovery codes provided - MFA bypass for emergency with approval - All MFA events logged

Traces: SEC-001


S15-002: Role-Based Access Control

Story: As an admin, I want access controlled by role, so that staff only see what they need.

Acceptance Criteria: - Roles: Admin, Preparer, Reviewer, EA/CPA, Client - Permissions defined per role per resource - Role assignment audited - Client access restricted to own data - Override with approval and logging - Permission check on every request

Traces: SEC-002, GLB-002


S15-003: Sensitive Data Encryption

Story: As a compliance officer, I want SSN and financial data field-encrypted, so that exposure risk is minimized.

Acceptance Criteria: - SSN encrypted at field level (not just disk) - Financial account numbers encrypted - Encryption keys in AWS KMS - Key rotation supported - Decryption logged - Encrypted at rest and in transit

Traces: ENC-001, ENC-002, ENC-003, ENC-004


S15-004: WAF and DDoS Protection

Story: As a system administrator, I want web application firewall protection, so that the application is protected from common attacks.

Acceptance Criteria: - AWS WAF configured - OWASP top 10 rules enabled - Rate limiting configured - AWS Shield for DDoS (Standard or Advanced) - Blocked requests logged - Alert on attack patterns

Traces: NET-003, NET-004


S15-005: Disaster Recovery

Story: As a system administrator, I want DR capability, so that the system can recover from regional outages.

Acceptance Criteria: - Aurora Global Database replicates to us-west-2 - S3 cross-region replication enabled - Route 53 health checks configured - DR region warm standby (1-hour RTO) - DR runbook documented - DR tested quarterly

Traces: INF-002, INF-003, INF-004, INF-005, INF-006


S15-006: CI/CD Pipeline

Story: As a developer, I want automated deployment pipelines, so that releases are consistent and tested.

Acceptance Criteria: - GitHub Actions workflows - Automated tests run on PR - Deployment blocked if tests fail - Blue-green deployment for zero downtime - Automated rollback on failure - Environment promotion (Dev -> UAT -> Prod)

Traces: DEP-001, DEP-002, DEP-003, DEP-004, DEP-005


S15-007: Network Security Architecture

Story: As a security officer, I want the application deployed in private subnets with proper network isolation, so that the attack surface is minimized.

Acceptance Criteria: - Application deployed in private subnets (no public IPs) - Database in isolated private subnet (no internet access) - NAT Gateway for outbound traffic only - Security groups restrict traffic to required ports - VPC Flow Logs enabled for audit - Bastion host or SSM for administrative access

Traces: NET-001, NET-002


S15-008: Auto-Scaling Configuration

Story: As a system administrator, I want the system to automatically scale based on demand, so that we handle tax season peaks without manual intervention.

Acceptance Criteria: - Aurora scales from 0.5 to 128 ACUs based on load - ECS/Lambda auto-scales based on CPU and request count - System handles 10x normal load during Jan-April peak - Scale-to-near-zero during May-December off-season - Scaling events logged and alerted - Cost optimization through right-sizing

Traces: SCL-001, SCL-002, SCL-003, SCL-004


S15-009: Performance SLAs

Story: As a product owner, I want defined performance targets, so that user experience meets expectations.

Acceptance Criteria: - API response time < 500ms for 95th percentile - Document upload completes within 30 seconds (up to 50MB) - AI document extraction completes within 60 seconds per document - Search results return within 2 seconds - Performance metrics monitored and alerted - Load testing validates SLAs before release

Traces: PRF-001, PRF-002, PRF-003, PRF-004


S15-010: Availability and Maintenance

Story: As a system administrator, I want high availability with planned maintenance windows, so that the system is reliable for users.

Acceptance Criteria: - 99.9% uptime target during tax season (Jan-April) - Planned maintenance scheduled outside business hours (10pm-6am) - Status page for outage communication - Automated health checks and failover - Maintenance notifications sent 48 hours in advance - Incident response playbooks documented

Traces: AVL-001, AVL-002, AVL-003


S15-011: Incident Response System

Story: As a security officer, I want security incidents detected, logged, and handled systematically, so that breaches are contained quickly.

Acceptance Criteria: - Security incident logging to dedicated audit stream - Alerting on suspicious activity patterns (failed logins, unusual access) - Forensic data export capability for investigation - Incident classification and severity levels - Response runbooks for common incident types - Post-incident review process documented

Traces: INC-001, INC-002, INC-003


S15-012: Environment Data Isolation

Story: As a compliance officer, I want production data never used in development, so that client data is protected.

Acceptance Criteria: - Production data access restricted to production environment only - Dev environment uses only synthetic/fake data - UAT uses sanitized/anonymized production data - Data anonymization scripts for UAT refresh - Audit trail for any data movement between environments - Automated checks prevent production data in non-prod

Traces: ENV-002, ENV-003


Sequence 16: Accessibility & UX

Cross-cutting concern, implement throughout other sequences.

S16-001: WCAG 2.1 AA Compliance

Story: As a client with disabilities, I want the portal to be accessible, so that I can use it with assistive technology.

Acceptance Criteria: - WCAG 2.1 Level AA compliance - Screen reader compatibility tested - Keyboard navigation complete - Color contrast meets standards - Focus indicators visible - Accessibility audit passed

Traces: ACC-001, ACC-002, ACC-003, ACC-005


S16-002: Senior Citizen Accommodations

Story: As a senior citizen client, I want accommodations for my needs, so that I can use the system comfortably.

Acceptance Criteria: - Minimum 16px default font - Adjustable font sizes - Phone support prominently displayed - Voice call option always available - Plain language error messages - Paper mail option documented

Traces: SEN-001, SEN-002, SEN-003, SEN-004, SEN-005, ACC-004


S16-003: Mobile Responsive Portal

Story: As a client, I want to use the portal on my phone, so that I can upload documents and check status anywhere.

Acceptance Criteria: - Responsive design works on phone/tablet - Touch-friendly controls - Mobile camera upload works - Status visible on small screens - Navigation simplified for mobile - Performance acceptable on 4G

Traces: PRT-001, PRT-004


Sequence 17: AI Skills Framework

Depends on: Sequence 5

S17-001: Skills Directory Structure

Story: As a developer, I want a versioned skills directory, so that AI tax knowledge is organized and auditable.

Acceptance Criteria: - Directory structure: /skills/{jurisdiction}/{year}/{topic} - Federal skills for 1040, schedules, credits - State skills for applicable states - Firm skills for guidelines, checklists, templates - Version control on all skill files - Annual update process documented

Traces: SKL-001, SKL-002, SKL-003, SKL-004


S17-002: Firm Knowledge Protection

Story: As a firm owner, I want proprietary guidelines protected from client exposure, so that our intellectual property is secure.

Acceptance Criteria: - Firm skills in separate protected directory - Client-facing AI cannot access firm skills - Staff AI sessions can access firm skills - AI responses cite "firm guidelines" without exposing content - Skill access logged for audit - Encryption on firm skill files

Traces: IPP-001, IPP-002, IPP-003, IPP-004


Sequence 18: Client Data Portability

Depends on: Sequences 4, 6

S18-001: Client Data Export

Story: As a departing client, I want to export all my data, so that I can take my records to a new accountant.

Acceptance Criteria: - Export includes: all documents, return copies, communications - AI-generated account summary included - Standard format (ZIP with organized folders) - Export logged for audit - Fee-based service option - Export available on request within required timeframe

Traces: Section 1.2 (Client Data Export requirement)


Sequence 19: Compliance Documentation

Depends on: Sequence 1 (Foundation)

These stories cover compliance documentation and regulatory requirements that are primarily documentation and process rather than code features.

S19-001: WISP Documentation System

Story: As a compliance officer, I want WISP documentation maintained in the system, so that we demonstrate IRS Publication 4557 compliance.

Acceptance Criteria: - Security policy documentation stored and versioned - Audit logs accessible for security reviews - Incident response documentation maintained - Annual WISP review workflow supported - Employee acknowledgment tracking - Export capability for IRS examination

Traces: WISP-002, WISP-003, WISP-004


S19-002: E-File Provider Compliance

Story: As a compliance officer, I want e-file provider requirements tracked, so that we maintain IRS Publication 3112 compliance.

Acceptance Criteria: - E-file acceptance records maintained per IRS requirements - Acknowledgement files stored (minimum 3 years) - ERO (Electronic Return Originator) documentation maintained - Annual e-file application renewal tracked - Compliance checklist for annual review - Audit export capability

Traces: EFP-001, EFP-002, EFP-003


S19-003: GLBA Safeguards

Story: As a compliance officer, I want GLBA safeguards documented and enforced, so that client financial information is protected per federal requirements.

Acceptance Criteria: - Safeguards for client financial information documented - Administrative, technical, and physical safeguards implemented - Privacy notice delivery tracked per client - Annual safeguards assessment conducted - Employee training on GLBA requirements tracked - Third-party service provider oversight documented

Traces: GLB-001, GLB-003


S19-004: State Privacy Compliance (CCPA)

Story: As a compliance officer, I want California privacy law compliance supported, so that California clients' rights are respected.

Acceptance Criteria: - CCPA applicability assessment documented - "Do Not Sell" preference tracked (if applicable) - Privacy notice includes CCPA disclosures for CA clients - Data subject request workflow supports CCPA requirements - Annual CCPA compliance review - California-specific privacy rights honored

Traces: SPL-001


S19-005: Preparer Competency Records

Story: As an admin, I want preparer competency records maintained, so that we demonstrate due diligence in staff qualifications.

Acceptance Criteria: - CPE (Continuing Professional Education) hours tracked - Certifications and licenses tracked (CPA, EA, etc.) - Training completion records maintained - Annual competency review workflow - Alerts for expiring credentials - Export capability for audit

Traces: CIR-004


Sequence 20: Google Workspace Integration Enhancements

Depends on: Sequences 2, 12

S20-001: Calendar Event Integration

Story: As a client, I want appointments and deadlines automatically added to my calendar, so that I don't miss important dates.

Acceptance Criteria: - Google Calendar API integration - Video verification appointments create calendar events - Estimated tax due dates create calendar events - Client can accept/decline calendar invites - Events include relevant details (meeting link, amounts, instructions) - Timezone handling for all events

Traces: GWS-002


S20-002: Meet Recording Storage

Story: As a compliance officer, I want video verification recordings stored securely, so that we have evidence of identity verification.

Acceptance Criteria: - Google Meet recordings automatically saved to Drive - Recordings linked to identity verification record - Retention policy applied (per verification requirements) - Access restricted to authorized staff only - Client consent captured before recording - Recording retrieval for audit purposes

Traces: GWS-003



Dependency Graph

Sequence 1 (Foundation)
    |
    +---> Sequence 2 (Identity)
    |         |
    |         +---> Sequence 3 (Engagement)
    |         |         |
    |         |         +---> Sequence 4 (Documents)
    |         |                   |
    |         |                   +---> Sequence 5 (AI Analysis)
    |         |                   |         |
    |         |                   |         +---> Sequence 6 (Workflow)
    |         |                   |                   |
    |         |                   |                   +---> Sequence 7 (Preparer UI)
    |         |                   |                   |         |
    |         |                   |                   |         +---> Sequence 8 (Communication)
    |         |                   |                   |                   |
    |         |                   |                   |                   +---> Sequence 9 (Delivery)
    |         |                   |                   |                             |
    |         |                   |                   |                             +---> Sequence 10 (E-Filing)
    |         |                   |                   |                             |         |
    |         |                   |                   |                             |         +---> Sequence 11 (Billing)
    |         |                   |                   |                             |
    |         |                   |                   |                             +---> Sequence 12 (Estimated Tax)
    |         |                   |                   |                                       |
    |         |                   |                   |                                       +---> Sequence 20 (Google Enhancements)
    |         |                   |                   |
    |         |                   |                   +---> Sequence 13 (Extensions)
    |         |                   |
    |         |                   +---> Sequence 17 (AI Skills)
    |         |
    |         +---> Sequence 20 (Google Enhancements) [also after Seq 12]
    |
    +---> Sequence 14 (Compliance) [parallel with Sequence 2+]
    |
    +---> Sequence 15 (Security & Infrastructure) [parallel with Sequence 2+]
    |
    +---> Sequence 16 (Accessibility) [cross-cutting]
    |
    +---> Sequence 18 (Data Portability) [after Sequences 4, 6]
    |
    +---> Sequence 19 (Compliance Documentation) [parallel with Sequence 2+]

Implementation Notes

  1. Parallelization: Sequences 14-16, 19 can run in parallel with the main flow after Sequence 1.

  2. MVP Scope: For January 2027 filing season, prioritize:

  3. Sequences 1-12 (core workflow end-to-end)
  4. Sequence 14 (compliance - non-negotiable)
  5. Sequence 15 (security & infrastructure - non-negotiable)
  6. Sequence 16 (accessibility basics)
  7. Sequence 19 (compliance documentation - non-negotiable)
  8. Sequence 20 (Google enhancements - supports core workflow)

  9. Post-MVP: Sequences 13, 17, 18 can follow after first filing season.

  10. Testing Strategy: Each sequence should include acceptance tests before moving to the next.

  11. Integration Points: Pay special attention to:

  12. SmartVault (S4-005) - client document source
  13. SurePrep (S4-006, S7-005) - OCR and UltraTax bridge
  14. Google Workspace (S3-002, S9-002, S20-001, S20-002) - signatures, calendar, Meet
  15. E-filing transmitter (S10-001) - critical path

  16. Infrastructure Stories: S15-007 through S15-012 cover non-functional requirements (scalability, performance, availability, incident response) that should be addressed throughout development, not as a single phase.


Story Count Summary

Sequence Stories Priority
1. Foundation 8 MVP
2. Identity 6 MVP
3. Engagement 3 MVP
4. Documents 8 MVP
5. AI Analysis 6 MVP
6. Workflow 9 MVP
7. Preparer UI 6 MVP
8. Communication 5 MVP
9. Delivery 3 MVP
10. E-Filing 4 MVP
11. Billing 4 MVP
12. Estimated Tax 4 MVP
13. Extensions 2 Post-MVP
14. Compliance 4 MVP
15. Security & Infrastructure 12 MVP
16. Accessibility 3 MVP
17. AI Skills 2 Post-MVP
18. Data Portability 1 Post-MVP
19. Compliance Documentation 5 MVP
20. Google Workspace Enhancements 2 MVP
Total 97

MVP Stories: 92 Post-MVP Stories: 5


Requirements Coverage

All 270 requirements from tax_practice_ai_requirements.md are now traced: - Coverage: 100% - Stories added in gap closure: 15 new stories - Stories expanded: S4-004 (Document Classification) expanded to include AIE-001 through AIE-006