Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Calculate cryptocurrency tax obligations with cost basis tracking, capital gains computation, and Form 8949 generation. Use when calculating crypto taxes, generating tax reports, comparing cost basis methods, or identifying taxable events. Trigger with phrases like "calculate crypto taxes", "generate tax report", "cost basis FIFO", "capital gains", "Form 8949", or "crypto taxable events".
.claude/skills/jeremylongshore-calculating-crypto-taxes/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -34% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -3% | 0% |
Calculate cryptocurrency tax obligations from transaction history. Supports FIFO, LIFO, and HIFO cost basis methods, identifies taxable events (trades, staking, airdrops), and generates Form 8949 compatible reports.
DISCLAIMER: This tool provides informational calculations only, not tax advice. Consult a qualified tax professional.
| Exchange | Export Location | |----------|-----------------| | Coinbase | Reports > Tax documents > Transaction history CSV | | Binance | Orders > Trade History > Export | | Kraken | History > Export | | Generic | See ${CLAUDE_SKILL_DIR}/references/exchange_formats.md for column mapping |
bash python ${CLAUDE_SKILL_DIR}/scripts/tax_calculator.py --transactions your_trades.csv --year 2025 # 2025 = tax year
bash python ${CLAUDE_SKILL_DIR}/scripts/tax_calculator.py --transactions trades.csv --compare-methods
Methods: --method fifo (IRS default), --method lifo (Last In First Out), --method hifo (minimize gains)
bash python ${CLAUDE_SKILL_DIR}/scripts/tax_calculator.py --transactions trades.csv --method fifo --year 2025 --output form_8949.csv --format csv # 2025 = tax year
bash python ${CLAUDE_SKILL_DIR}/scripts/tax_calculator.py --transactions all_events.csv --income-report
bash python ${CLAUDE_SKILL_DIR}/scripts/tax_calculator.py --transactions coinbase.csv binance.csv kraken.csv --year 2025 # 2025 = tax year
Reports include short-term and long-term capital gains/losses broken down by transaction, with proceeds, cost basis, and gain/loss per disposal. Summary shows total proceeds, total cost basis, net capital gain, and short/long-term split. Income report lists staking, airdrop, and mining income with fair market values.
See ${CLAUDE_SKILL_DIR}/references/implementation.md for detailed output format examples.
| Error | Cause | Fix | |-------|-------|-----| | Missing columns | CSV format mismatch | Verify format matches exchange template | | Unknown transaction type | Unrecognized event category | Review and manually categorize | | Insufficient lots | Missing buy transactions | Check for missing imports or transfers |
Basic FIFO tax calculation - Standard IRS-default method for a single exchange:
bashpython tax_calculator.py --transactions trades.csv --year 2025 # 2025 = tax year
HIFO to minimize gains - Highest-cost lots disposed first to reduce taxable gain:
bashpython tax_calculator.py --transactions trades.csv --method hifo --year 2025 # 2025 = tax year
JSON output for processing - Machine-readable export for tax software integration:
bashpython tax_calculator.py --transactions trades.csv --format json --output tax_data.json
Verbose with lot details - See which specific lots were matched to each disposal:
bashpython tax_calculator.py --transactions trades.csv --verbose --show-lots
${CLAUDE_SKILL_DIR}/references/implementation.md - Detailed output formats, configuration, advanced usage| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→pass | 7,803 | 3,008 | -61% | 1 | 1 | 0% | 1,322 | 1,623 | +23% | 0 | 0 | — |
case-01 | fail→pass | 11,584 | 3,903 | -66% | 1 | 1 | 0% | 2,226 | 1,477 | -34% | 0 | 0 | — |
case-02 | fail→fail | 41,638 | 6,694 | -84% | 1 | 1 | 0% | 4,891 | 2,297 | -53% | 0 | 0 | — |
case-03 | fail→pass | 10,087 | 7,326 | -27% | 1 | 1 | 0% | 1,780 | 2,266 | +27% | 0 | 0 | — |
case-04 | fail→pass | 7,907 | 2,795 | -65% | 1 | 1 | 0% | 1,289 | 1,487 | +15% | 0 | 0 | — |
case-05 | fail→pass | 8,925 | 3,211 | -64% | 1 | 1 | 0% | 1,504 | 1,462 | -3% | 0 | 0 | — |
case-07 | pass→pass | 9,673 | 2,801 | -71% | 1 | 1 | 0% | 1,454 | 1,372 | -6% | 0 | 0 | — |
case-08 | fail→pass | 9,249 | 2,314 | -75% | 1 | 1 | 0% | 1,506 | 1,272 | -16% | 0 | 0 | — |
case-09 | fail→pass | 11,119 | 2,213 | -80% | 1 | 1 | 0% | 1,756 | 1,356 | -23% | 0 | 0 | — |
case-10 | pass→pass | 6,428 | 2,289 | -64% | 1 | 1 | 0% | 830 | 1,344 | +62% | 0 | 0 | — |
case-11 | pass→pass | 12,955 | 7,465 | -42% | 1 | 1 | 0% | 2,270 | 2,280 | +0% | 0 | 0 | — |
case-12 | fail→pass | 10,996 | 2,758 | -75% | 1 | 1 | 0% | 1,818 | 1,548 | -15% | 0 | 0 | — |
case-13 | pass→pass | 9,617 | 2,506 | -74% | 1 | 1 | 0% | 1,498 | 1,388 | -7% | 0 | 0 | — |
case-14 | fail→pass | 9,064 | 2,076 | -77% | 1 | 1 | 0% | 1,449 | 1,252 | -14% | 0 | 0 | — |
case-15 | pass→pass | 9,494 | 2,947 | -69% | 1 | 1 | 0% | 1,593 | 1,480 | -7% | 0 | 0 | — |
case-21 | fail→fail | 18,041 | 16,762 | -7% | 1 | 1 | 0% | 3,511 | 4,434 | +26% | 0 | 0 | — |
case-16 | pass→pass | 8,091 | 2,843 | -65% | 1 | 1 | 0% | 1,243 | 1,391 | +12% | 0 | 0 | — |
case-17 | fail→pass | 8,265 | 2,809 | -66% | 1 | 1 | 0% | 1,399 | 1,453 | +4% | 0 | 0 | — |
case-18 | pass→pass | 7,937 | 3,600 | -55% | 1 | 1 | 0% | 1,452 | 1,523 | +5% | 0 | 0 | — |
case-19 | pass→pass | 7,204 | 2,475 | -66% | 1 | 1 | 0% | 1,208 | 1,320 | +9% | 0 | 0 | — |
case-20 | fail→fail | 17,889 | 13,935 | -22% | 1 | 1 | 0% | 3,401 | 3,806 | +12% | 0 | 0 | — |
case-22 | fail→fail | 17,498 | 17,142 | -2% | 1 | 1 | 0% | 3,138 | 4,201 | +34% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.