年率換算計算機
5年で50%増えた投資は、年率に直すと10%ではなく約8.45%です。トータルリターンと保有年数を入れるだけで、複利の年率と資産の倍率が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 総リターン
- 50
- 年数
- 5
- 総リターン (小数)
- 0.5
- 年率換算リターン
- 0.084472
- 年率リターン (%)
- 8.447177
- 成長率
- 1.5
保有期間のトータルリターンは、買いから売りまでの資産の伸びを示しますが、1年ベンチマークや別の保有期間の投資と比べたときの意味までは教えてくれません。この年率換算計算機は、累積トータルリターンと保有年数を、年1回複利で同じ期末資産を生む定数の年率へ変換します。ポートフォリオ実績レポート、ファンド比較、複利の宿題、複数年リターンを共通の年次尺度へ正規化する自動化にご利用ください。全損に至らない損失は自動的に負の年率へ換算されます。
年率換算の意味と公式の仕組み
保有期間のトータルリターンは、投資開始から終了までの累積パーセント変化(または小数比率)です。100ドルが150ドルになれば、それが2年でも10年でもトータルリターンは50パーセントです。年率換算が答えるのは別の問いです。
年1回複利の定数の年率が、同じ年数で開始資産を同じ終了資産に変える値は何か、という点です。閉形式の答えは r が (1 プラス R) の 1/t 乗から 1 を引いたもので、R は小数のトータルリターン、t は保有年数です。
この r は当該ホライズンの幾何平均成長率であり、トータルリターンではなく期初・期末価値から求めるいわゆる CAGR と同じ恒等式です。トータルリターンがゼロなら年率もゼロです。正のときは年率も正で、複数年では複利が利益を年に分散するためトータルより小さくなります。
マイナス100パーセントより大きい負のトータルなら年率も負となり、滑らかな年間下落を正しく表します。100パーセント以上の全損はこの実数べき乗公式では年率化できません。成長倍率 1+R が厳密に正にならないためです。
計算機は複利式に差し込むための小数の年率と、同じ値のパーセント、さらに資産倍率を再計算せず表示するための成長倍率 1+R を返します。
トータルリターンの年率化が役立つ場面
投資家やアドバイザーは、証券会社の明細に複数年の累積利益が載り、ファンド・モデル・個人目標を共通尺度で比べる年次数値が必要なときに年率換算計算機を使います。実績報告ツールは長さの異なる保有期間を正規化し、3年と7年のトータルリターンを読者を誤らせずに並べられます。
教育者や LMS は、トータルリターンと年数から年率を求める複利の宿題用に、決定的なオラクルを必要とします。学習者が幾何式ではなくトータルを年数で割ってしまう損失ケースも含みます。検証失敗は残高を消費しません。
years と 1+R を正に保ち、丸め済みレート欄をテストで固定すれば、自前の金融ライブラリなしで表計算・n8n・エッジワーカー向けに再現可能な年率を得られます。
活用例
ポートフォリオ実績の正規化
複数年の累積トータルリターンを定数の年率に変え、保有期間の異なるポジションを公平に比較します。
授業での複利チェック
トータルリターンと保有年数から年率を求める宿題を、決定的な幾何オラクルで採点します。
よくある質問
トータルリターンを年率にどう変換しますか?
r = (1 + R)^(1/t) − 1 を使います。R は小数のトータルリターン、t は保有年数です。
年率は負になり得ますか?
はい。 トータルリターンが負でも −100% より大きいとき、年率は負となり、保有期間にわたる滑らかな下落を表します。
トータルリターンを年数で割るだけではだめですか?
単純な除算は複利を無視します。幾何式 (1+R)^(1/t)−1 こそ、同じ期末資産を実際に再現する定数年率です。
10年で100%のリターンは年率で何パーセントですか?
年率約7.18%です。10年で資産が2倍になる場合、10回の複利でその倍率になる年率はおよそ7.18%で、単純に割った10%よりかなり低くなります。
保有期間に端数のある年数を入れられますか?
はい、入れられます。2.5年のような端数のある期間も同じ式で計算します。条件は期間が0より大きいことだけです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/finance/annualized-return \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_return":50,"years":5}'const res = await fetch("https://api.kit.forhosting.com/finance/annualized-return", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_return": 50,
"years": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/finance/annualized-return",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_return": 50,
"years": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/finance/annualized-return", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_return":50,"years":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_return":50,"years":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/finance/annualized-return", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"total_return": 50,
"years": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.annualized_return",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無効入力は invalid_input で失敗し、課金されません。
入力契約、丸め、検証、計算例
years は年単位の保有期間で、ゼロより厳密に大きくなければなりません。2.5 年のような端数も同じ実数べきで扱えます。ツールを自分で連鎖するとき、丸め済み年率を次の式に再注入しないでください。1.5 の 1/5 乗から 1 を引いた値が、5年で総利益50パーセントに複利する定数年率だからです。途中の入出金がある場合のみ独自のキャッシュフロー表と組み合わせてください。POST で必須の有限数 total_return と years を含む JSON ボディを送ってください。既定では total_return はパーセントで、50 は保有期間全体でプラス50パーセントを意味します。同じ利益を小数比率で送るには as_percent を false にし、0.5 を渡します。任意の整数 decimals(0〜12、既定6)は、生の IEEE 値から annualized_return、annualized_return_percent、total_return_decimal、growth_factor に一度だけ half-up 丸めを適用します。欠落フィールド、空文字列、非有限値、非正の years、1+R がゼロ以下になるトータルリターンは invalid_input で失敗し、課金されません。例:total_return 50、years 5 は約8.45パーセントの年率になります。例:total_return 100、years 10 は年あたり約7.18パーセントです。例:total_return -20、years 4 は、4年後に開始より20パーセント低い滑らかな下落を表す負の年率です。このエンドポイントは単一のトータルリターンを年率化し、取引一覧から時間加重・金額加重リターンは計算しません。
トータルリターンの年率化が役立つ場面
実装は純粋 parse の tier A のため、成功した呼び出しは公開の基本価格 $0.002 で、モデルトークンも外向きネットワークも不要です。
連携の活用例
自動化と CMS ウィジェット
同じ JSON 契約をパイプラインやページ内計算機に組み込み、無料プレビューと課金 API 結果をバイト一致させます。
技術的な質問
total_return はパーセントですか、小数ですか?
既定はパーセントです(50 は +50%)。小数比率 0.5 を送る場合は as_percent を false にしてください。
年率換算計算機の料金は?
ブラウザツールは無料です。API は成功した呼び出しごとに前払い KIT 残高から $0.002 です。無効入力は課金されません。