予算計算機
公開中· アルファアジア・中東10カ国の生活費計算ツール。リーンからコンフォータブルまで5段階のライフスタイルティアを用意し、住居、食費、交通費、医療費、行政コスト、ビザ費用を都市別に分解。データは一次調査に基づき、YAMLパイプラインで自動生成。
AI生成: この技術解説はプロジェクトのソースコードからAIが作成したもので、不正確な記述を含む場合があります。
予算計算機は、アジア・中東10カ国(JP、TH、ID、VN、MY、KR、TW、PH、LK、AE)の生活費見積もりツールで、各国に複数の都市と、リーンからコンフォータブル+++まで5段階のライフスタイルティアを備えています。月次予算を住居、食費、光熱費、通信費、交通費、行政コスト、そして一度きりの入居初期費用に分解し、すべてをライブ為替レートで選択した表示通貨に換算します。国別のコストデータは手書きではなく、構造化されたYAMLとして調査・検証され、コード生成スクリプトによってTypeScriptモジュールへコンパイルされます。
アーキテクチャ
計算の中核は、プレーンなデータに対する純粋関数の集まりです。レンダリングもフェッチもありません。calculateBudgetTotals は BudgetConfig(国、都市、ティア、フィールド別オーバーライド)と CountryDefinition を受け取り、月次・年次の合計を返します。calculateGovernmentCosts は健康保険、所得税、地方税、年金、義務的費用を所得ブラケットごとに解決します。calculateMoveInCosts、calculateYear1Costs、そして比較モードの差分である 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(BudgetPlanner、useReducer による状態管理、共有用にURLハッシュへ永続化)には3つのモードがあります。
- Explore — 国、都市、ティア、所得ブラケットを選び、フィールド別オーバーライド、コストチャート、入居初期費用、国別の注意点を含む完全な内訳を表示します。日本では、他国には表示されない「見落としコスト」セクション(NHK受信料、医療費自己負担、消耗品)が加わります。
- Compare — 2つの構成を並べて表示し、
calculateDeltasがカテゴリごとに絶対値とパーセンテージの差を報告します。 - Reverse —
findAffordableCitiesがすべての国/都市/ティアの組み合わせを走査し、生活費と行政コストを合計して表示通貨に換算し、目標月次予算以下のものを上位ティア順に並べて返します。
予算の出力はゴールデンハンドカフ・プランナーへ、またその逆へとディープリンクし、FXレートサービスとティアマッピングを共有するため、選んだ都市のコストがそのままシナリオの入力値になります。
成熟度
このビルドはライブで利用可能ですが、アルファ段階です。コストの数値は継続更新されるデータフィードではなく、フィールド別の信頼度ラベル付きの一次調査によるもので、各国のデータには「時点(as of)」の日付と信頼度がフッターに表示されます。出力は権威ある見積もりではなく、構造化された推計として扱ってください。