譲渡所得税の試算ツール
30,000で買った資産を400日後に50,000で売ると、長期の譲渡益は20,000で、税率15%なら税額は3,000です。売却額、取得費、保有日数を入れると区分、税率、税額が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 売却収入
- 50,000
- 取得原価
- 30,000
- 譲渡益
- 20,000
- 保有期間区分
- long
- 税率(%)
- 15
- 譲渡益税
- 3,000
この計算ツールは、売却代金、取得原価、資産の保有日数を受け取り、譲渡益、その利益が短期か長期か、NIIT の付加税を含む適用税率、そして算出される納付税額を返します。
譲渡益、保有期間、税率の関係
譲渡益は、売却で受け取った金額から資産の取得費を引いたものです。このツールはまず譲渡益を求め、次に保有期間を確認します。保有日数が基準日数(初期設定は365日)を超えていれば長期となり、変更しない限り15%の長期税率が適用されます。超えていなければ短期となり、初期設定で37%の短期税率が適用されます。上乗せ税を入力した場合は、その税率が加算されます。たとえば30,000で買った資産を400日後に50,000で売ると、譲渡益20,000に15%がかかり、税額は3,000です。
税額を変えてしまうよくある間違い
1日早く売るだけで短期の税率になることがあるので、売る前に日数を確かめてください。初期設定の基準では、ちょうど365日はまだ短期です。損失が出た売却の税額は0で、マイナスにはなりません。初期設定の税率は出発点にすぎず、実際の課税年度のものではないため、適用される税率に置き換えてください。税額は端数処理前の譲渡益から計算するので、画面上の丸めで納税額が変わることはありません。結果は試算であり、税務上の助言ではありません。
活用例
売却前の税額試算
株式、暗号資産、不動産を売却する前に、譲渡益と納付税額を試算し、長期保有のしきい値を超えることで税率と税額がどう変わるかを確認します。
アドバイザーおよびツールへの組み込み
決定的な譲渡所得の試算を計画ツールや顧客向けの稟議書に組み込み、特定の税年度に合わせて税率の前提を上書きします。
よくある質問
既定ではどの税率を使いますか?
既定では短期税率 37%、長期税率 15%、NIIT 付加税 0% を用います。
これは税務上の助言ですか?
いいえ。 税率入力を通じて完全に制御できる、決定的な試算です。
譲渡益が長期扱いになるのはいつですか?
保有日数が基準日数を超えたときで、基準は変更しなければ365日です。ちょうど365日ならまだ短期、400日なら長期になります。
純投資所得への上乗せ税を加えられますか?
加えられます。上乗せ税の税率を入れると、税額を計算する前に短期または長期の税率に足されます。入れなければ0のままです。
損失が出た売却ではどうなりますか?
税額は0になり、マイナスにはなりません。売却の結果としての損失は表示されますが、その損失に対して税は計算しません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/finance/capital-gains-tax \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"proceeds":50000,"cost_basis":30000}'const res = await fetch("https://api.kit.forhosting.com/finance/capital-gains-tax", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"proceeds": 50000,
"cost_basis": 30000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/finance/capital-gains-tax",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"proceeds": 50000,
"cost_basis": 30000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/finance/capital-gains-tax", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"proceeds":50000,"cost_basis":30000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"proceeds":50000,"cost_basis":30000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/finance/capital-gains-tax", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"proceeds": 50000,
"cost_basis": 30000
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.capital_gains_tax",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
譲渡益、区分、税額の計算方法
次に保有期間を分類します。税額は Math.max(0, gain) にその合成税率のパーセンテージを掛けて求めるため、損失の場合は負の数ではなくゼロの税額になります。計算例:売却代金 50,000、取得原価 30,000、保有 400 日、長期税率 15% では、譲渡益 20,000、区分 'long'、税率 15%、税額 3,000 となります。このツールはまず、譲渡益を proceeds から cost_basis を引いて計算します。holding_days が long_threshold_days(既定値 365)より厳密に大きければ利益は長期、そうでなければ短期です。適用される税率は、長期税率(lt_rate、既定値 15%)または短期税率(st_rate、既定値 37%)に、正味投資所得税の付加税(niit_rate、既定値 0%)を加えたものです。出力は proceeds、cost_basis、holding_days、丸めた gain、区分の文字列、rate_percent、そして丸めた税額を返します。
入力、既定値、丸めと検証
税率の前提はすべて上書き可能です。税額は丸めた gain ではなく生の gain から計算されるため、表示上の丸めが納付額を歪めることは決してありません。必須なのは proceeds と cost_basis のみで、いずれも有限の数値でなければならず、特殊なポジションをモデル化する場合はどちらも負でも構いません。holding_days は既定値 400 で、非負の整数でなければなりません——小数や負の日数は型付きの invalid_input エラーを返します。st_rate、lt_rate、niit_rate、long_threshold_days により、米国の税率区分をハードコードせずに特定の法域や税年度に合わせられます。decimals フィールド(既定値 2)は、出力ごとに一度だけ適用する明示的な half-up ルールで gain と税額を丸めます。損失はゼロの税額に切り下げられますが、税額が発生しない場合でも区分と rate_percent は返されます。
widget、API、そして多言語ランディング
ランディングは翻訳済みスラッグとキーワードとともに 8 言語で公開されており、自分の言語で譲渡所得の試算を検索する人は現地語のページにたどり着けます。多数のロットを一度に価格算定したり、ポートフォリオのタックスロス・ハーベスティングの一括検証を支えたり、数千行にわたって法域ごとに税率の前提を上書きしたりする必要があるときは API を使ってください。API の実行は前払いの KIT 残高に対して $0.002 から課金され、成功したタスクのみが対象です。一方で JSON のフィールド名はどのロケールでも同一です。これは決定的な試算であって、税務上の助言ではありません。
連携の活用例
ポートフォリオとハーベスティングの一括検証
短期・長期・NIIT の税率をカスタム指定して多数のロットにわたり API を呼び出し、タックスロス・ハーベスティングをモデル化したり、法域を一括で比較したりします。
技術的な質問
短期か長期かはどのように判定されますか。
holding_days が long_threshold_days(既定値 365)より厳密に大きい場合、利益は長期となり、そうでなければ短期です。このしきい値は設定可能です。
損失で売却した場合はどうなりますか。
税額はゼロで下限が設けられるため、負の利益は gain フィールドに実際の損失を示しつつ、税額は 0 となります。区分と税率は引き続き返されます。
どの入力が必須で検証されますか。
proceeds と cost_basis は必須の有限数値で、holding_days は非負の整数でなければなりません。それ以外は型付きの invalid_input エラーを返します。