コンテンツにスキップ

コスト基準計算方法

対応メソッド

メソッドID備考
First In, First OutFIFO🌍最も古いロットから売却(IRS デフォルト)
Last In, First OutLIFO🌍Specific ID が必要(IRS)
Highest In, First OutHIFO🌍Specific ID が必要(IRS)
Specific IDSPECIFIC_ID🌍ロットの手動選択
Germany FIFOGERMANY_FIFO🇩🇪§23 EStG、1年保有で非課税
PMPAPMPA🇫🇷加重平均(フランス)
Total AverageTOTAL_AVERAGE🌍平均コスト基準
UK Share PoolingUK_SHARE_POOLING🇬🇧Section 104 プール + 30日ルール
AU CGT DiscountAU_CGT_DISCOUNT🇦🇺FIFO + 長期譲渡益に 50% 割引(ATO s.115)
CA ACBCA_ACB🇨🇦加重平均調整原価(CRA IT-387R2)
KR Virtual AssetKR_VIRTUAL_ASSET🇰🇷FIFO;一律 22% + 250万ウォン控除(レポート層)
IN VDAIN_VDA🇮🇳FIFO;損失控除不可(s.115BBH)
ES CGTES_CGT🇪🇸FIFO;累進税率 19–27%(レポート層)

IRS に関する注記

IRS は仮想通貨に対して FIFOSpecific Identification を認めています(Rev. Rul. 2023-14)。LIFO と HIFO は技術的には Specific ID 戦略であり、ロットレベルの記録を維持し、選択した方法を一貫して適用する必要があります。

使用方法(コードブロック — 翻訳しない)

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

結果の型

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