1099 Tax Deduction Tool
[COMPLETE]A personal finance tool that consolidates bank statements, auto-flags tax-deductible expenses, and provides an interactive browser-based review interface for CPA preparation.
The Problem
As a 1099 contractor, tax time means sifting through thousands of transactions across multiple accounts to find deductible business expenses. My CPA needs a clear list of what I'm claiming and why - but manually reviewing bank statements is tedious and error-prone.
The Solution
I built a two-part system:
- Python consolidation script - Merges CSVs from different banks into a unified format
- Browser-based review tool - Interactive interface to mark and export deductions

Data Pipeline
The consolidation script handles the messiness of different bank formats:
- AMEX Gold: MM/DD/YYYY dates, positive amounts are charges
- USAA Checking: YYYY-MM-DD dates, negative amounts are debits
- USAA Visa Credit: Different column names, mixed transaction types
Everything gets normalized into a standard schema with consistent dates, amounts, and transaction types (expense, income, transfer, fee, refund).
Smart Tax Flagging
The script automatically flags transactions with deduction potential based on:
Merchant matching for business tools I use:
- OpenAI, Anthropic/Claude, Cursor, GitHub, AWS
- Slack, Notion, Linear, Figma
- Domain registrars, hosting services
Category-based rules for:
- Business Services
- Electronics & Software
- Professional Development
- Auto & Transport (for business travel)
Each flag includes a confidence level: `likely`, `possible`, or `review`.
Interactive Review Interface
The HTML tool runs entirely in the browser - no server needed. Just load your JSON file and start reviewing:

Features include:
- Sortable table with all transaction details
- Checkbox system to mark items as deductible
- Percentage selector for partial business use (e.g., 50% of phone bill)
- Fuzzy vendor matching - handles variations like "ANTHROPIC" vs "Claude.ai"

- Real-time stats - total expenses, income, flagged deductions
- LocalStorage persistence - decisions survive browser refresh
- CSV export - formatted for CPA review
The Workflow
- Download CSVs from each bank account
- Run `python process_statements.py` to consolidate
- Open `tax_review.html` and load the JSON output
- Review auto-flagged items, mark additional deductions
- Export CSV and send to CPA
What used to take hours of spreadsheet work now takes about 30 minutes of focused review.
Technical Notes
- No dependencies for the review tool - single HTML file with vanilla JS
- Deduplication logic - prevents double-counting when transactions appear in multiple exports
- Audit trail - preserves original bank data alongside normalized fields
- ~40+ pre-configured merchants - immediate flagging for common SaaS subscriptions
Privacy First
Everything runs locally. Bank data never leaves my machine - no cloud services, no APIs, no data sharing. The tool is designed for personal use with complete control over sensitive financial information.