PRD: Crypto Tax Calculator
Summary
One-liner: Calculate cryptocurrency tax obligations with cost basis tracking, capital gains computation, and jurisdiction-aware reporting.
Domain: Cryptocurrency / Tax Compliance
Users: Individual Traders, Tax Professionals, Accountants
Problem Statement
Cryptocurrency tax compliance is complex due to:
- Multiple taxable event types (trades, staking, airdrops, DeFi yields)
- Various cost basis methods (FIFO, LIFO, HIFO, specific ID)
- Short-term vs long-term capital gains distinctions
- Transaction data scattered across multiple exchanges/wallets
- Jurisdiction-specific rules varying by country
Users need a tool that parses transaction history, calculates cost basis accurately, identifies taxable events, and generates tax-ready reports.
User Personas
Persona 1: Individual Trader (Alex)
- Profile: Active crypto trader with 100+ transactions/year across 3-5 exchanges
- Pain Points: Manual tracking is error-prone, multiple exchange exports, uncertain about DeFi taxation
- Goals: Accurate tax calculations, minimize tax liability legally, generate Form 8949
Persona 2: Tax Professional (Morgan)
- Profile: CPA with multiple crypto clients
- Pain Points: Each client uses different exchanges/wallets, needs audit-ready documentation
- Goals: Batch processing, clear audit trail, jurisdiction flexibility
Persona 3: DeFi User (Jordan)
- Profile: Yield farmer with staking, liquidity provision, token swaps
- Pain Points: Complex DeFi transactions, unclear tax treatment, multiple protocols
- Goals: Accurate categorization of DeFi events, cost basis for LP tokens
User Stories
US-1: Import Transaction History (Critical)
As a trader
I want to import my transaction history from exchange CSV exports
So that I can calculate taxes without manual entry
Acceptance Criteria:
- Supports Coinbase, Binance, Kraken CSV formats
- Handles generic CSV with configurable column mapping
- Validates required fields (date, type, asset, quantity, price)
- Reports import errors with line numbers
US-2: Calculate Cost Basis (Critical)
As a trader
I want to calculate cost basis using my preferred method
So that I can optimize my tax liability legally
Acceptance Criteria:
- Supports FIFO, LIFO, HIFO, specific identification
- Tracks lot-level cost basis
- Handles partial disposals correctly
- Shows comparison across methods
US-3: Generate Tax Report (Critical)
As a trader
I want to generate a tax report in Form 8949 format
So that I can file my taxes or give to my accountant
Acceptance Criteria:
- Separates short-term and long-term gains
- Calculates total gains/losses per category
- Outputs CSV compatible with tax software
- Includes summary totals
US-4: Identify Taxable Events (High)
As a DeFi user
I want to identify all taxable events including staking rewards
So that I don't miss reportable income
Acceptance Criteria:
- Flags trades, swaps, sells as disposals
- Identifies staking/yield as income at fair market value
- Detects airdrops as income
- Marks transfers (non-taxable) separately
US-5: Multi-Year Analysis (Medium)
As a tax professional
I want to analyze multiple tax years
So that I can handle amended returns or multi-year audits
Acceptance Criteria:
- Filter transactions by tax year
- Carry forward cost basis across years
- Generate year-over-year comparison
- Track wash sale implications
Functional Requirements
REQ-1: Transaction Import
- Parse CSV exports from major exchanges (Coinbase, Binance, Kraken, Gemini)
- Support generic CSV with column mapping configuration
- Handle transaction types: buy, sell, trade, transfer, deposit, withdrawal, staking, airdrop
- Validate and normalize data (timestamps, symbols, quantities)
REQ-2: Cost Basis Calculation
- Implement FIFO (First In First Out) - IRS default
- Implement LIFO (Last In First Out)
- Implement HIFO (Highest In First Out) - minimize gains
- Implement Specific Identification (manual lot selection)
- Track acquisition date and cost per lot
- Handle fees (add to cost basis on buy, reduce proceeds on sell)
REQ-3: Gains/Losses Calculation
- Calculate realized gains/losses per disposal
- Determine holding period (< 1 year = short-term, >= 1 year = long-term)
- Apply wash sale rules where applicable
- Sum by category (short-term gains, short-term losses, long-term gains, long-term losses)
REQ-4: Income Recognition
- Fair market value lookup for staking rewards at receipt time
- Airdrop valuation at receipt time
- Mining/yield income categorization
- DeFi reward tracking
REQ-5: Report Generation
- Form 8949 format (Date Acquired, Date Sold, Proceeds, Cost Basis, Gain/Loss)
- Summary by category
- Export to CSV for tax software import
- JSON output for programmatic use
API Integrations
- CoinGecko Historical API: Historical prices for cost basis and FMV
- Local CSV Import: Exchange export files (no API needed)
Non-Goals
- Real-time portfolio tracking (see crypto-portfolio-tracker)
- Exchange API integration for automatic import (privacy/security)
- Tax filing submission (generates reports for manual/software filing)
- Legal tax advice (informational tool only)
Success Metrics
- Skill activates on tax-related trigger phrases
- Imports common exchange CSV formats without errors
- Calculates gains/losses matching manual verification
- Generates valid Form 8949 format output
Technical Constraints
- Python 3.8+ with standard library (csv, json, datetime)
- Optional: requests for historical price lookups
- No exchange API credentials stored
- Works offline for basic calculations
Risk Assessment
| Risk |
Probability |
Impact |
Mitigation |
| Incorrect tax calculations |
Medium |
High |
Extensive validation, disclaimers |
| Missing taxable events |
Medium |
High |
Clear documentation of supported events |
| Historical price API unavailable |
Low |
Medium |
Fallback to manual price entry |
| Jurisdiction mismatch |
Medium |
Medium |
US-focused with clear documentation |
Examples
Example 1: Basic Tax Report
python tax_calculator.py --transactions trades.csv --method fifo --year 2025 --output tax_report.csv
Example 2: Cost Basis Comparison
python tax_calculator.py --transactions trades.csv --compare-methods
Example 3: DeFi Income Report
python tax_calculator.py --transactions all_transactions.csv --income-report
Version History
| Version |
Date |
Author |
Changes |
| 1.0.0 |
2026-01-14 |
Jeremy Longshore |
Initial PRD |
1---2name: 027-prd-83bde5c13description: PRD: Crypto Tax Calculator4---5# PRD: Crypto Tax Calculator67## Summary89**One-liner**: Calculate cryptocurrency tax obligations with cost basis tracking, capital gains computation, and jurisdiction-aware reporting.1011**Domain**: Cryptocurrency / Tax Compliance12**Users**: Individual Traders, Tax Professionals, Accountants1314## Problem Statement1516Cryptocurrency tax compliance is complex due to:17- Multiple taxable event types (trades, staking, airdrops, DeFi yields)18- Various cost basis methods (FIFO, LIFO, HIFO, specific ID)19- Short-term vs long-term capital gains distinctions20- Transaction data scattered across multiple exchanges/wallets21- Jurisdiction-specific rules varying by country2223Users need a tool that parses transaction history, calculates cost basis accurately, identifies taxable events, and generates tax-ready reports.2425## User Personas2627### Persona 1: Individual Trader (Alex)28- **Profile**: Active crypto trader with 100+ transactions/year across 3-5 exchanges29- **Pain Points**: Manual tracking is error-prone, multiple exchange exports, uncertain about DeFi taxation30- **Goals**: Accurate tax calculations, minimize tax liability legally, generate Form 89493132### Persona 2: Tax Professional (Morgan)33- **Profile**: CPA with multiple crypto clients34- **Pain Points**: Each client uses different exchanges/wallets, needs audit-ready documentation35- **Goals**: Batch processing, clear audit trail, jurisdiction flexibility3637### Persona 3: DeFi User (Jordan)38- **Profile**: Yield farmer with staking, liquidity provision, token swaps39- **Pain Points**: Complex DeFi transactions, unclear tax treatment, multiple protocols40- **Goals**: Accurate categorization of DeFi events, cost basis for LP tokens4142## User Stories4344### US-1: Import Transaction History (Critical)45**As a** trader46**I want to** import my transaction history from exchange CSV exports47**So that** I can calculate taxes without manual entry4849**Acceptance Criteria**:50- Supports Coinbase, Binance, Kraken CSV formats51- Handles generic CSV with configurable column mapping52- Validates required fields (date, type, asset, quantity, price)53- Reports import errors with line numbers5455### US-2: Calculate Cost Basis (Critical)56**As a** trader57**I want to** calculate cost basis using my preferred method58**So that** I can optimize my tax liability legally5960**Acceptance Criteria**:61- Supports FIFO, LIFO, HIFO, specific identification62- Tracks lot-level cost basis63- Handles partial disposals correctly64- Shows comparison across methods6566### US-3: Generate Tax Report (Critical)67**As a** trader68**I want to** generate a tax report in Form 8949 format69**So that** I can file my taxes or give to my accountant7071**Acceptance Criteria**:72- Separates short-term and long-term gains73- Calculates total gains/losses per category74- Outputs CSV compatible with tax software75- Includes summary totals7677### US-4: Identify Taxable Events (High)78**As a** DeFi user79**I want to** identify all taxable events including staking rewards80**So that** I don't miss reportable income8182**Acceptance Criteria**:83- Flags trades, swaps, sells as disposals84- Identifies staking/yield as income at fair market value85- Detects airdrops as income86- Marks transfers (non-taxable) separately8788### US-5: Multi-Year Analysis (Medium)89**As a** tax professional90**I want to** analyze multiple tax years91**So that** I can handle amended returns or multi-year audits9293**Acceptance Criteria**:94- Filter transactions by tax year95- Carry forward cost basis across years96- Generate year-over-year comparison97- Track wash sale implications9899## Functional Requirements100101### REQ-1: Transaction Import102- Parse CSV exports from major exchanges (Coinbase, Binance, Kraken, Gemini)103- Support generic CSV with column mapping configuration104- Handle transaction types: buy, sell, trade, transfer, deposit, withdrawal, staking, airdrop105- Validate and normalize data (timestamps, symbols, quantities)106107### REQ-2: Cost Basis Calculation108- Implement FIFO (First In First Out) - IRS default109- Implement LIFO (Last In First Out)110- Implement HIFO (Highest In First Out) - minimize gains111- Implement Specific Identification (manual lot selection)112- Track acquisition date and cost per lot113- Handle fees (add to cost basis on buy, reduce proceeds on sell)114115### REQ-3: Gains/Losses Calculation116- Calculate realized gains/losses per disposal117- Determine holding period (< 1 year = short-term, >= 1 year = long-term)118- Apply wash sale rules where applicable119- Sum by category (short-term gains, short-term losses, long-term gains, long-term losses)120121### REQ-4: Income Recognition122- Fair market value lookup for staking rewards at receipt time123- Airdrop valuation at receipt time124- Mining/yield income categorization125- DeFi reward tracking126127### REQ-5: Report Generation128- Form 8949 format (Date Acquired, Date Sold, Proceeds, Cost Basis, Gain/Loss)129- Summary by category130- Export to CSV for tax software import131- JSON output for programmatic use132133## API Integrations134135- **CoinGecko Historical API**: Historical prices for cost basis and FMV136- **Local CSV Import**: Exchange export files (no API needed)137138## Non-Goals139140- Real-time portfolio tracking (see crypto-portfolio-tracker)141- Exchange API integration for automatic import (privacy/security)142- Tax filing submission (generates reports for manual/software filing)143- Legal tax advice (informational tool only)144145## Success Metrics146147- Skill activates on tax-related trigger phrases148- Imports common exchange CSV formats without errors149- Calculates gains/losses matching manual verification150- Generates valid Form 8949 format output151152## Technical Constraints153154- Python 3.8+ with standard library (csv, json, datetime)155- Optional: requests for historical price lookups156- No exchange API credentials stored157- Works offline for basic calculations158159## Risk Assessment160161| Risk | Probability | Impact | Mitigation |162|------|-------------|--------|------------|163| Incorrect tax calculations | Medium | High | Extensive validation, disclaimers |164| Missing taxable events | Medium | High | Clear documentation of supported events |165| Historical price API unavailable | Low | Medium | Fallback to manual price entry |166| Jurisdiction mismatch | Medium | Medium | US-focused with clear documentation |167168## Examples169170### Example 1: Basic Tax Report171```bash172python tax_calculator.py --transactions trades.csv --method fifo --year 2025 --output tax_report.csv173```174175### Example 2: Cost Basis Comparison176```bash177python tax_calculator.py --transactions trades.csv --compare-methods178```179180### Example 3: DeFi Income Report181```bash182python tax_calculator.py --transactions all_transactions.csv --income-report183```184185## Version History186187| Version | Date | Author | Changes |188|---------|------|--------|---------|189| 1.0.0 | 2026-01-14 | Jeremy Longshore | Initial PRD |