# Carry — 現金流情境研究室

[開啟工具](https://miiduoa.github.io/tools/carry/) · [純計算模型](core.mjs) · [測試](core.test.mjs)

一個問題：**如果購買同一個資產，現金付清和借款、保留資金投資，哪一種在不同情境下留下較多淨資產？**

介面以新台幣輸入購買價格、頭期款、現金預備金、貸款利率、每月可用金額、投資報酬率與比較期間，並輸出期末淨資產、貸款餘額、四組報酬情境與可下載的 JSON 紀錄。

## 執行與測試

運用本專案的靜態檔案架構，於 repo 根目錄執行：

~~~sh
python3 -m http.server 8080
# 開啟 http://localhost:8080/tools/carry/
node --test tools/carry/core.test.mjs
~~~

沒有建置步驟與第三方套件。使用 ES modules、瀏覽器 SVG 和 Node.js 內建測試。

## 誰和誰比較？

兩個方案從**相同可動用資金**與**相同每月現金預算**出發，買下相同資產，先保留相同的不投資現金預備金：

- 現金購買：初始投資金額 = 可動用資金 − 購買價格 − 預備金；每月底投入整筆月預算。
- 貸款購買：初始投資金額 = 可動用資金 − 頭期款 − 預備金；貸款期間每月底投入月預算扣除月付金，貸款結束後恢復投入整筆月預算。期末淨資產再扣除未清償本金。

每年固定報酬 R 轉換為每月成長因子 (1+R)^(1/12)。貸款利息採月計息、等額本息。比較期末包含原先保留的現金預備金，但因兩邊相同，不影響差額。資產本身的殘值相同、相互抵銷，故未納入。

自我檢驗：若年報酬恰好等於 (1 + 貸款名目年利率 / 12)^12 − 1，沒有手續費或稅，任何比較期（包括尚未繳清）兩種方案理論上應得到相同淨資產。測試涵蓋這個不變條件、零利率、提前比較、零貸款、資金不足與月付不足。

## 不能用它推論的事情

- 固定報酬並非市場報酬的分配模型；**沒有**模擬路徑風險、最大回撤、資產流動性、通膨、提前清償、費用或稅務。
- 月預算必須能單獨支付月付金；違反時拒絕計算，不能用借新債掩蓋缺口。
- 所有投資餘額都被視為可按同一報酬率成長；模型不適合含槓桿、保證金或投資品種差異的情境。
- 年化借款成本只是無費用模型的門檻，不是「貸款一定值得」的建議。

輸出的 JSON 記錄輸入值、各情境結果和生成時間；不會連上銀行，也不會把資料上傳。
