1099 Tax Deduction Tool

[COMPLETE]
December 6, 2025Python · HTML/JavaScript · Pandas · LocalStorage

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:

  1. Python consolidation script - Merges CSVs from different banks into a unified format
  2. Browser-based review tool - Interactive interface to mark and export deductions

Tax review dashboard

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:

Load transaction data

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"

Vendor rules for auto-matching

  • Real-time stats - total expenses, income, flagged deductions
  • LocalStorage persistence - decisions survive browser refresh
  • CSV export - formatted for CPA review

The Workflow

  1. Download CSVs from each bank account
  2. Run `python process_statements.py` to consolidate
  3. Open `tax_review.html` and load the JSON output
  4. Review auto-flagged items, mark additional deductions
  5. 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.