Skip to content

Quick Start

Install

Terminal window
npm install @dtax/tax-engine

Parse a CSV and compute gains

import { parseCsv, computeGains } from '@dtax/tax-engine';
import { readFileSync } from 'fs';
// 1. Parse a Coinbase CSV export
const csv = readFileSync('coinbase-export.csv', 'utf-8');
const { transactions } = parseCsv(csv, { format: 'coinbase' });
// 2. Compute capital gains using FIFO
const result = computeGains(transactions, { method: 'FIFO', taxYear: 2024 });
console.log(`Short-term gains: $${result.shortTermGain}`);
console.log(`Long-term gains: $${result.longTermGain}`);
console.log(`Total gain/loss: $${result.totalGain}`);

Auto-detect format

If you don’t know which exchange generated the CSV, omit the format option:

const { transactions, summary } = parseCsv(csv);
console.log(`Detected format: ${summary.format}`); // e.g. "coinbase"
console.log(`Parsed ${summary.parsed} transactions`);

Generate Form 8949

import { generateForm8949Csv } from '@dtax/tax-engine';
const form8949 = generateForm8949Csv(result.disposals, { taxYear: 2024 });
writeFileSync('form8949.csv', form8949);