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.

Ask about this site

Ask me anything about Connor's projects, posts, or curated links.