{
  "protocol_version": "1.10.0",
  "protocol_date_modified": "2026-08-30",
  "id": "macro-structural",
  "name_ja": "10年構造的マクロ・シナリオ（文脈補助）",
  "context_only": true,
  "theory_status": "conditional",
  "valuation_role": "assumption_support",
  "primary_value_eligible": false,
  "primary_value_reason": "企業価値・理論株価を直接算定せず、売上・Rf・ERP・Ke/WACC・terminal gへ渡す前提の整合を監査する場合だけ使う",
  "calculator_path": "/macro/",
  "methodology_path": "/academy/chapter/48/",
  "canonical_path": "/ai/macro-model.json",
  "horizon_years": 10,
  "scenario_order": [
    "bear",
    "base",
    "bull"
  ],
  "scenario_semantics": "Bear/Base/Bullは発生確率や信頼区間ではなく、同じ入力へ加算する機械的stress deltaです。",
  "default_scenario_adjustments": {
    "bear": {
      "potentialRealGrowth": -0.01,
      "outputGapShock": -0.02,
      "inflation0": -0.005,
      "termPremium0": 0.005,
      "termPremium10": 0.0025,
      "fxRiskPremium0": 0.01,
      "fxRiskPremium10": 0.005,
      "erp0": 0.01,
      "erp10": 0.01,
      "salesOtherRealGrowth0": -0.01,
      "salesOtherRealGrowth10": -0.01
    },
    "base": {},
    "bull": {
      "potentialRealGrowth": 0.01,
      "outputGapShock": 0.02,
      "inflation0": 0.005,
      "termPremium0": -0.0025,
      "termPremium10": -0.00125,
      "fxRiskPremium0": -0.005,
      "fxRiskPremium10": -0.0025,
      "erp0": -0.005,
      "erp10": -0.005,
      "salesOtherRealGrowth0": 0.01,
      "salesOtherRealGrowth10": 0.01
    }
  },
  "fx_convention": "foreign-currency cost in domestic currency; higher index = domestic-currency depreciation",
  "units": {
    "rates": "decimal",
    "gdp": "input_level_unit",
    "priceIndex": "input_index_unit",
    "fxIndex": "domestic_currency_per_foreign_currency_index",
    "sales": "input_level_unit"
  },
  "gordon_spread": {
    "minimum": 0.0025,
    "low_warning": 0.01
  },
  "input_manifest": [
    {
      "key": "horizonYears",
      "group": "horizon",
      "unit": "years",
      "required": false,
      "constraint": "指定時は10のみ"
    },
    {
      "key": "realGdp0",
      "group": "real_output",
      "unit": "input_level_unit",
      "required": true,
      "constraint": "> 0"
    },
    {
      "key": "potentialGdp0",
      "group": "real_output",
      "unit": "input_level_unit",
      "required": true,
      "constraint": "> 0"
    },
    {
      "key": "priceIndex0",
      "group": "real_output",
      "unit": "input_index_unit",
      "required": true,
      "constraint": "> 0"
    },
    {
      "key": "potentialRealGrowth",
      "group": "real_output",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "outputGapClosure",
      "group": "real_output",
      "unit": "decimal",
      "required": true,
      "constraint": "0〜1"
    },
    {
      "key": "outputGap0",
      "group": "real_output",
      "unit": "decimal",
      "required": false,
      "constraint": "−95%超〜500%以下。realGdp0/potentialGdp0−1と一致"
    },
    {
      "key": "inflation0",
      "group": "inflation_policy",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "inflationTarget",
      "group": "inflation_policy",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "inflationMeanReversion",
      "group": "inflation_policy",
      "unit": "decimal",
      "required": true,
      "constraint": "0〜1"
    },
    {
      "key": "outputGapInterestSensitivity",
      "group": "inflation_policy",
      "unit": "x",
      "required": false,
      "constraint": "0〜10"
    },
    {
      "key": "inflationOutputGapCoeff",
      "group": "inflation_policy",
      "unit": "x",
      "required": false,
      "constraint": "0〜10"
    },
    {
      "key": "inflationFxPassThrough",
      "group": "inflation_policy",
      "unit": "x",
      "required": false,
      "constraint": "0〜10"
    },
    {
      "key": "policyRate0",
      "group": "inflation_policy",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "neutralRealRate",
      "group": "inflation_policy",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "taylorInflationCoeff",
      "group": "inflation_policy",
      "unit": "x",
      "required": true,
      "constraint": "0〜10"
    },
    {
      "key": "taylorOutputGapCoeff",
      "group": "inflation_policy",
      "unit": "x",
      "required": true,
      "constraint": "0〜10"
    },
    {
      "key": "policySmoothing",
      "group": "inflation_policy",
      "unit": "decimal",
      "required": true,
      "constraint": "0〜1"
    },
    {
      "key": "termPremium0",
      "group": "long_rate",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "termPremium10",
      "group": "long_rate",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "foreignPolicyRate0",
      "group": "long_rate",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "foreignPolicyRate10",
      "group": "long_rate",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "fxIndex0",
      "group": "fx",
      "unit": "domestic_currency_per_foreign_currency_index",
      "required": true,
      "constraint": "> 0"
    },
    {
      "key": "fxInterestSensitivity",
      "group": "fx",
      "unit": "x",
      "required": true,
      "constraint": "0〜10"
    },
    {
      "key": "fxRiskPremium0",
      "group": "fx",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "fxRiskPremium10",
      "group": "fx",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "sales0",
      "group": "sales_bridge",
      "unit": "input_level_unit",
      "required": true,
      "constraint": "> 0"
    },
    {
      "key": "salesRealGdpBeta",
      "group": "sales_bridge",
      "unit": "x",
      "required": true,
      "constraint": "−10〜10"
    },
    {
      "key": "salesInflationPassThrough",
      "group": "sales_bridge",
      "unit": "x",
      "required": true,
      "constraint": "0〜3"
    },
    {
      "key": "salesFxExposure",
      "group": "sales_bridge",
      "unit": "x",
      "required": true,
      "constraint": "−3〜3"
    },
    {
      "key": "salesOtherRealGrowth0",
      "group": "sales_bridge",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "salesOtherRealGrowth10",
      "group": "sales_bridge",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "erp0",
      "group": "capital_cost",
      "unit": "decimal rate",
      "required": true,
      "constraint": "0以上〜1000%以下"
    },
    {
      "key": "erp10",
      "group": "capital_cost",
      "unit": "decimal rate",
      "required": true,
      "constraint": "0以上〜1000%以下"
    },
    {
      "key": "beta",
      "group": "capital_cost",
      "unit": "x",
      "required": true,
      "constraint": "−10〜10"
    },
    {
      "key": "preTaxCostOfDebt0",
      "group": "capital_cost",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "preTaxCostOfDebt10",
      "group": "capital_cost",
      "unit": "decimal rate",
      "required": true,
      "constraint": "−100%超〜1000%以下"
    },
    {
      "key": "taxRate",
      "group": "capital_cost",
      "unit": "decimal",
      "required": true,
      "constraint": "0〜1"
    },
    {
      "key": "debtRatio",
      "group": "capital_cost",
      "unit": "decimal",
      "required": true,
      "constraint": "0〜1"
    },
    {
      "key": "terminalRealGrowth",
      "group": "terminal",
      "unit": "decimal rate",
      "required": false,
      "constraint": "未指定時はpotentialRealGrowth。−100%超〜1000%以下"
    },
    {
      "key": "terminalInflation",
      "group": "terminal",
      "unit": "decimal rate",
      "required": false,
      "constraint": "未指定時はinflationTarget。−100%超〜1000%以下"
    },
    {
      "key": "terminalGrowth",
      "group": "terminal",
      "unit": "decimal rate",
      "required": false,
      "constraint": "未指定時はマクロ導出値。−100%超〜1000%以下。FCF成長を保証しない"
    },
    {
      "key": "scenarioAdjustments",
      "group": "scenario",
      "unit": "object of decimal deltas",
      "required": false,
      "constraint": "bear/base/bullへ加算。倍率ではない"
    }
  ],
  "scenario_adjustment_keys": [
    "potentialRealGrowth",
    "outputGapShock",
    "inflation0",
    "inflationTarget",
    "neutralRealRate",
    "policyRate0",
    "termPremium0",
    "termPremium10",
    "foreignPolicyRate0",
    "foreignPolicyRate10",
    "fxRiskPremium0",
    "fxRiskPremium10",
    "erp0",
    "erp10",
    "salesOtherRealGrowth0",
    "salesOtherRealGrowth10",
    "terminalRealGrowth",
    "terminalInflation",
    "terminalGrowth"
  ],
  "equations": [
    "潜在GDP_t = 潜在GDP_(t−1) × (1 + 潜在実質成長率)",
    "産出ギャップ_t = 産出ギャップ_(t−1) × (1 − ギャップ閉鎖率) − 感応度×前年実質政策金利ギャップ",
    "実質GDP_t = 潜在GDP_t × (1 + 産出ギャップ_t)",
    "名目GDP_t（基準価格単位） = 実質GDP_t × 物価指数_t / 物価指数_0",
    "インフレ_t = 平均回帰 + 係数×前年ギャップ + 係数×前年FX変化",
    "Fisher: 長期金利−タームプレミアム = (1+実質中立金利)×(1+インフレ)−1",
    "Taylor型目標政策金利 = Fisher中立名目金利 + aπ×(インフレ−目標) + ay×ギャップ",
    "政策金利_t = 平滑化×政策金利_(t−1) + (1−平滑化)×Taylor目標",
    "gross UIP差分 = (1+国内政策金利)/(1+海外政策金利)−1",
    "FX変化率 = 金利差感応度×gross UIP差分 + 為替リスクプレミアム",
    "売上係数 = (1+β×実質GDP成長)×(1+物価転嫁×インフレ)×(1+FX感応度×FX変化)×(1+その他実質成長)",
    "Ke = Rf + β×ERP; WACC = Ke×(1−D/V) + after-tax Kd×D/V"
  ],
  "conditional_assumptions": [
    "Taylor型の政策反応は係数を外生入力する条件付きルールで、中央銀行の予測・保証ではありません。",
    "Fisher関係はインフレ期待を当年インフレで近似し、長期金利へタームプレミアムを加える構造仮定です。",
    "為替は金利差とリスクプレミアムだけで決まるUIP型の条件付き経路です。UIPは実証的に不安定で、為替予測を保証しません。",
    "金融条件→産出ギャップ→物価の追加フィードバックはラグ付き係数を入力した場合だけ有効で、既定値は0です。",
    "売上は実質GDP・インフレ転嫁・FX・その他実質成長の積で橋渡しし、既に名目売上成長へ含まれる項を再入力しません。",
    "ERP、β、信用スプレッド、D/V、税率は一定または線形補間する評価前提であり、景気循環との同時推定ではありません。",
    "各年の値は年末値です。産出ギャップ・実質政策金利・FXから物価へのフィードバックは前年値を使う1年ラグです。"
  ],
  "double_counting_risks": [
    "企業売上成長へ実質GDP・インフレ・FXを橋渡しした後に、同じインフレや名目GDP成長を別途加えると二重計上になります。",
    "Rfは長期金利としてKe/WACCへ既に渡されるため、同じ金利上昇をERPや手動の割引率へ重ねて加えないでください。",
    "為替リスクプレミアムをFX経路とERPへ同時に加える場合、海外売上・国別リスクの重複を一次資料で確認してください。"
  ],
  "theory_references": [
    {
      "topic": "Taylor rule",
      "title": "Federal Reserve Bank of San Francisco — The Taylor Rule and Monetary Policy",
      "url": "https://www.frbsf.org/research-and-insights/publications/economic-letter/2017/05/taylor-rule-monetary-policy/",
      "implementation_rule": "Taylor型反応は係数を外生入力する条件付きベンチマークであり、中央銀行の予測・保証と呼ばない"
    },
    {
      "topic": "Fisher relation",
      "title": "Federal Reserve Bank of St. Louis — Deflation and the Fisher Equation",
      "url": "https://files.stlouisfed.org/files/htdocs/publications/mt/20101001/cover.pdf",
      "implementation_rule": "名目金利を実質金利・期待インフレ・タームプレミアムへ分解し、複利恒等式を検算する"
    },
    {
      "topic": "Uncovered interest parity (UIP)",
      "title": "IMF Working Paper 06/96 — Uncovered Interest Parity",
      "url": "https://www.imf.org/external/pubs/ft/wp/2006/wp0696.pdf",
      "implementation_rule": "為替は金利差とリスクプレミアムから作る条件付き経路であり、短期の予測力や投資成果を保証しない"
    }
  ],
  "stop_conditions": [
    "必須入力に有限な数値がない（NaN/Infinityは禁止）",
    "horizonYearsを指定する場合に10以外を指定した",
    "GDP・物価指数・為替指数・売上の初期水準が正でない",
    "outputGap0が−95%超〜500%以下でない、またはrealGdp0/potentialGdp0−1と一致しない",
    "outputGapClosure・inflationMeanReversion・policySmoothingが0〜1外",
    "任意のフィードバック係数（outputGapInterestSensitivity・inflationOutputGapCoeff・inflationFxPassThrough）が0〜10外",
    "Taylor係数が0〜10外",
    "FX金利差感応度が0〜10外",
    "売上インフレ転嫁率が0〜3外",
    "β・FX感応度がモデルの係数範囲（β −10〜10、FX −3〜3）外",
    "税率とD/Vが0〜1外",
    "ERPは0以上の内部小数で指定してください（erp0・erp10が0未満）",
    "率入力またはterminal成長率が−100%超〜1000%以下の範囲外、または有限でない",
    "シナリオ差分が有限値にならない、または調整後の初期ギャップが不正",
    "各年の成長・金利・為替の複利係数が正または有限にならない",
    "各年の出力に非有限値がある",
    "安定期の実質成長・物価・売上ブリッジに0以下または非有限の複利係数がある",
    "安定期の名目成長率または割引率が有限値にならない",
    "安定期WACC−terminal gが25bp未満（Gordon継続価値を計算しない）"
  ],
  "bridge_rules": [
    "macro_bridge_status=already_embeddedなら会社計画へ含まれる物価・為替・名目成長を追加しない",
    "マクロ売上橋渡し後の同じインフレ・FX・名目GDP成長を別途売上へ足さない",
    "Rfは長期金利としてKe/WACCへ一度だけ渡し、同じ金利上昇をERP・手動割引率へ重ねない",
    "terminal gは外生入力またはマクロ導出値の一つだけを採用し、FCF成長を保証しない",
    "マクロはprimary model_idにならず、使用時は報告Schemaのmacro_contextへ分離する"
  ],
  "calibration_rules": [
    "使用時は基準日、対象経済、国内通貨、比較外国通貨を固定し、観測値と係数のsource_refsを残す",
    "係数が校正済みか外部推定値か単なる仮定かをcoefficient_statusで分離し、推定期間と限界を記録する",
    "assumed係数でもindicativeな条件付きシナリオは計算できるが、マクロ文脈を根拠にprofessional_standard_passedとはしない",
    "macro_context.status=usedでは全required入力keyを各1回だけ返し、未知key・重複key・根拠のないevidence_refsを許さない",
    "Bear→Base→Bullの順を固定し、各okシナリオは全項目を持つ年末値10行（1〜10年を各1行）を返してyear10・terminal・企業価値bridgeと再照合する",
    "blockedシナリオはrowsを空、year10とterminalをnullにし、非空のstop_reasonを返す"
  ],
  "known_limitations": [
    "縮約形の年次モデルであり、合理的期待・金融部門・財政・供給制約を同時に解くDSGE/VARではない",
    "Fisher構成差は同じ式の再計算であり、市場金利・期待インフレによる独立検証ではない",
    "UIPの短期予測力は弱く、為替経路は特にストレス軸として扱う",
    "マクロ由来terminal gは売上と名目GDPの上限クロスチェックで、FCF成長を保証しない"
  ],
  "output": {
    "value_at": "context",
    "basis": "conditional_scenario",
    "unit": "input-defined levels and decimal rates",
    "primary_value_eligible": false
  }
}
