ai-lab.org
RoofFund

RoofFund ができるまで — 住宅ローン シミュレーターを建築立面図で見せる

コインスタックの直後に置く 計算ツール 2本目。 元利均等 / 元金均等 / 繰上げ返済 (期間短縮型) を純 JS で実装し、 残高推移を建築立面図風 SVG で描く設計記録。 §6.1 Visual Audit の最初の適用例。

·decision改善·stage公開中

RoofFund ができるまで — 住宅ローン シミュレーターを建築立面図で見せる

RoofFund は、 住宅ローン の月々返済額・総返済額・支払利息・繰上げ返済効果を無料で計算する純 JS シミュレーター。 元利均等 / 元金均等 / 期間短縮型 繰上げ に対応し、 残高推移を 建築立面図風 SVG で描きます。 計算はすべてブラウザ内 (useMemo) で完結し、 入力した借入額や金利はサーバーに送られません。 ラボ 16本目、 計算ツール枠 2本目。

なぜこの形にしたか — マネー計算機シリーズ化

直前の CoinStack (NISA / iDeCo) で 「on-device ML 14本連続」 から 「計算ツール」 thesis に振り直したばかり。 次は同じ thesis を続ければいいかというと、 rules.md §3.1 Thesis Audit は 「3本以上連続なら別 thesis に振れ」 であって、 2本目はまだ OK です。 SEO 検索ボリュームが極めて大きい 「住宅ローン シミュレーション」 系を取りに行く方が、 thesis を散らすより費用対効果が高い局面でした。

具体的には:

  • 「住宅ローン シミュレーション」「住宅ローン 計算」 は日本語クエリで月間検索数が極めて多い
  • 既存大手 (大手銀 / SUUMO / フラット35) は登録系 + 営業導線 + 重い UI
  • 純計算で 「即出る・サインアップ不要・ブラウザ完結」 が代替価値になる

これに沿って マネー計算機シリーズ (CoinStack → RoofFund → 育休給付金 → 副業税金 → 退職金 → ふるさと納税) として横展開する戦略に乗せています。

visual direction — §6.1 Visual Audit の初適用

このセッションで rules.md に追加した §6.1 Theme-Driven Visual Audit の最初の適用例です。 ユーザー指摘:

デザインが毎回同じだなー。 テーマによって最適なものに変えて欲しい。

CoinStack のミッドナイトネイビー + ゴールド (金融ダッシュボード系) をそのまま流用するのではなく、 「住宅ローン = 建築 / 図面」 という題材から motif を引き直しました。

palette

  • 背景: ドラフティング・ペーパー・シアン (#1f4a6f / #0c2236)
  • 主アクセント: ブラス (#d4a05a) — 製図フレーム / step corners
  • 副アクセント: ペーパー・ホワイト (#e4ecff) — 主要文字 / balance line
  • ハイライト: マークアップ・レッド (#ff5a5a) — 利息ハッチ / accent under headline
  • セカンダリ: グリーン (#7ee0a8) — 短縮効果

CoinStack (cool navy + warm gold) と隣に並べても 「全然違う絵」 にしてあります。

motif

  • ページ全体に グラフ用紙のグリッド (16px 細グリッド + 80px 太グリッド)
  • ヒーロー外周に ドラフティング・フレーム (実線 + 内側 dashed) + 4隅にブラスの corner mark
  • アプリ直前に タイトルブロック (DWG · MORTGAGE-SIM · SCALE 1:1 · REV.01) — 図面ヘッダーの再現
  • セクション見出しを Section A · Inputs / Section B · Elevation という 建築図面の節区切り
  • グラフは 建築立面図風 — 残高ラインを 「屋根の輪郭」 として描き、 横にハッチ塗り (赤) で 「利息」 の量を示す pillar を立てた

typography

  • Display: Space Grotesk bold + 大きめサイズで figma drawing sheet 風
  • Mono: JetBrains Mono、 全 ALL-CAPS ラベルに 0.22〜0.32em の wide tracking
  • ブラス色のヘッダーは weight 600 + tracking 0.32em で 「DWG STAMP」 感

計算ロジック

元利均等 (equal-pay)

M = P × r / (1 − (1 + r)^-n)
  P = 借入元金
  r = 月利 (年利/12)
  n = 期間月数

毎月の payment は一定。 利息 = balance × r、 元金 = payment − interest、 balance -= 元金 を月次ループ。

元金均等 (equal-principal)

monthly_principal = P / n  (固定)
monthly_interest  = balance × r
payment           = principal + interest

毎月の元金は固定、 残高が減るので利息と payment が逓減。 初期返済額が大きい代わりに 総利息が抑えられる

繰上げ返済 (期間短縮型)

各月の通常返済後に extra 円を元金充当して balance を追加で削る。 残高が 0 になった月で完済。 「繰上げ無し」 のベースラインと並行計算して、 浮いた利息と短縮された月数 を表示。

return 軽減型 (月々の返済額を下げる) は v1 では実装していません。 IMPROVE 候補。

closed-form 検証

e2e は計算結果を closed form で固定 (§8.5.2 出力リアリティ検証):

default: 4000万 × 35y × 1.3% 元利均等
  monthly  ≈ 118,628
  total    ≈ 49,823,650
  interest ≈ 9,823,650
  自己一致 : interest == total − 40,000,000

これを data-first-payment / data-total-paid / data-total-interest 等の data 属性で Result panel に貼り出し、 e2e で attribute polling して assert しています。

やっていない / これからの IMPROVE

正直に書く:

  • ボーナス払い 未対応。 v1 では月額一律。
  • 金利見直し (変動 → 固定切替 等) 未対応。 期間中固定で計算。
  • 団信 / 保証料 / 印紙 / 登記 / 繰上げ手数料 未組込。 純計算のみ。
  • 返済額軽減型 繰上げ 未対応。
  • 売却シミュ (残債と物件価値の交差点で 「あと何年で含み損が消えるか」) 未対応。

これらは 「銀行のシミュレータより簡素」 ですが、 逆に 「数字の感覚を一発でつかむ」 用途には軽量さが効きます。 実審査は金融機関で確認してね、 を FAQ に正直に書いています。

ラボ全体の位置づけ

15本目 CoinStack で 「on-device ML 一本足」 から脱却、 16本目 RoofFund で マネー計算機シリーズの 2本目 を打ち込みました。 残候補は:

  • 育休 / 産休 給付金 シミュレーター
  • 副業 / フリーランス 税金シミュレーター
  • 退職金シミュレーター
  • ふるさと納税 上限シミュレーター

いずれも検索ボリュームが太く、 純計算で実装リスクゼロ。 ただし 2本目以降の計算ツールが連続すると thesis lock-in が再発するので、 §3.1 Thesis Audit に沿って 3本目までに少なくとも 1本は別 thesis (シミュレーター / ロールプレイ / ジェネレーター / 占い 等) を挟む予定です。

[ ./next_action ]

読んだら、 RoofFund を実際に動かす。

この開発ログは RoofFund をどう作ったかの記録です。 読み終わったらそのままサービス本体へ戻って、 実物で価値を確かめてください。

[ ./related_logs ]

関連する開発ログ

all logs →
WikiOrbit

WikiOrbit ができるまで — データ可視化 thesis 1本目を Wikipedia の網で開く

計算ツール / 占い に続く 18本目で データ可視化 thesis をラボに追加。 d3-force でブラウザ内 force-directed network graph、 Wikipedia 公式 API への CORS 直送、 古地図 light theme の visual を組んだ設計記録。

read log →
FateNum

FateNum ができるまで — 占い・診断 thesis 1本目を 数秘術 で開く

計算ツール 連続 2本 (coin-stack / roof-fund) のあと、 §3.1 Thesis Audit に従って別 thesis 「占い・診断」 へ振り直し。 ピタゴラス式数秘術を純 JS で実装、 zodiac wheel + serif display で過去 16本柱と全く別の visual を組んだ設計記録。

read log →
CoinStack

CoinStack ができるまで — NISA / iDeCo シミュレーターで thesis を多様化する

14本柱が on-device ML に偏った反省から、 §3.1 Thesis Audit で別軸を採用。 NISA/iDeCo/つみたて投資 の複利 FV + 節税試算を純 JS で実装した設計記録。

read log →
PitchFlip

PitchFlip ができるまで — soundtouchjs でブラウザ完結のボイスチェンジャーを作る

soundtouchjs (SoundTouch / SimpleFilter / WebAudioBufferSource) を CDN side-load して、 音声のピッチ (±24半音) とテンポ (0.5〜2.0倍) を独立に変更し WAV エンコードして書き出すボイスチェンジャーの設計記録。

read log →
PyPad

PyPad ができるまで — Pyodide でブラウザ完結の Python REPL を作る

Pyodide (CPython を WebAssembly にコンパイルしたランタイム) を CDN side-load して、 入力したコードがブラウザの外に出ない Python REPL を構築した設計記録。

read log →
ASCIIBake

ASCIIBake ができるまで — Canvas だけで画像を文字に焼く軽量ピース

Canvas API の createImageBitmap → drawImage → getImageData だけで画像の明暗を読み、 文字ランプにマップする アスキーアート生成ツールの設計記録。 ML / WASM / モデル不要、 純 JS で 12本目を埋めた話。

read log →