AFFO(調整後営業資金)— 当期純利益からの算出
不動産ポートフォリオが実際に生む現金が分かります。純利益180,000に減価償却費95,000を足し、売却益12,000を引くとFFOは263,000、さらに維持的な設備投資30,000を引くとAFFOは233,000です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 純所得
- 180,000
- 減価償却費および償却費
- 95,000
- 売却益
- 12,000
- 維持更新投資
- 30,000
- AFFO(調整後FFO)
- 233,000
- Ffo
- 263,000
調整後営業資金(AFFO)は、REITアナリストが実際に信頼する数値です。純利益という指標は、そもそも不動産事業を想定して設計されていないからです。市場価値が上昇している資産であっても減価償却は報告利益を押し下げ、一時的な物件売却益は利益を水増しします。四半期ごとに計算式を手作業で組み直すことなく、そのままバリュエーションモデル、スクリーニングスクリプト、決算処理パイプラインに組み込むことができます。
不動産業では純利益だけでは不十分な理由
標準的な会計ルールでは、投資不動産は見積耐用年数にわたって減価償却されるため、建物の市場価値が維持または上昇している場合でも、報告上の純利益は着実に減少します。
これにより、REITと一般企業との1株当たり利益の比較は誤解を招くものとなり、業界が営業資金(FFO)を基礎指標として収斂した理由でもあります。調整後営業資金(AFFO)計算ツールは純利益を出発点とし、2つの歪みを取り除きます。まず非現金費用である減価償却費を加算し戻し、次に物件の売却益を差し引きます。
建物の売却は資金調達イベントであり、来四半期も継続すると見込める営業成果ではないためです。残るのは、工場向けに設計された会計慣行のノイズを除き、ポートフォリオが物件の賃貸と運用から実際に生み出す現金を、期ごとに正確に映し出すクリーンな数値です。
FFOからAFFOへ:維持設備投資の調整
FFOは純利益を修正しますが、それでも事業を実際より良く見せてしまいます。建物は老朽化するからです。屋根、エレベーター、外壁、空調設備、テナント内装には、現在の賃料収入を維持するためだけに継続的な支出が必要であり、その支出はFFOには一切現れません。
調整後営業資金(AFFO)はさらに一歩進み、取得や開発に充てられる成長投資とは異なる、事業維持のための経常的な部分である維持設備投資を差し引きます。その結果得られるAFFOは、不動産ポートフォリオの分配可能キャッシュフローの代理指標として最も広く使われており、配当カバレッジ倍率やAFFOマルチプルは通常この数値を基に構築されます。
活用例
AFFOマルチプルでREITをスクリーニング
開示資料の四半期数値をバッチジョブに投入し、スクリプトごとに計算式を管理することなく、REITユニバースを株価AFFO倍率で順位付けします。
配当カバレッジの確認
四半期ごとに1株当たりAFFOと公表配当を比較し、経常的なキャッシュフローで実際に裏付けられていない配当を検出します。
ポートフォリオ全体の利益を正規化
不動産会社の純利益をAFFOベースに換算し直し、資産売却のあった四半期となかった四半期を比較可能な状態に保ちます。
よくある質問
計算式はどうなっていますか?
AFFO = 純利益 + 減価償却費 - 物件売却益 - 維持設備投資です。中間指標であるFFOも併せて返されます。
純利益は負の値でもかまいませんか?
はい。 純損失は有効な入力であり、単にAFFOが低くなるだけです。
データは保存されますか?
いいえ。 4つの数値はメモリ上で処理された後に破棄され、計算結果のみが返されます。
異なる通貨や1株当たり換算には対応していますか?
いいえ。 すべての入力は同一通貨単位である必要があり、株式数での除算は呼び出し側で行ってください。算術演算自体は通貨に依存しません。
FFOとAFFOの違いは何ですか?
FFOは純利益に減価償却費を足し戻し、物件の売却益を差し引いたものです。AFFOはさらに、屋根やエレベーター、空調など賃料収入を保つための維持的な設備投資を差し引きます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/fin/affo \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"net_income":180000,"depreciation_amortization":95000,"gains_on_sales":12000,"maintenance_capex":30000}'const res = await fetch("https://api.kit.forhosting.com/fin/affo", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"net_income": 180000,
"depreciation_amortization": 95000,
"gains_on_sales": 12000,
"maintenance_capex": 30000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/affo",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"net_income": 180000,
"depreciation_amortization": 95000,
"gains_on_sales": 12000,
"maintenance_capex": 30000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/affo", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"net_income":180000,"depreciation_amortization":95000,"gains_on_sales":12000,"maintenance_capex":30000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"net_income":180000,"depreciation_amortization":95000,"gains_on_sales":12000,"maintenance_capex":30000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/affo", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"net_income": 180000,
"depreciation_amortization": 95000,
"gains_on_sales": 12000,
"maintenance_capex": 30000
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.affo",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
このAPIは、純利益、減価償却費、売却益、維持設備投資という4つの数値を受け取り、中間指標である営業資金(FFO)とともにAFFOを1回の決定的な呼び出しで返します。
FFOからAFFOへ:維持設備投資の調整
このエンドポイントは、中間のFFOと最終のAFFOの両方を小数点以下2桁に丸めて返すため、分析対象期間における両者の差が経常的な設備投資によってどの程度説明されるかを正確に把握できます。
入力項目、検証、統合方法
計算はネットワークアクセスも保存状態も持たない純粋な算術演算であるため、同じ入力には常に同じ出力が返り、バッチスクリーナー、定期決算ジョブ、取引前チェックの中で安全に呼び出すことができます。処理はグローバルエッジ上で実行され、同一コードがこのページ上のブラウザでも無料で動作します。この呼び出しは4つの必須数値フィールドを受け取ります。損失期には負の値も許容されるnet_incomeと、それぞれゼロ以上で同一通貨単位で表す必要があるdepreciation_amortization、gains_on_sales、maintenance_capexです。欠落している値、数値でない値、有限でない値はinvalid_inputエラーで拒否され、検証に失敗したリクエストは課金されません。手元の数値を確認するには4つの数値を貼り付けるだけで済み、自社システムに組み込んでワークフローを自動化する場合にのみ、1リクエストあたり$0.002をお支払いいただきます。
技術的な質問
料金はいくらですか?
1リクエストあたり$0.002です。このページ上のブラウザでは無料で実行できます。
入力が欠落している、または数値でない場合はどうなりますか?
該当フィールドを明示したinvalid_inputエラーでリクエストは拒否され、失敗したリクエストは課金されません。