personal-cfo 退休財務分析 示範(附 GitHub 程式)

閱讀偏好
personal-cfo 退休財務分析 示範(附 GitHub 程式)

知道自己的退休計畫在軌道上嗎?

大多數人(包括我)沒有毅力做財務規劃。我們靠社群、新聞標題和 LINE 群組的股票明牌做決策,偶爾看一下銀行 APP 的餘額,覺得還有錢就繼續過日子。

問題是,「覺得還有錢」和「真的在軌道上」是兩回事。

每個月薪水進來、房貸扣掉、信用卡繳掉、保險扣掉,到底這個月是賺還是賠?股票佔你總資產的比例,跟你這個年紀應該承受的風險一致嗎?這些東西不是很難算,但就是沒恆心處理,然後每天被社群新聞搞崩心態 :P

所以我懶人思維又啟動了,決定讓 Python 幫我算(客觀?)。


懶人理財三部曲,完結篇

personal-cfo 是 notoriouslab 開源工具組「個人財務自動化三部曲」的最後一部:

第一部:gmail-statement-fetcher  ─  從 Gmail 自動下載對帳單 PDF
第二部:doc-cleaner              ─  把文件轉成乾淨的 Markdown
第三部:personal-cfo             ─  月度財務審計 + 退休滑翔路徑 + 退休投影

三個工具串在一起:每個月 Gmail 收到對帳單,自動下載、自動轉檔、自動算出損益表和退休軌道。但跟前兩部一樣,每一部都是獨立的,你不需要用前面兩個工具,手上有 CSV 或 Markdown 表格就能直接跑。

只要一行指令:

python -m personal_cfo cfo --transactions ./帳單/ --period 2026-02 --offline

輸出完整的月度財務報告。


不是又一個記帳 APP

市面上記帳 APP 工具多到爆,從 Excel 模板到 SaaS 應用都有,從 MOZE 到 MoneyForward。personal-cfo 做的事情不太一樣:

它不記帳。它審計。

不需要每天手動輸入「午餐 150 元」、「計程車 280 元」,那種事情信用卡帳單、電子支付的紀錄等都已經幫你記了。personal-cfo 拿你上個月的銀行帳單,事後算一次總帳,告訴你:

  • 這個月淨賺還是淨賠
  • 錢花到哪些大類(生活、房貸、保險、投資)
  • 你的資產配置跟退休計畫是不是偏了

重點是「確定性運算」:我全部都會用 Python 算數字,不讓 AI 假設性的猜數字拆解,沒有幻覺,沒有「我覺得你這個月花太多」的 AI 情緒價值,偏了就告訴你偏了,在軌道上就安安靜靜。當然假如你都還是現金用的比較多,這個工具就只能從銀行帳戶提領多少錢來判斷,無法通靈幫你推估,但假如銀行對帳單都有給它拆解,那麼其實大概率來說也可以當參考了。

2026 03 16 示範圖


它算什麼?

丟進去銀行對帳單、信用卡對帳單、證券對帳單等金融機構資料,或是你自己的記帳文件(CSV 或 Markdown),它可以產出五份東西:

1. 損益表(8 大類)

不是那種「食衣住行育樂」的分法,是按照資金性質分的:

類別舉例
經常性收入薪水、副業收入
投資收益股息、利息、租金
生活支出吃飯、購物、保險
再次強調,現金只能透過銀行對帳單的提領金額總體來試算
房貸本金還本(不是利息)
房貸利息利息(不是還本)
摩擦成本手續費
資本支出定期定額投資
資本轉移基金申購贖回(錢還在你的帳戶裡,只是換個形式)

為什麼要區分房貸本金和利息?因為還本金其實是在增加你的淨資產,但利息是真的花掉了。為什麼資本轉移不算支出?因為你買了 ETF,錢沒有消失,只是從銀行跑到券商。

這些區分聽起來囉嗦,但算出來的「經常性淨利」才是你真正的財務狀況指標。

2. 資產負債表

從銀行存款、證券庫存、不動產,到房貸負債,按風險分桶:

  • 流動資產(現金)
  • 股票 / ETF
  • 債券 / 結構型商品
  • 不動產
  • 保險價值
  • 負債

3. 現金流量

扣掉資本轉移(不是真的花錢)後的實際現金進出。

4. 市場定錨

美國十年期殖利率、比特幣、黃金、台幣匯率、加權指數 — 不是要你看盤,是給你一個「現在全球大概什麼狀態」的背景參考。

5. 退休滑翔路徑

這是整個工具的核心。

概念很簡單:年輕的時候可以承受高風險(多放股票),越接近退休越該保守(多放債券和現金)。這條「隨年齡遞減的目標股票比例」就是 glide path,滑翔路徑。

你設定「我現在覺得 60% 股票比例合適」(經典 60/40 配置),程式每年自動降 1%。然後每個月跑一次,看你實際的股票佔比跟目標差多少:

  • 差距 3% 以內:在軌道上,安靜
  • 差距 3-5%:輕微偏移,下次再平衡留意一下
  • 差距超過 5%:重大偏移,該調整了

就這樣,不會每天煩你,不會叫你進出,只在每月結算偏掉的時候提醒你。

6. 退休投影(project 指令)

上面五個是「完全基於事實,看過去」— 你上個月的帳怎麼樣。

退休投影是「一堆不確定假設,看未來」— 你的錢夠不夠撐到老 XD

它拿你實際的資產快照,加上你設定的假設(通膨、報酬率、預期壽命、每月年金),逐年推算到預期壽命。產出一張表告訴你:

  • 幾歲的時候流動資產會歸零?(資金枯竭年齡)
  • 按照 4% Rule / 3.5% Rule,你退休時需要多少流動資產?
  • 如果有勞保年金,缺口會縮多少?

重點:退休投影只算「可提領的流動資產」— 現金、股票、債券、保險。這跟你在銀行 APP 看到的「總資產好像很多」是完全不同的角度。

指令一樣簡單:

python -m personal_cfo project --snapshot ./output/snapshots/2026-01_asset_snapshot.json

所有假設都標示得清楚,這裡全部都是假設值,你可以自己調參數試試看「如果通膨高一點」、「如果多存一點」會怎樣。再次前調這不是預測,是讓你知道「原來這些參數這麼敏感」


每個人的財務狀況不一樣

這是個 framework,不是開箱即用的 APP。

每個人的分類規則都不一樣(你的薪水入帳描述肯定跟我的也不同),你的退休年齡跟我的不一樣,你的風險承受度跟我的不一樣,所以你需要依照自己的需求改 config.yaml

聽起來很麻煩?其實就是一個 YAML 檔案,填幾個數字:

life_plan:
  birth_year: 1984          # 你幾年出生
  retirement_age: 63        # 打算幾歲退休

glide_path:
  equity_target: 0.60       # 你現在覺得合適的股票比(經典 60/40)
  annual_derisking: 0.01    # 每年降 1%

category_rules:
  "薪資": salary            # 你的銀行帳單上薪水的描述
  "房貸": housing           # 你的銀行帳單上房貸的描述

不知道怎麼設定?examples/ 目錄裡,我先提供了三種情境的範本:

範本情境
config_young_professional.yaml30 歲單身,高股票比,簡單分類
config_mid_career_family.yaml42 歲雙薪家庭,有房貸有保險
config_pre_retirement.yaml56 歲接近退休,防禦性配置

或者,直接丟給 Claude / ChatGPT 等 AI,跟它說「我的狀況是 XXX,幫我改這個 config」,AI 最擅長這種填表格的事 XD


它怎麼吃你的帳單?

三種格式都吃:

CSV — 最通用,自己整理或從網銀匯出整理的都行:

date,description,amount,currency,category
2026-01-05,薪資,45000,TWD,salary
2026-01-10,房貸,-25000,TWD,housing

doc-cleaner 的 Markdown — 如果你用了三部曲的第二部,它的輸出可以直接餵進來,不需要任何額外處理。就算 AI 生成的 JSON 不完整,parser 也會自動從 Markdown 表格補漏。

純 Markdown 表格 — 自己手寫的也行:

| 日期 | 摘要 | 支出 | 存入 |
|------|------|------|------|
| 2026/01/05 | 薪資 | | 45,000 |
| 2026/01/10 | 房貸 | 25,000 | |

Parser 會自動辨識欄位名稱(日期、摘要、金額、支出、存入),不需要特殊格式。

而且 examples/ 裡有三份虛構的小康家庭帳單(銀行、信用卡、證券),你可以直接跑跑看,不需要用自己的真實資料就能體驗完整流程。


給 AI Agent 玩家

跟前兩部一樣,personal-cfo 附帶了標準的 SKILL.md,你的 Agent 可以直接透過 shell 呼叫它:

python -m personal_cfo cfo \
  --transactions ./statements/ \
  --period 2026-02 \
  --offline --quiet

--quiet 模式只寫檔不輸出,適合自動化流程。報告和資產快照(JSON)都會存到指定目錄,Agent 可以接著跑退休投影:

python -m personal_cfo project \
  --snapshot ./output/snapshots/2026-02_asset_snapshot.json \
  --quiet

如果你在用 OpenClaw 或其他 AI Agent 框架,一鍵整合。


隱私和安全

所有運算都在你的電腦上完成。沒有雲端,沒有資料庫,沒有帳號。

唯一可能的網路請求是 yfinance 抓市場指標(美股、匯率、黃金),但你可以用 --offline 完全跳過,它會用快取或硬編碼的 fallback 值(會提醒你數據可能過時)。

你的 config.yaml(包含分類規則)在 .gitignore 裡,不會被意外提交到 Git。


誰適合用?

懶得記帳但想知道自己財務狀況的人 — 每月跑一次,5 分鐘看完報告。

有在做退休規劃但沒有工具追蹤的人 — glide path 幫你守住軌道。

用 Obsidian 或其他 PKM 的人 — 報告是 Markdown,直接丟進知識庫。

開發者和 AI 玩家 — CLI 介面,可串接任何自動化流程。


開始使用

git clone https://github.com/notoriouslab/personal-cfo.git
cd personal-cfo
pip install -r requirements.txt
cp config.example.yaml config.yaml

# 用範例資料試跑
python -m personal_cfo cfo \
  --transactions ./examples/sample_transactions.csv \
  --assets ./examples/sample_assets.csv \
  --period 2026-01 --offline

不需要註冊帳號,不需要 API key,不需要上傳任何東西,核心只依賴 pyyaml,連 pandas 都不需要。

想要即時市場數據:

pip install yfinance
# 去掉 --offline 就會自動抓

完整說明請見 GitHub 專案頁面


常見問題 Q&A

Q:我不會寫程式,能用嗎?

可以,但開始的學習曲線會比較高。安裝好 Python 之後,只需要在終端機打一行指令。config.yaml 的設定可以請 AI 助手幫你填(真的,這種事 AI 做得比你快又好,不用擔心)。

Q:和記帳 APP(MOZE、MoneyForward)有什麼不同?

記帳 APP 要你每天手動輸入或綁定銀行 API,或是要填帳密資料授權。personal-cfo 不記帳,它拿你的月結帳單做事後審計,算的是「上個月你的整體財務健康度」而不是「你今天午餐花了多少」。兩者互補,不衝突。

Q:和 hledger / beancount 這類 plain text accounting 工具比呢?

hledger 和 beancount 是專業且完整的複式記帳系統,功能強大但學習曲線超高。personal-cfo 不做複式記帳,它專注在兩件事:月度損益審計和退休軌道監控。如果你已經在用 hledger,personal-cfo 的 glide path 概念可以補充你還沒有的退休追蹤功能。

Q:退休滑翔路徑的概念是你發明的嗎?

當然不是 XD,glide path 是 target-date fund(目標日期基金)的標準做法,Vanguard、Fidelity 都在用,personal-cfo 只是把這個概念變成一個很簡單,你可以自己跑的 CLI 工具,用你自己的數據。

Q:我的帳單格式 personal-cfo 看不懂怎麼辦?

Parser 是靠欄位名稱辨識的(日期、摘要、金額、支出、存入),大部分台灣的銀行對帳單格式都能處理。如果你的銀行比較特別,最簡單的方法是用 doc-cleaner 先轉一次,或者自己整理成 CSV,不然就是同樣扔給 AI,讓他幫你爬梳結構也很快。

Q:多幣別怎麼處理?

config.yaml 設定靜態匯率(例如 USD_TWD: 32.0)。如果安裝了 yfinance 且不是離線模式,也會嘗試抓即時匯率。

Q:退休投影準嗎?

完全不準!而且工具會明確告訴你「這是假設,不是預測」。 它的價值不是給你一個精確數字,而是讓你知道「通膨多 0.5% 會差多少」、「有沒有勞保年金差多少」。自己動手調幾個參數,你會比看任何理財文章都更有感覺。

Q:資料安全嗎?

所有運算都在本機。唯一的網路請求是 yfinance 抓公開市場數據(可用 --offline 關掉),你的帳單資料不會離開你的電腦。

特別感謝

這篇文章最後要特別感謝 李柏鋒,有些不確定的財務公式有請教他,我之前定期定額投資的習慣也是受他影響。


開源,MIT 授權

personal-cfo 是完全開源的自由軟體,採用 MIT 授權。歡迎自由使用、修改、商用。

原始碼在 GitHub。如果你有特別的使用情境或分類規則,歡迎貢獻。

然後,可以的話,請在 Github 給我一顆星星鼓勵我 :P

作者 Jacobmei:帶領街口支付對接國際巨頭 Apple,推動台灣金融科技國際化實踐。

← 回文章列表