Skip to content
Back to skills

2036 Errors 6a61dadb

ASecurity

Comprehensive error handling guide for the Crypto Tax Calculator. ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationpythongobashaws

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2036-errors_6a61dadb --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2036 Errors 6a61dadb?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2036 Errors 6a61dadb
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2036-errors-6a61dadb/badge)](https://www.skillsdirectory.com/skills/tools-only-2036-errors-6a61dadb)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Error Handling Reference

Comprehensive error handling guide for the Crypto Tax Calculator.

---

## File Errors

### CSV File Not Found

**Error**: Cannot find transaction CSV file

**Symptoms**:
```
Error: Transaction file not found: /path/to/trades.csv
```

**Causes**:
- Incorrect file path
- File moved or deleted
- Typo in filename

**Solutions**:
1. Verify the file path is correct
2. Use absolute path or path relative to current directory
3. Check file exists: `ls -la /path/to/trades.csv`

---

### Invalid CSV Format

**Error**: Cannot parse CSV file

**Symptoms**:
```
Error: No headers found in trades.csv
Warning: Row 15 skipped: Cannot parse date
```

**Causes**:
- Missing header row
- Inconsistent delimiters
- Encoding issues

**Solutions**:
1. Verify CSV has header row
2. Check delimiter (comma, semicolon, tab)
3. Convert to UTF-8 encoding if needed
4. Open in spreadsheet app and re-export

---

### Unknown Exchange Format

**Error**: Cannot auto-detect exchange format

**Symptoms**:
```
Warning: Unknown exchange format, using generic parser
```

**Causes**:
- Non-standard CSV column names
- Custom export format

**Solutions**:
1. Specify exchange format: `--exchange coinbase`
2. Use generic format with mapped columns
3. Check `references/exchange_formats.md` for column requirements

---

## Data Validation Errors

### Missing Required Columns

**Error**: CSV missing required fields

**Symptoms**:
```
Error: Missing required column: date
Error: Missing required column: quantity
```

**Causes**:
- Incomplete export from exchange
- Wrong export type selected

**Solutions**:
1. Re-export from exchange with all fields
2. Select "Transaction History" not "Account Statement"
3. Manually add missing columns if data available

---

### Invalid Date Format

**Error**: Cannot parse transaction date

**Symptoms**:
```
Warning: Row 15 skipped: Cannot parse date: 15/01/2025
```

**Causes**:
- Unexpected date format
- Regional date format (DD/MM vs MM/DD)

**Solutions**:
1. Tool tries multiple formats automatically
2. Standardize to ISO format: YYYY-MM-DD
3. Check locale settings in export

**Supported Formats**:
- `2025-01-15` (ISO)
- `2025-01-15T10:30:00Z` (ISO with time)
- `01/15/2025` (US)
- `15/01/2025` (EU - attempted)

---

### Invalid Quantity or Price

**Error**: Cannot parse numeric values

**Symptoms**:
```
Warning: Row 20 skipped: Invalid quantity value
```

**Causes**:
- Text in numeric field
- Currency symbols not stripped
- Thousands separator issues

**Solutions**:
1. Remove currency symbols ($, €)
2. Use period for decimal separator
3. Remove thousands separators or use consistent format

---

## Cost Basis Errors

### Insufficient Lots for Disposal

**Error**: Trying to sell more than available

**Symptoms**:
```
Error: Cannot dispose 1.5 BTC - only 1.0 available
```

**Causes**:
- Missing buy transactions
- Transactions not in chronological order
- Transfer not recorded as acquisition

**Solutions**:
1. Check for missing buy transactions
2. Verify all exchange imports included
3. Add transfer-in as manual acquisition
4. Record cost basis for transferred coins

---

### Missing Price for Transaction

**Error**: Cannot calculate cost basis without price

**Symptoms**:
```
Warning: Missing price for buy on 2024-03-15, skipping lot creation
Warning: Missing price for sell on 2024-06-20, skipping disposal
```

**Causes**:
- Exchange didn't include price in export
- Historical price lookup not available

**Solutions**:
1. Add price column manually
2. Look up historical price on CoinGecko/CoinMarketCap
3. Use `--verbose` to see which transactions need prices

---

## Report Generation Errors

### Output File Permission Denied

**Error**: Cannot write output file

**Symptoms**:
```
Error: Permission denied: /path/to/report.csv
```

**Causes**:
- Directory doesn't exist
- No write permission
- File locked by another program

**Solutions**:
1. Create output directory first
2. Check directory permissions
3. Close any programs using the file

---

## Graceful Degradation

The calculator implements graceful degradation:

```
Full Calculation (all transactions)
     │
     ├─► Missing price → Skip lot/disposal with warning
     │         │
     │         ▼
     │    Continue with available data
     │
     ├─► Unknown type → Categorize as "other"
     │         │
     │         ▼
     │    Show warning, skip tax calculation
     │
     └─► Insufficient lots → Dispose available amount
               │
               ▼
          Show warning with discrepancy
```

---

## Diagnostic Commands

### Validate CSV File

```bash
# Check CSV structure
head -5 trades.csv

# Count rows
wc -l trades.csv

# Check for encoding issues
file trades.csv
```

### Test Transaction Parsing

```bash
# Parse and show first 10 transactions
python transaction_parser.py trades.csv -v
```

### Test Cost Basis Engine

```bash
# Run with verbose output
python tax_calculator.py --transactions trades.csv --verbose
```

---

## Common Issues

### Issue: No Transactions Found

**Causes**:
- Empty CSV file
- All rows failed validation
- Year filter excluded all transactions

**Diagnosis**:
```bash
python tax_calculator.py --transactions trades.csv --verbose
# Check for validation warnings
```

### Issue: All Gains Are Short-Term

**Causes**:
- Missing acquisition dates
- Transactions all within 1 year

**Diagnosis**:
```bash
python tax_calculator.py --transactions trades.csv --show-lots
# Verify lot acquisition dates
```

### Issue: Method Comparison Shows Same Results

**Causes**:
- Only one lot per asset
- All lots have same cost basis

**Explanation**:
Different methods only produce different results when multiple lots exist with different cost bases.

---

## Exchange Format Troubleshooting

### Coinbase

**Export**: Reports → Tax documents → Transaction history CSV

**Common Issues**:
- "Coinbase Pro" vs "Coinbase" different formats
- "Advanced Trade" transactions need separate export

### Binance

**Export**: Orders → Trade History → Export

**Common Issues**:
- No price column (requires manual price lookup)
- "Dust" conversions may be missing

### Kraken

**Export**: History → Export

**Common Issues**:
- Asset symbols like "XXBT" (map to BTC)
- Multiple currencies may be included

---

## Tax Disclaimer

**IMPORTANT**: This tool provides informational calculations only. It is not tax advice.

- Tax laws vary by jurisdiction
- Consult a qualified tax professional
- Keep original records for audit
- Rules change - verify current regulations

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.