dfejza.com
制作物一覧
ファイナンス

予算計算機

公開中· アルファ

アジア・中東10カ国の生活費計算ツール。リーンからコンフォータブルまで5段階のライフスタイルティアを用意し、住居、食費、交通費、医療費、行政コスト、ビザ費用を都市別に分解。データは一次調査に基づき、YAMLパイプラインで自動生成。

TypeScriptReactNext.jsYAML Pipeline

AI生成: この技術解説はプロジェクトのソースコードからAIが作成したもので、不正確な記述を含む場合があります。

予算計算機は、アジア・中東10カ国(JP、TH、ID、VN、MY、KR、TW、PH、LK、AE)の生活費見積もりツールで、各国に複数の都市と、リーンからコンフォータブル+++まで5段階のライフスタイルティアを備えています。月次予算を住居、食費、光熱費、通信費、交通費、行政コスト、そして一度きりの入居初期費用に分解し、すべてをライブ為替レートで選択した表示通貨に換算します。国別のコストデータは手書きではなく、構造化されたYAMLとして調査・検証され、コード生成スクリプトによってTypeScriptモジュールへコンパイルされます。

アーキテクチャ

計算の中核は、プレーンなデータに対する純粋関数の集まりです。レンダリングもフェッチもありません。calculateBudgetTotalsBudgetConfig(国、都市、ティア、フィールド別オーバーライド)と CountryDefinition を受け取り、月次・年次の合計を返します。calculateGovernmentCosts は健康保険、所得税、地方税、年金、義務的費用を所得ブラケットごとに解決します。calculateMoveInCostscalculateYear1Costs、そして比較モードの差分である calculateDeltas は、同じデータに対する独立した関数です。保存される金額はすべて現地通貨建てで、表示通貨への換算は共有FXレートサービスを介した呼び出し側の責任です。

research/costs/*.yaml          (10カ国, 一次調査)

        │  npx tsx scripts/generate-budget-data.ts
        │  validate() · js-yaml parse · TS出力

lib/budget/countries.ts        (自動生成 — 編集禁止)


 ┌──────────────────────────────────────────────┐
 │  純粋計算関数 (lib/budget)                       │
 │  calculateBudgetTotals · calculateGovernment-  │
 │  Costs · calculateMoveInCosts · calculateYear1 │
 │  · calculateDeltas · findAffordableCities      │
 └──────────────────────────────────────────────┘


 ┌──────────────────────────────────────────────┐
 │  BudgetPlanner (useReducer + useFxRates)       │
 │  Explore · Compare · Reverse モード             │
 │  現地通貨 → 表示通貨 · URLハッシュ共有            │
 └──────────────────────────────────────────────┘

データパイプライン

国別データは research/costs/ 配下に1カ国1ファイルのYAMLとして格納されます。scripts/generate-budget-data.ts は各ファイルをjs-yamlで読み込み、validate() パスを実行し、AUTO-GENERATED — DO NOT EDIT ヘッダー付きで lib/budget/countries.ts を出力します。検証は厳格で、健康保険ブラケットは定義済みの6つの所得ブラケットと完全に一致する必要があり、各都市は5つすべてのティアを定義しなければならず、各ティアにrentが存在する必要があります。スクリプトはsnake_caseのYAMLキーをcamelCaseのTypeScript型にマッピングし、未知の年金システムは拒否します。そのため不正な調査ファイルは、誤った数値を出荷する代わりにビルドで失敗します。ランタイムモジュールを手で編集することはワークフローに含まれません。YAMLが信頼できる唯一の情報源です。

行政コストは税額計算式ではなく、事前計算済みのブラケット参照を使います。各国のYAMLは所得ブラケットごとの年額を列挙し、calculateGovernmentCosts が該当エントリを参照します。都市は国レベルの賃貸慣行や健康保険ブラケットをオーバーライドできます。フィールド別のデータ信頼度も追跡され、表示価格(家賃、光熱費、交通費)は都市の信頼度をそのまま引き継ぎ、変動の大きいライフスタイルコスト(食料品、外食)は1段階下げられます。

モード

UI(BudgetPlanneruseReducer による状態管理、共有用にURLハッシュへ永続化)には3つのモードがあります。

  • Explore — 国、都市、ティア、所得ブラケットを選び、フィールド別オーバーライド、コストチャート、入居初期費用、国別の注意点を含む完全な内訳を表示します。日本では、他国には表示されない「見落としコスト」セクション(NHK受信料、医療費自己負担、消耗品)が加わります。
  • Compare — 2つの構成を並べて表示し、calculateDeltas がカテゴリごとに絶対値とパーセンテージの差を報告します。
  • ReversefindAffordableCities がすべての国/都市/ティアの組み合わせを走査し、生活費と行政コストを合計して表示通貨に換算し、目標月次予算以下のものを上位ティア順に並べて返します。

予算の出力はゴールデンハンドカフ・プランナーへ、またその逆へとディープリンクし、FXレートサービスとティアマッピングを共有するため、選んだ都市のコストがそのままシナリオの入力値になります。

成熟度

このビルドはライブで利用可能ですが、アルファ段階です。コストの数値は継続更新されるデータフィードではなく、フィールド別の信頼度ラベル付きの一次調査によるもので、各国のデータには「時点(as of)」の日付と信頼度がフッターに表示されます。出力は権威ある見積もりではなく、構造化された推計として扱ってください。