Saltearse al contenido

Métodos de Base de Costo

Métodos compatibles

MétodoIDCumple IRSNotas
First In, First OutFIFO✅ PredeterminadoLos lotes más antiguos se venden primero
Last In, First OutLIFO⚠️ Specific IDDebe elegir Specific ID
Highest In, First OutHIFO⚠️ Specific IDDebe elegir Specific ID
Specific IDSPECIFIC_IDSelección manual de lotes
Germany FIFOGERMANY_FIFO🇩🇪§23 EStG, período de tenencia de 1 año
PMPAPMPA🇨🇦 🇦🇺Adjusted Cost Base
Total AverageTOTAL_AVERAGE🌍Base de costo promedio
UK Share PoolingUK_SHARE_POOLING🇬🇧Section 104 pool + regla de 30 días

Nota sobre el IRS

El IRS permite FIFO e Identificación Específica para cripto (Rev. Rul. 2023-14). LIFO y HIFO son técnicamente estrategias de Specific ID — debes mantener registros a nivel de lote y aplicar tu método de forma consistente.

Uso

import { computeGains, compareAllMethods } from '@dtax/tax-engine';
// Single method
const result = computeGains(transactions, {
method: 'FIFO',
taxYear: 2024,
});
// Compare all 7 comparable methods (excludes SPECIFIC_ID)
const comparison = compareAllMethods(transactions, 2024);
comparison.forEach(({ method, totalGain, recommendation }) => {
console.log(`${method}: $${totalGain} ${recommendation ? '← recommended' : ''}`);
});

Estructura del resultado

interface GainResult {
shortTermGain: number;
longTermGain: number;
totalGain: number;
disposals: Disposal[];
unrealizedGain?: number;
}