Skip to content

Bookkeeping Module - Requirements Specification

Version: 1.0 Draft Date: December 23, 2025 Status: Pending Client Input Parent Document: tax_practice_ai_requirements.md


Table of Contents

  1. Overview
  2. Follow-Up Questions
  3. Functional Requirements
  4. Integration Requirements
  5. AI Capabilities
  6. Cost Analysis
  7. Implementation Phases

1. Overview

1.1 Purpose

This document defines requirements for a bookkeeping module that extends the Tax Practice AI system to provide year-round financial services. The module processes bank statements, categorizes transactions, and integrates with QuickBooks.

1.2 Relationship to Tax Practice AI

This module shares infrastructure with the core Tax Practice AI system:

Shared Component Reference
Client portal tax_practice_ai_requirements.md Section 8.2
Document upload tax_practice_ai_requirements.md Section 3.3
AI/Bedrock integration tax_practice_ai_requirements.md Section 9
Aurora database ARCHITECTURE.md Section 7
S3 document storage ARCHITECTURE.md Section 7.8
Security & compliance tax_practice_ai_requirements.md Sections 4-5

1.3 Key Differences from Tax Workflow

Aspect Tax Preparation Bookkeeping
Cadence Annual (seasonal) Monthly (year-round)
Client engagement Burst activity Jan-Apr Ongoing relationship
Primary output Tax return Categorized transactions, QuickBooks sync
Workflow Document -> Prep -> Review -> File Ingest -> Categorize -> Reconcile -> Export
Revenue model Per-return fee Monthly retainer

1.4 Design Principles

  1. Start Light, Design for Full - Initial version focuses on tax-ready categorization; architecture supports future full bookkeeping
  2. Monthly Cadence - System designed around monthly statement processing and reconciliation
  3. QuickBooks as System of Record - This system categorizes and exports; QuickBooks maintains the official books
  4. Learn from Corrections - AI improves per-client based on user feedback

1.5 Service Level Options

Service Level Description Phase
Tax-Ready Categorization Categorize transactions for tax prep, export to QuickBooks Phase 1
Monthly Reconciliation Add balance verification, recurring transaction detection Phase 2
Full Bookkeeping Chart of accounts, P&L, Balance Sheet, A/R-A/P, two-way sync Phase 3

2. Follow-Up Questions

2.1 Service Level

Question: What level of bookkeeping service will be offered initially?

Option Description Complexity
Tax-Ready Categorization Categorize transactions, export to QuickBooks Moderate
Full Bookkeeping Chart of accounts, reconciliation, financial statements Significant

Recommendation: Start with Tax-Ready Categorization (Phase 1), add reconciliation (Phase 2), then full bookkeeping (Phase 3) based on demand.

2.2 Target Clients

Question: Which clients will receive bookkeeping services?

Option Description
Business entities only 1120S, 1065, 1120 clients
Business income clients Includes Schedule C filers
Any client Anyone who requests the service

Impact: Determines volume projections, staffing, and pricing strategy.

2.3 Pricing Model

Question: How will bookkeeping services be priced?

Model Description
Monthly retainer Fixed fee per month regardless of transaction volume
Per-transaction Fee based on number of transactions processed
Tiered Monthly fee with transaction limits, overage charges

2.4 Statement Sources

Question: How will bank statements be obtained?

Method Phase Notes
Manual PDF upload Phase 1 Client uploads via portal
Direct bank feed (Plaid) Future Automated, adds ~$50-200/mo
Both options Future Client choice

3. Functional Requirements

3.1 Bank Statement Processing

ID Requirement Priority
BKP-001 System shall accept bank statement uploads (PDF) via client portal Must Have
BKP-002 System shall extract transactions from bank statements using AI/OCR Must Have
BKP-003 System shall support multiple bank accounts per client Must Have
BKP-004 System shall extract statement date range and ending balance Must Have
BKP-005 System shall detect and flag duplicate statement uploads Should Have
BKP-006 System shall support common bank statement formats (Chase, BofA, Wells Fargo, etc.) Must Have
BKP-007 System shall flag statements that fail extraction for manual review Must Have
BKP-008 System shall support direct bank feeds via Plaid API Future

3.2 Transaction Categorization

ID Requirement Priority
BKP-010 System shall automatically categorize transactions using AI Must Have
BKP-011 System shall assign confidence score to each categorization Must Have
BKP-012 System shall flag low-confidence categorizations for human review Must Have
BKP-013 System shall learn from user corrections to improve future categorization Should Have
BKP-014 System shall support client-specific categorization rules Should Have
BKP-015 System shall detect recurring transactions (rent, subscriptions, payroll) Should Have
BKP-016 System shall flag unusual transactions for review (large amounts, new vendors) Should Have
BKP-017 System shall support split transactions (partial business/personal) Should Have
BKP-018 System shall support bulk categorization of similar transactions Should Have

Standard Categories (Tax-Oriented):

Category Tax Schedule/Line Notes
Advertising Schedule C Line 8 Marketing, promotions
Bank Fees Schedule C Line 27a Service charges, wire fees
Car and Truck Schedule C Line 9 Fuel, maintenance, parking
Contract Labor Schedule C Line 11 1099 contractors
Insurance Schedule C Line 15 Business insurance premiums
Interest Schedule C Line 16 Business loan interest
Legal and Professional Schedule C Line 17 Attorney, accountant fees
Office Expense Schedule C Line 18 Supplies, software subscriptions
Rent Schedule C Line 20b Office/equipment rent
Repairs and Maintenance Schedule C Line 21 Equipment repairs
Supplies Schedule C Line 22 Materials, inventory
Taxes and Licenses Schedule C Line 23 Business licenses, permits
Travel Schedule C Line 24a Flights, hotels, transportation
Meals Schedule C Line 24b Business meals (50% deductible)
Utilities Schedule C Line 25 Electric, internet, phone
Wages Schedule C Line 26 Employee payroll
Other Expense Schedule C Line 27a Miscellaneous deductible
Owner Draw N/A Not deductible, equity reduction
Personal N/A Not deductible, flag for review
Transfer N/A Between accounts, not categorized
Income Various Revenue deposits

3.3 Monthly Workflow

ID Requirement Priority
BKP-020 System shall track bookkeeping status per client per month Must Have
BKP-021 System shall notify client when statements are due Should Have
BKP-022 System shall notify staff when statements are received Must Have
BKP-023 System shall provide dashboard showing all clients by monthly status Must Have
BKP-024 System shall support month-end deadline tracking Should Have

Workflow States:

State Description Owner
Awaiting Statements Month open, no statements uploaded Client
Statements Received Statements uploaded, pending extraction System
Extraction Complete Transactions extracted, pending categorization System
Categorization Review AI categorized, pending human review Staff
Ready for Reconciliation Categorization approved, pending balance check Staff
Reconciled Month balanced and closed Staff
Exported Data sent to QuickBooks System

3.4 Reconciliation (Phase 2)

ID Requirement Priority
BKP-030 System shall track expected vs actual transaction count per statement Phase 2
BKP-031 System shall calculate running balance from transactions Phase 2
BKP-032 System shall compare calculated balance to statement ending balance Phase 2
BKP-033 System shall flag reconciliation discrepancies for review Phase 2
BKP-034 System shall support marking month as "reconciled" after review Phase 2
BKP-035 System shall prevent edits to reconciled months without explicit unlock Phase 2
BKP-036 System shall track reconciliation history with timestamps Phase 2

3.5 Reporting

ID Requirement Priority
BKP-040 System shall generate monthly transaction summary by category Must Have
BKP-041 System shall generate year-to-date expense summary Must Have
BKP-042 System shall generate uncategorized transaction report Must Have
BKP-043 System shall flag year-over-year category variances Should Have
BKP-044 System shall generate tax-ready annual summary by category Must Have

3.6 Full Bookkeeping (Phase 3)

ID Requirement Priority
BKP-050 System shall support custom chart of accounts per client Phase 3
BKP-051 System shall generate Profit & Loss statement Phase 3
BKP-052 System shall generate Balance Sheet Phase 3
BKP-053 System shall support journal entries Phase 3
BKP-054 System shall support accounts receivable tracking Phase 3
BKP-055 System shall support accounts payable tracking Phase 3
BKP-056 System shall support accrual basis accounting Phase 3

4. Integration Requirements

4.1 QuickBooks Integration

ID Requirement Priority
QBO-001 System shall integrate with QuickBooks Online API Must Have
QBO-002 Integration shall support OAuth 2.0 authentication Must Have
QBO-003 Integration shall export categorized transactions to QuickBooks Must Have
QBO-004 Integration shall map internal categories to QuickBooks chart of accounts Must Have
QBO-005 Integration shall prevent duplicate transaction exports Must Have
QBO-006 Integration shall log all sync activity for audit Must Have
QBO-007 Integration shall handle API rate limits gracefully Must Have
QBO-008 Integration shall support QuickBooks Desktop export via IIF file Should Have
QBO-009 Integration shall support two-way sync Phase 3

QuickBooks Connection Flow:

  1. Staff initiates QuickBooks connection for client
  2. Client authorizes via OAuth (QuickBooks login)
  3. System retrieves chart of accounts for category mapping
  4. Staff maps internal categories to QuickBooks accounts
  5. System exports transactions monthly after reconciliation

4.2 Bank Feed Integration (Future)

ID Requirement Priority
PLD-001 System shall integrate with Plaid API for direct bank feeds Future
PLD-002 Integration shall support automated daily transaction retrieval Future
PLD-003 Integration shall support client bank linking via Plaid Link Future
PLD-004 Integration shall fall back to manual upload if Plaid unavailable Future
PLD-005 Integration shall handle Plaid token refresh automatically Future

Note: Plaid adds ~$50-200/month depending on connected accounts. Manual PDF upload is the initial approach; Plaid is a future enhancement for clients who want automation.


5. AI Capabilities

5.1 Transaction Categorization

ID Requirement Priority
AIT-001 AI shall categorize bank transactions by expense type Must Have
AIT-002 AI shall assign confidence score (0-100%) to each categorization Must Have
AIT-003 AI shall learn from user corrections per client Should Have
AIT-004 AI shall detect recurring transactions (same vendor, similar amount) Should Have
AIT-005 AI shall flag unusual transactions (large amounts, new vendors) Should Have
AIT-006 AI shall suggest category based on vendor name matching Must Have
AIT-007 AI shall handle split transactions (suggest business vs personal split) Should Have
AIT-008 AI shall maintain per-client vendor-to-category mappings Should Have

5.2 Statement Extraction

ID Requirement Priority
AIT-010 AI shall extract transaction date, description, and amount from statements Must Have
AIT-011 AI shall identify statement date range and ending balance Must Have
AIT-012 AI shall handle multi-page statements Must Have
AIT-013 AI shall flag low-quality scans for re-upload Should Have
AIT-014 AI shall normalize vendor names (remove transaction IDs, standardize) Should Have

5.3 Model Selection

Task Recommended Model Rationale
Statement OCR/extraction Claude Sonnet Structured output, accuracy critical
Transaction categorization Claude Haiku High volume, simpler task
Anomaly detection Claude Sonnet Pattern recognition
Complex categorization (splits) Claude Sonnet Reasoning required

6. Cost Analysis

6.1 Infrastructure Costs

Bookkeeping shares infrastructure with Tax Practice AI. Incremental costs:

Component Monthly Estimate Notes
Aurora storage +$5-10 Transaction data
S3 storage +$2-5 Statement PDFs
AI/Bedrock +$50-150 Extraction + categorization
Subtotal $57-165 Per 50 bookkeeping clients

6.2 Third-Party Costs

Service Cost Notes
QuickBooks Online API $0 Included with QBO subscription (client pays)
Plaid (future) $0.30-1.00/account/month Direct bank feeds

6.3 Per-Client Cost Estimate

Volume AI Cost/Month Notes
~50 transactions $1-3 Small business, one account
~200 transactions $3-8 Medium business, multiple accounts
~500+ transactions $8-15 Larger business

7. Implementation Phases

Phase 1: Tax-Ready Categorization (MVP)

Scope: - Bank statement upload (PDF) - AI transaction extraction - AI categorization with human review - Monthly transaction reports - QuickBooks Online export (one-way)

Target: Available with main Tax Practice AI launch

Phase 2: Reconciliation

Scope: - Bank balance reconciliation - Recurring transaction detection - Reconciliation locking - Enhanced reporting

Target: Post-launch enhancement

Phase 3: Full Bookkeeping

Scope: - Custom chart of accounts - Journal entries - P&L and Balance Sheet - A/R and A/P tracking - Two-way QuickBooks sync - Plaid integration

Target: Based on client demand


Appendix A: Database Schema (Phase 1)

bookkeeping_accounts       -- Bank accounts per client
├── id
├── client_id (FK)
├── account_name
├── account_type (checking, savings, credit)
├── institution_name
├── last_4_digits
├── created_at
└── is_active

bookkeeping_statements     -- Uploaded bank statements
├── id
├── account_id (FK)
├── statement_month (YYYY-MM)
├── statement_start_date
├── statement_end_date
├── ending_balance
├── s3_key
├── extraction_status
├── uploaded_at
└── extracted_at

bookkeeping_transactions   -- Extracted transactions
├── id
├── statement_id (FK)
├── transaction_date
├── description_raw
├── description_normalized
├── amount
├── transaction_type (debit, credit)
├── category_id (FK)
├── category_confidence
├── is_reviewed
├── reviewed_by
├── reviewed_at
├── is_recurring
├── recurring_group_id
└── notes

bookkeeping_categories     -- Category definitions
├── id
├── name
├── tax_line
├── is_deductible
├── is_system (vs custom)
└── parent_category_id

bookkeeping_category_rules -- Per-client learned rules
├── id
├── client_id (FK)
├── vendor_pattern
├── category_id (FK)
├── confidence_boost
└── created_from_correction

bookkeeping_months         -- Monthly status tracking
├── id
├── client_id (FK)
├── month (YYYY-MM)
├── status
├── statements_expected
├── statements_received
├── transactions_total
├── transactions_categorized
├── transactions_reviewed
├── reconciled_at
├── reconciled_by
├── exported_at
└── qbo_sync_id

Document History

Version Date Author Changes
1.0 Draft December 23, 2025 [Author] Initial bookkeeping requirements

This document is a companion to tax_practice_ai_requirements.md and defines the bookkeeping module as a separate phase of the Tax Practice AI system.