Aller au contenu

Méthodes de Coût de Base

Méthodes prises en charge

MéthodeIDPaysNotes
First In, First OutFIFO🌍Lots les plus anciens vendus en premier (défaut IRS)
Last In, First OutLIFO🌍Specific ID requis (IRS)
Highest In, First OutHIFO🌍Specific ID requis (IRS)
Specific IDSPECIFIC_ID🌍Sélection manuelle des lots
Germany FIFOGERMANY_FIFO🇩🇪§23 EStG, exonération après 1 an
PMPAPMPA🇫🇷Plus-value mobilière, moyenne pondérée
Total AverageTOTAL_AVERAGE🌍Coût de base moyen
UK Share PoolingUK_SHARE_POOLING🇬🇧Section 104 pool + règle des 30 jours
AU CGT DiscountAU_CGT_DISCOUNT🇦🇺FIFO + abattement 50 % sur les gains à long terme (ATO s.115)
CA ACBCA_ACB🇨🇦Coût de base ajusté pondéré (CRA IT-387R2)
KR Virtual AssetKR_VIRTUAL_ASSET🇰🇷FIFO ; taux forfaitaire 22 % + exonération 2,5 M KRW (couche rapport)
IN VDAIN_VDA🇮🇳FIFO ; pertes non déductibles (s.115BBH)
ES CGTES_CGT🇪🇸FIFO ; barème progressif 19–27 % (couche rapport)

Note IRS

L’IRS autorise FIFO et Specific Identification pour les cryptos (Rev. Rul. 2023-14). LIFO et HIFO sont techniquement des stratégies Specific ID — vous devez tenir des registres par lot et appliquer votre méthode de manière cohérente.

Utilisation

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

Structure du résultat

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