{
  "_meta": {
    "format": "JPFIRECalc profile template v1",
    "instructions": "Fill in the values below then upload this file at the profile page. The _meta block is ignored on upload. Boolean fields accept: true / false. Leave optional fields as 0 or null if not applicable.",
    "fields": {
      "current_age": {
        "label": "Current Age",
        "type": "int",
        "description": "Your current age in years"
      },
      "target_retirement_age": {
        "label": "Target Retirement Age",
        "type": "int",
        "description": "Age at which you plan to retire (FIRE target)"
      },
      "retirement_start_year": {
        "label": "Retirement Start Year",
        "type": "int",
        "description": "Calendar year corresponding to retirement simulation year 0; required when education commitments exist"
      },
      "employment_type": {
        "label": "Employment Type",
        "type": "str",
        "description": "company_employee | public_servant | self_employed | corporate_officer | no_job"
      },
      "annual_gross_income_jpy": {
        "label": "Annual Gross Income (JPY)",
        "type": "int",
        "description": "Before-tax annual salary in yen"
      },
      "has_spouse": {
        "label": "Has Spouse / Partner",
        "type": "bool",
        "description": "true or false"
      },
      "spouse_income_jpy": {
        "label": "Spouse Annual Income (JPY)",
        "type": "int",
        "description": "Spouse gross annual income in yen (0 if no spouse)"
      },
      "num_dependents": {
        "label": "Number of Dependents",
        "type": "int",
        "description": "Dependent family members (children, parents)"
      },
      "social_insurance_annual_jpy": {
        "label": "Social Insurance Paid (Annual JPY)",
        "type": "int",
        "description": "Total shakaihoken premiums paid annually (~14% of gross for company employees)"
      },
      "nisa_balance_jpy": {
        "label": "NISA Balance (JPY)",
        "type": "int",
        "description": "Current 新NISA account market value"
      },
      "nisa_lifetime_used_jpy": {
        "label": "NISA Lifetime Cap Used (JPY)",
        "type": "int",
        "description": "Acquisition cost already used of the 18,000,000 yen lifetime cap"
      },
      "ideco_balance_jpy": {
        "label": "iDeCo Balance (JPY)",
        "type": "int",
        "description": "Current iDeCo account market value (locked until age 60)"
      },
      "taxable_brokerage_jpy": {
        "label": "Taxable Brokerage (JPY)",
        "type": "int",
        "description": "Current market value of taxable accounts (特定口座)"
      },
      "cash_savings_jpy": {
        "label": "Cash Savings (JPY)",
        "type": "int",
        "description": "Bank accounts and liquid cash reserves"
      },
      "foreign_assets_usd": {
        "label": "Foreign Assets (USD)",
        "type": "float",
        "description": "USD-denominated assets (US ETFs, foreign bank accounts, etc.)"
      },
      "monthly_expenses_jpy": {
        "label": "Monthly Expenses (JPY)",
        "type": "int",
        "description": "Recurring monthly living expenses excluding listed education commitments"
      },
      "education_commitments": {
        "label": "Education Commitments",
        "type": "list",
        "description": "Array of person-level temporary education commitments: {beneficiary_name, annual_cost_jpy, start_year, end_year, annual_inflation_pct, currency, category, notes}"
      },
      "monthly_nisa_contribution_jpy": {
        "label": "Monthly NISA Contribution (JPY)",
        "type": "int",
        "description": "Tsumitate frame monthly contribution (max 100,000/month)"
      },
      "nisa_growth_frame_annual_jpy": {
        "label": "NISA Growth Frame Annual (JPY)",
        "type": "int",
        "description": "Growth frame annual lump sum (max 2,400,000/year)"
      },
      "ideco_monthly_contribution_jpy": {
        "label": "iDeCo Monthly Contribution (JPY)",
        "type": "int",
        "description": "Monthly iDeCo contribution (company employee max: 23,000)"
      },
      "nenkin_contribution_months": {
        "label": "Nenkin Contribution Months",
        "type": "int",
        "description": "Total months paid into kokumin nenkin or kosei nenkin"
      },
      "nenkin_net_kosei_annual_jpy": {
        "label": "Kosei Nenkin Estimate (JPY, optional)",
        "type": "int",
        "description": "Annual kosei nenkin estimate from NenkinNet (0 = calculate from salary)"
      },
      "avg_standard_monthly_remuneration_jpy": {
        "label": "Avg Standard Monthly Remuneration (JPY)",
        "type": "int",
        "description": "平均標準報酬月額 used for kosei nenkin calculation"
      },
      "nenkin_claim_age": {
        "label": "Pension Claim Age",
        "type": "int",
        "description": "Age to start drawing nenkin (60–75; deferring to 70+ increases benefit)"
      },
      "foreign_pension_annual_jpy": {
        "label": "Foreign Pension Income (Annual JPY)",
        "type": "int",
        "description": "Annual foreign pension converted to yen (US Social Security, UK state pension…)"
      },
      "foreign_pension_start_age": {
        "label": "Foreign Pension Start Age",
        "type": "int",
        "description": "Age at which foreign pension income begins"
      },
      "nationality": {
        "label": "Nationality (ISO 3166-1 alpha-2)",
        "type": "str",
        "description": "Two-letter country code: JP, US, GB, AU, CA, DE, FR, etc."
      },
      "residency_status": {
        "label": "Japan Residency Status",
        "type": "str",
        "description": "citizen | permanent_resident | long_term_resident | spouse_visa | work_visa | other"
      },
      "treaty_country": {
        "label": "Home Country (for DTA notes)",
        "type": "str",
        "description": "Full country name for double-tax agreement lookup (e.g. United States)"
      },
      "years_in_japan": {
        "label": "Years Resident in Japan",
        "type": "int",
        "description": "Approximate years living in Japan (affects non-permanent resident tax rules)"
      },
      "usd_jpy_rate": {
        "label": "USD/JPY Rate",
        "type": "float",
        "description": "Exchange rate used to convert foreign USD assets to JPY"
      },
      "owns_property": {
        "label": "Owns Property in Japan",
        "type": "bool",
        "description": "true or false"
      },
      "property_value_jpy": {
        "label": "Property Value (JPY)",
        "type": "int",
        "description": "Current market value of owned property"
      },
      "mortgage_balance_jpy": {
        "label": "Mortgage Balance (JPY)",
        "type": "int",
        "description": "Outstanding mortgage principal"
      },
      "monthly_mortgage_payment_jpy": {
        "label": "Monthly Mortgage Payment (JPY)",
        "type": "int",
        "description": "Monthly principal + interest payment"
      },
      "mortgage_interest_rate_pct": {
        "label": "Mortgage Interest Rate (%)",
        "type": "float",
        "description": "Current annual interest rate (e.g. 0.7 for 0.7%). For variable rate loans, use the current applied rate."
      },
      "mortgage_type": {
        "label": "Mortgage Type",
        "type": "str",
        "description": "variable or fixed"
      },
      "mortgage_remaining_years": {
        "label": "Mortgage Remaining Years",
        "type": "int",
        "description": "Years left on the loan"
      },
      "mortgage_tax_credit_remaining_years": {
        "label": "Housing Loan Tax Credit Years Left",
        "type": "int",
        "description": "住宅ローン控除 years remaining (0 if expired or not applicable)"
      },
      "mortgage_tax_credit_principal_cap_jpy": {
        "label": "Tax Credit Principal Cap (JPY)",
        "type": "int",
        "description": "Maximum principal eligible for 住宅ローン控除 (¥30M standard, up to ¥50M for 認定長期優良住宅)"
      },
      "mortgage_tax_credit_rate_pct": {
        "label": "Tax Credit Rate (%)",
        "type": "float",
        "description": "Annual credit rate applied to mortgage balance (0.7% from 2024)"
      },
      "mortgage_prepayment_fee_jpy": {
        "label": "Prepayment Fee (JPY)",
        "type": "int",
        "description": "One-time fee charged on lump-sum early repayment (0 if no fee)"
      },
      "foreign_mortgage_interest_rate_pct": {
        "label": "Foreign Mortgage Interest Rate (%)",
        "type": "float",
        "description": "Annual interest rate on overseas mortgage (e.g. 4.5 for 4.5%)"
      },
      "foreign_mortgage_type": {
        "label": "Foreign Mortgage Type",
        "type": "str",
        "description": "variable or fixed"
      },
      "foreign_mortgage_remaining_years": {
        "label": "Foreign Mortgage Remaining Years",
        "type": "int",
        "description": "Years left on the overseas loan"
      },
      "mortgages": {
        "label": "Mortgages (List)",
        "type": "list",
        "description": "Array of mortgage loans. Each entry: {id, label, balance_jpy, interest_rate_pct, monthly_payment_jpy, remaining_years, loan_type, is_foreign, tax_credit_*}. When non-empty, takes precedence over the legacy single-loan fields above."
      },
      "rental_income_monthly_jpy": {
        "label": "Monthly Rental Income (JPY)",
        "type": "int",
        "description": "Monthly rental income from investment property"
      },
      "property_paid_off_at_retirement": {
        "label": "Property Paid Off at Retirement",
        "type": "bool",
        "description": "true or false — whether mortgage clears before FIRE age"
      },
      "property_planned_sale_age": {
        "label": "Japan Property Planned Sale Age",
        "type": "int",
        "description": "Age at which you plan to sell the Japan property (0 or blank = keep forever)"
      },
      "property_appreciation_pct": {
        "label": "Japan Property Appreciation (% p.a.)",
        "type": "float",
        "description": "Expected annual property appreciation, e.g. 1.0 for 1% per year"
      },
      "owns_foreign_property": {
        "label": "Owns Foreign Real Estate",
        "type": "bool",
        "description": "true or false"
      },
      "foreign_property_value_jpy": {
        "label": "Foreign Property Value (JPY)",
        "type": "int",
        "description": "Combined market value of all overseas property, converted to JPY"
      },
      "foreign_property_mortgage_jpy": {
        "label": "Foreign Property Mortgage (JPY)",
        "type": "int",
        "description": "Outstanding mortgage balance on overseas property, in JPY"
      },
      "foreign_property_rental_monthly_jpy": {
        "label": "Foreign Rental Income Monthly (JPY)",
        "type": "int",
        "description": "Combined monthly net rental income from overseas property, in JPY"
      },
      "foreign_property_planned_sale_age": {
        "label": "Foreign Property Planned Sale Age",
        "type": "int",
        "description": "Age at which you plan to sell the overseas property (0 or blank = keep)"
      },
      "foreign_property_appreciation_pct": {
        "label": "Foreign Property Appreciation (% p.a.)",
        "type": "float",
        "description": "Expected annual appreciation of overseas property, e.g. 2.0 for 2% per year"
      },
      "gold_silver_value_jpy": {
        "label": "Gold / Precious Metals (JPY)",
        "type": "int",
        "description": "Current market value of gold, silver, or other precious metals"
      },
      "crypto_value_jpy": {
        "label": "Cryptocurrency (JPY)",
        "type": "int",
        "description": "Current value of cryptocurrency holdings at market price (BTC, ETH, etc.)"
      },
      "rsu_unvested_value_jpy": {
        "label": "Unvested RSUs (JPY)",
        "type": "int",
        "description": "Fair-market value of unvested RSUs at current stock price — only count if you plan to stay until vest"
      },
      "rsu_vesting_annual_jpy": {
        "label": "Annual RSU Vest (JPY)",
        "type": "int",
        "description": "Expected annual RSU vest value while still employed (stops at retirement)"
      },
      "other_assets_jpy": {
        "label": "Other Assets (JPY)",
        "type": "int",
        "description": "Other assets: business equity, art, collectibles, private equity, etc."
      }
    }
  },
  "current_age": 35,
  "target_retirement_age": 50,
  "retirement_start_year": null,
  "employment_type": "company_employee",
  "annual_gross_income_jpy": 8000000,
  "has_spouse": false,
  "spouse_income_jpy": 0,
  "num_dependents": 0,
  "social_insurance_annual_jpy": 0,
  "nisa_balance_jpy": 0,
  "nisa_lifetime_used_jpy": 0,
  "ideco_balance_jpy": 0,
  "taxable_brokerage_jpy": 0,
  "cash_savings_jpy": 0,
  "foreign_assets_usd": 0.0,
  "monthly_expenses_jpy": 250000,
  "education_commitments": [],
  "monthly_nisa_contribution_jpy": 100000,
  "nisa_growth_frame_annual_jpy": 0,
  "ideco_monthly_contribution_jpy": 23000,
  "nenkin_contribution_months": 0,
  "nenkin_net_kosei_annual_jpy": null,
  "avg_standard_monthly_remuneration_jpy": 0,
  "nenkin_claim_age": 65,
  "foreign_pension_annual_jpy": 0,
  "foreign_pension_start_age": 67,
  "nationality": "JP",
  "residency_status": "permanent_resident",
  "treaty_country": "",
  "years_in_japan": 10,
  "usd_jpy_rate": 150.0,
  "owns_property": false,
  "property_value_jpy": 0,
  "mortgage_balance_jpy": 0,
  "monthly_mortgage_payment_jpy": 0,
  "mortgage_interest_rate_pct": 0.7,
  "mortgage_type": "variable",
  "mortgage_remaining_years": 25,
  "mortgage_tax_credit_remaining_years": 0,
  "mortgage_tax_credit_principal_cap_jpy": 30000000,
  "mortgage_tax_credit_rate_pct": 0.7,
  "mortgage_prepayment_fee_jpy": 0,
  "foreign_mortgage_interest_rate_pct": 0.0,
  "foreign_mortgage_type": "fixed",
  "foreign_mortgage_remaining_years": 0,
  "mortgages": [],
  "rental_income_monthly_jpy": 0,
  "property_paid_off_at_retirement": false,
  "property_planned_sale_age": null,
  "property_appreciation_pct": 0.0,
  "owns_foreign_property": false,
  "foreign_property_value_jpy": 0,
  "foreign_property_mortgage_jpy": 0,
  "foreign_property_rental_monthly_jpy": 0,
  "foreign_property_planned_sale_age": null,
  "foreign_property_appreciation_pct": 0.0,
  "gold_silver_value_jpy": 0,
  "crypto_value_jpy": 0,
  "rsu_unvested_value_jpy": 0,
  "rsu_vesting_annual_jpy": 0,
  "other_assets_jpy": 0
}