太陽光発電事業などでプロジェクトファイナンスを利用するにあたり、金融機関との協議では(主に財務会計アドバイザリーに依頼して作成した)キャッシュフローモデル(以下、CFM)を用いてデットサイジングを行う。
私も本業では太陽光発電事業におけるプロジェクトファイナンスのボロワーとして、BIG4のFinancial Advisory Service(以下、FAS)が作成したCFMを使用しており、calculationシートとにらめっこしながら、CFMのロジックを自分なりに嚙み砕いて理解に努めてきた。
そんな中、上司が、
太陽光以外の電源種で初期的な事業性の判断をするために、簡単なCFMが欲しいんだよね。君の案件で使うCFMは中身が重厚で流用しづらいからさ、さくっと簡単なCFMモデル作ってくれない?ファイナンスクローズしたならCFMのこと詳しいからできるよね?
勘弁してほしい。CFMなんてものは事業会社では内製するものではないし、そもそも数百万以上を支払ってFASに作成してもらうものだぞ。
というわけで、社内にモデラーはいないのでFASの作ったCFMとにらめっこして、簡便なCFMを作成した。おかげで、CFMや会計等の知見は得ることができたが、やっぱり勘弁してほしい(個人的に数百万円の報酬が欲しい。)。
CFM作成あたって苦労したのは、デットサイジングの根幹となるDebt scluptingの実装方法だ。基本的な考え方はググれば(死語か?)ば分かるものの、CFMへの実装方法が分からなった。
なので、FASの作成したCFMで「参照先のトレース」と「参照元のトレース」をポチポチしつつ、関数の意味を調べていくしか実装する方法はなかった。長時間のにらめっこの末、ようやくDebt scluptingの実装方法を理解できた。
本稿では、プロジェクトファイナンスのボロワー側で、社内の無茶ぶりでCFMを修正・作成するはめになった非モデラーに向けてDebt scluptingの基礎的な実装方法について解説する。
Debt sculpting(デット スカルプティング)とは
“Debt Sculpting(デット・スカルプティング)”とは、主にプロジェクト・ファイナンスで用いられる借入金の返済スケジュール設計手法の一つ。プロジェクトが生み出すキャッシュフロー(CF)のタイミングや量の変動に合わせて、元本と利息の返済額を“彫刻(sculpt)”のように調整し、返済可能性(サービス・カバレッジ・レシオ:DSCR)を確保することを目的としている。
と、Chat-GPTは解説してくれた。その通りである。
このような定義であったり基本的な考え方は、以下のようなページで解説をしてくれている。
Debt sculptingの実装方法の解説は英語のみ
ほなCFMでDebt sculptingをスクラッチで実装するで~と、実装ロジックを組もうと参考になりそうな情報を調べてみた。
- 【コラム】(財務モデリングの最先端)第17回 借入金返済のモデル構築手法(2) – インフラト
- https://youtu.be/kcMsZ7je4nk
- Debt Sculpting vs Debt Sizing in Project Finance
- https://breakingintowallstreet.com/kb/project-finance/debt-sculpting-vs-debt-sizing/
日本語では具体的な解説がなく、英語で調べるしかなかった。一番下のリンクが最も分かりやすい。
英語ポンコツな私は自動翻訳にをしつつ、考え方を図解を交えて以下まとめてみた。参考にしてほしい。
Debt sculptingの実装ロジック解説
全体像

計算のフローチャートの全体像を上図で示す。上図で示す概念は、各年次ないし月次における断面ではなく、返済期間期間中の毎期で適用することに留意してほしい。
以下の流れでscluptingを行う。
- 毎期CFADSとDSCRから毎期のTargetDS(Debt Service)は一意に決定【⓪】
- 毎期の元本返済を仮決定(初期値はTargetDS)することで【①】、デットサイズと期中のローン残高【②】を仮決定
- 毎期の金利と仮決定された期中のローン残高から毎期の利息が仮決定【③】
- 仮決定された毎期の元本返済と利息から毎期のDSが仮決定【④】
- 毎期のTargetDS と仮決定されたDSの誤差を計算【⑤】
- 誤差が許容誤差より大きい場合は、TargetDSから仮決定された利息を差し引いて毎期の元本返済を修正する【⑥】
- 修正した毎期の元本返済を用いて2.~6.を繰り返し計算行う
- 繰り返し計算の結果、6.の誤差が許容誤差より小さくなった場合は計算を終了。【⑤】修正した毎期の元本返済で確定
解説

上の画像は本稿最下部に添付するモデルのサンプルのキャプチャ画面だ。
本稿に興味を持つ読者なら、エクセルの基本的な事項やデットサービス等のことは十分理解しているものとして、セル内の計算や何をどのように参照して計算しているかの解説は省略する(めんどい。)。本稿はDebt scluptingの実装方法に焦点を当てて解説する。
といっても、以下のマクロを実行するだけでDebt scluptingが行われるので解説することはほぼない。

上述の全体像並びにエクセルの関数およびE列のコメントとマクロ内のコメントを確認いただければ、本稿の読者であれば十分に理解可能であろう(決して面倒くさくなったからではない、、、です)。
その他参考になったCFM
このPorcoさんのCFMのサンプルはよかったのでみなさん参考にしてもらいたい。Debt scluptingだけではなくDSRAなど必要な要素が含まれている
ただし、Debt scluptingの計算ロジックが本稿の内容とは異なり、固定された金利を割引率としてCFADSの現在価値を計算しデットサイズとしている。計算速度も速くてよいのだが、実務では100%スワップはブレファンコストの観点からあまり用いられない(ようだ)ので、期中の期中の金利を変える場合はPorcoさんのモデルは修正する必要がある点に注意が必要だ(各期のCFADSを現在価値に割り戻す際、各期の金利をもとに毎期の割引率を個別で起算する必要がありそう。)。
おわりに 社内の無茶ぶりでCFMを修正・作成するはめになった非モデラーに捧ぐ
そもそも、FASに報酬払ってモデル作ってもらおう。
業務時間内に本稿の考え方を実装するのは現実的ではないが、無茶ぶりを受けてしまった非モデラーのお役に立てれば幸いだ。
不明点があればコメントいただきたい。
コメント