キャッシュフローの正味現在価値計算ツール
この正味現在価値計算ツールは、現在と将来の一連のキャッシュフローを期間 0 時点の単一価値に換算します。期間ごとの割引率を入力し、期間 0 から時系列順にキャッシュフローを並べてください。結果には NPV の合計と各項目の現在価値が表示されるため、計算を容易に確認、説明、再現できます。投資案の比較、プロジェクト評価、提案の審査、表計算の検算などに使用でき、時間に関する前提を根拠の見えない一つの数値に隠さず分析できます。
無料で実行
キャッシュフローを正しい期間順で入力してください
キャッシュフローの一覧は、期間 0 に発生する金額から始めてください。通常は初期投資であるため負の値になることが多いものの、正負どちらの値も入力できます。その後の入金と支払いは、同じ長さの各期間につき一つの値として時系列順に追加してください。0 にも意味があります。ある期間に資金移動がなくても、その後のフローに正しい指数を適用する必要がある場合は 0 を含めてください。一覧を短くするために空の期間を削除すると、期間 3 の入金が期間 2 に移り、現在価値が変わります。このツールは配列内の位置を期間番号として解釈するため、最初の値が期間 0、次が期間 1 となります。すべて有限の数値である必要があります。年次フローには年率、月次フローには月率を使うなど、別の間隔も一貫していれば利用できます。割引率とフローの間隔が同じ期間の長さを表すことが重要です。
割引計算の仕組みをご確認ください
各期間について、キャッシュフローを、1 に割引率を加えた値の期間番号乗で割ります。期間 0 は 1 で割るため変化しません。割引率が正の場合、後の金額ほど期間番号の増加に伴って大きく割り引かれます。表示される割引係数と現在価値により、最終合計だけに頼らず各手順を監査できます。その後、補償加算で現在価値を合計し、大きな正負の値がほぼ相殺する場合に生じる回避可能な浮動小数点精度の損失を抑えます。同じ入力から一貫した JSON が得られるよう、出力数値は安定した精度に正規化されます。0.10 は期間あたり十パーセントであり、十そのものではありません。-0.05 はマイナス五パーセントです。-1 以下では 1 と割引率の和が 0 または負になり、複数期間にわたる標準的な NPV モデルが成立しないため拒否されます。最終 NPV は、期間 0 に換算したすべての価値の合計です。
NPV を解釈し、代替案を慎重に比較してください
NPV が正なら、選択した割引率の下で割引後の収入が割引後の支出を上回ります。負なら、その要求収益率では想定収益が想定費用を回収できないことを示します。0 は現在価値ベースの損益分岐です。ただし、これは意思決定の材料であり、投資に関する完全な結論ではありません。結果は、予測精度、選択した割引率、期間の慣行、税金、終価、系列に含まれないリスクに左右されます。代替案を比較する際は、同じ基準で測定したフローと、比較可能な前提を反映する割引率を使用してください。複数の妥当な率を試し、順位が変わるか確認することも有用です。また、一部の表計算ソフトの NPV 関数は、入力値がすべて将来期間の末日に発生すると仮定しますが、この機能は最初のフローを明示的に期間 0 とします。返された期間別明細を分析とともに保存すれば、どの金額を、どの係数で、いつの時点から割り引いたかを確認できます。
活用例
設備投資プロジェクトを評価する
初期費用と予測営業キャッシュフローを割り引き、要求収益率で価値を生むか判定できます。
投資の代替案を比較する
同じ期間と割引率の基準で各案を計算し、現在価値の合計と発生時期を比較できます。
財務モデルを監査する
期間別の割引係数と現在価値を使い、表計算、提案書、社内計算を検証できます。
よくある質問
料金はいくらですか?
API リクエスト 1 件の料金は $0.002 です。ブラウザー内の計算にはサーバーへのリクエストは不要です。
割引率はパーセントと小数のどちらで入力しますか?
小数で入力してください。たとえば、期間あたり 8% は 0.08、-5% は -0.05 です。
最初のキャッシュフローはいつ発生しますか?
最初のフローは期間 0 に発生し、割り引かれません。次の値は期間 1 に発生します。
-100% 以下の割引率が拒否されるのはなぜですか?
-100% では割引の基数が 0 になり、それ未満では負になります。このような率では標準的な NPV 式を複数期間に適用できません。
キャッシュフローは負または 0 でもよいですか?
はい。負の値は支出、正の値は収入を表し、0 は資金移動のない期間を維持します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/biz/npv-calculate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"discount_rate":0.1,"cash_flows":[-1000,400,500,600]}'const res = await fetch("https://api.kit.forhosting.com/biz/npv-calculate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"discount_rate": 0.1,
"cash_flows": [
-1000,
400,
500,
600
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/npv-calculate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"discount_rate": 0.1,
"cash_flows": [
-1000,
400,
500,
600
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/npv-calculate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"discount_rate":0.1,"cash_flows":[-1000,400,500,600]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"discount_rate":0.1,"cash_flows":[-1000,400,500,600]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/npv-calculate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"discount_rate": 0.1,
"cash_flows": [
-1000,
400,
500,
600
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.npv_calculate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |