{
  "schema_version": "market-tactical-agent-v1.1",
  "generated_at": "2026-08-21T06:48:07+09:00",
  "source_status": {
    "fmp": {
      "status": "ok",
      "quotes_ok": 19,
      "historical_ok": 19,
      "news_ok": 18,
      "calendar_ok": true,
      "symbols_failed": [],
      "symbols_requested": 19,
      "cache_enabled": true,
      "cache_hit_count": 1,
      "cache_miss_count": 62,
      "cache_hit_endpoints": {
        "earnings-calendar": 1
      },
      "cache_hit_endpoint_oldest_age_minutes": {
        "earnings-calendar": 1.0
      },
      "oldest_cache_hit_age_minutes": 1.0,
      "max_cache_age_minutes": 1.0,
      "quote_cache_ttl_minutes": 15,
      "news_cache_ttl_minutes": 30,
      "market_movers_cache_ttl_minutes": 15,
      "calendar_cache_ttl_minutes": 360,
      "symbols_failed_count": 0,
      "symbols_succeeded": 19
    },
    "jquants": {
      "status": "ok",
      "daily_ok": 24,
      "master_ok": 24,
      "earnings_calendar_ok": 24,
      "margin_interest_ok": 24,
      "financial_summary_ok": true,
      "capabilities": {
        "listed_info": "ok",
        "daily_bars": "ok",
        "earnings_calendar": "ok",
        "financial_summary": "ok",
        "financial_details": "unavailable",
        "margin_interest": "ok",
        "short_ratio": "unavailable",
        "trading_breakdown": "unavailable"
      },
      "symbols_failed": [],
      "symbols_requested": 24,
      "symbols_failed_count": 0,
      "symbols_succeeded": 24
    },
    "universe": {
      "mode": "curated_core_with_bounded_discovery",
      "generated_at": "2026-08-21T06:48:07+09:00",
      "curated": {
        "fmp_symbol_count": 17,
        "jp_symbol_count": 14,
        "exposure_theme_count": 4
      },
      "discovery": {
        "enabled": true,
        "lanes": [
          "event",
          "change",
          "pressure",
          "intraday"
        ],
        "fmp_event_extra_candidates": 1424,
        "fmp_event_extra_allowed": 0,
        "fmp_event_extra_selected": 0,
        "fmp_event_extra_candidates_raw": 1424,
        "fmp_event_extra_prefiltered": 2,
        "fmp_event_extra_deep_fetch_selected": 2,
        "fmp_event_extra_allowed_after_quality": 0,
        "fmp_event_extra_rejected_after_quality": 2,
        "fmp_market_discovery_candidates": 50,
        "fmp_market_discovery_allowed": 0,
        "fmp_market_discovery_rejected_missing_price": 0,
        "fmp_market_discovery_rejected_thin_exchange": 0,
        "fmp_market_discovery_rejected_low_dollar_volume": 50,
        "fmp_market_discovery_rejected_low_move": 0,
        "fmp_market_discovery_rejected_duplicate_or_curated": 0,
        "jp_discovery_candidates": 60,
        "jp_discovery_allowed": 10,
        "raw_candidate_count": 1565,
        "allowed_candidate_count": 43,
        "discovered_candidate_count": 12,
        "skipped_reasons": [],
        "discovered_signal_count": 2,
        "fmp_event_extra_signal_count": 0
      },
      "request_budget": {
        "max_fmp_quote_symbols": 50,
        "max_fmp_event_extra_symbols": 18,
        "max_fmp_market_discovery_raw": 50,
        "max_fmp_market_discovery_symbols": 15,
        "max_jp_deep_symbols": 40,
        "max_jp_discovery_symbols": 10,
        "max_total_external_requests_estimate": 280,
        "cache_ttl_minutes_quote": 15,
        "cache_ttl_minutes_news": 30,
        "cache_ttl_minutes_market_movers": 15,
        "cache_ttl_hours_calendar": 6,
        "cache_ttl_hours_historical_eod": 24,
        "cache_ttl_hours_master_listed": 24,
        "cache_ttl_hours_jq_daily_bars": 6
      },
      "request_estimate": 166,
      "candidates": [
        {
          "symbol": "NVDA",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:NVDA"
        },
        {
          "symbol": "AMD",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:AMD"
        },
        {
          "symbol": "AVGO",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:AVGO"
        },
        {
          "symbol": "SMH",
          "market": "US ETF",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:SMH"
        },
        {
          "symbol": "SOXX",
          "market": "US ETF",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:SOXX"
        },
        {
          "symbol": "AAPL",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Mega-cap Tech",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:AAPL"
        },
        {
          "symbol": "MSFT",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Mega-cap Tech",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:MSFT"
        },
        {
          "symbol": "TSLA",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Auto / Growth",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:TSLA"
        },
        {
          "symbol": "COIN",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Crypto",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:COIN"
        },
        {
          "symbol": "MSTR",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Crypto",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:MSTR"
        },
        {
          "symbol": "BTCUSD",
          "market": "Crypto",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Crypto",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:BTCUSD"
        },
        {
          "symbol": "ETHUSD",
          "market": "Crypto",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Crypto",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:ETHUSD"
        },
        {
          "symbol": "USDJPY",
          "market": "FX",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "USDJPY / Exporters",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:USDJPY"
        },
        {
          "symbol": "XOM",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Energy / Commodities",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:XOM"
        },
        {
          "symbol": "CVX",
          "market": "US",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Energy / Commodities",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:CVX"
        },
        {
          "symbol": "SPY",
          "market": "US ETF",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Major Indices",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:SPY"
        },
        {
          "symbol": "QQQ",
          "market": "US ETF",
          "source": "curated_core",
          "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
          "theme_hint": "Major Indices",
          "priority_hint": 100,
          "discovered": false,
          "name": "",
          "code": "",
          "dedupe_key": "FMP:QQQ"
        },
        {
          "symbol": "8035",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "東京エレクトロン",
          "code": "80350",
          "dedupe_key": "JP:8035"
        },
        {
          "symbol": "6857",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "アドバンテスト",
          "code": "68570",
          "dedupe_key": "JP:6857"
        },
        {
          "symbol": "6723",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "ルネサスエレクトロニクス",
          "code": "67230",
          "dedupe_key": "JP:6723"
        },
        {
          "symbol": "6920",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 100,
          "discovered": false,
          "name": "レーザーテック",
          "code": "69200",
          "dedupe_key": "JP:6920"
        },
        {
          "symbol": "8698",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Crypto",
          "priority_hint": 100,
          "discovered": false,
          "name": "マネックスグループ",
          "code": "86980",
          "dedupe_key": "JP:8698"
        },
        {
          "symbol": "8473",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Crypto",
          "priority_hint": 100,
          "discovered": false,
          "name": "SBIホールディングス",
          "code": "84730",
          "dedupe_key": "JP:8473"
        },
        {
          "symbol": "7203",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "USDJPY / Exporters",
          "priority_hint": 100,
          "discovered": false,
          "name": "トヨタ自動車",
          "code": "72030",
          "dedupe_key": "JP:7203"
        },
        {
          "symbol": "7267",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "USDJPY / Exporters",
          "priority_hint": 100,
          "discovered": false,
          "name": "本田技研工業",
          "code": "72670",
          "dedupe_key": "JP:7267"
        },
        {
          "symbol": "6758",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "USDJPY / Exporters",
          "priority_hint": 100,
          "discovered": false,
          "name": "ソニーグループ",
          "code": "67580",
          "dedupe_key": "JP:6758"
        },
        {
          "symbol": "6902",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "USDJPY / Exporters",
          "priority_hint": 100,
          "discovered": false,
          "name": "デンソー",
          "code": "69020",
          "dedupe_key": "JP:6902"
        },
        {
          "symbol": "1605",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Energy / Commodities",
          "priority_hint": 100,
          "discovered": false,
          "name": "INPEX",
          "code": "16050",
          "dedupe_key": "JP:1605"
        },
        {
          "symbol": "5020",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Energy / Commodities",
          "priority_hint": 100,
          "discovered": false,
          "name": "ENEOSホールディングス",
          "code": "50200",
          "dedupe_key": "JP:5020"
        },
        {
          "symbol": "8058",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Energy / Commodities",
          "priority_hint": 100,
          "discovered": false,
          "name": "三菱商事",
          "code": "80580",
          "dedupe_key": "JP:8058"
        },
        {
          "symbol": "8001",
          "market": "JP",
          "source": "curated_core",
          "reason": "Curated Japan impact name in the Market Signal Radar core.",
          "theme_hint": "Energy / Commodities",
          "priority_hint": 100,
          "discovered": false,
          "name": "伊藤忠商事",
          "code": "80010",
          "dedupe_key": "JP:8001"
        },
        {
          "symbol": "IPST",
          "market": "US",
          "source": "fmp_event_extra",
          "reason": "Bounded FMP earnings-calendar extra prequalified by market movers before liquidity/news filtering.",
          "theme_hint": "Event Calendar",
          "priority_hint": 121.0,
          "discovered": true,
          "name": "IP Strategy Holdings, Inc.",
          "code": "",
          "dedupe_key": "FMP:IPST"
        },
        {
          "symbol": "ARBB",
          "market": "US",
          "source": "fmp_event_extra",
          "reason": "Bounded FMP earnings-calendar extra prequalified by market movers before liquidity/news filtering.",
          "theme_hint": "Event Calendar",
          "priority_hint": 121.0,
          "discovered": true,
          "name": "ARB IOT Group Limited",
          "code": "",
          "dedupe_key": "FMP:ARBB"
        },
        {
          "symbol": "9984",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid technology holding company connected to US tech and AI risk tone.",
          "theme_hint": "Mega-cap Tech / AI",
          "priority_hint": 96.0,
          "discovered": true,
          "name": "SoftBank Group",
          "code": "99840",
          "dedupe_key": "JP:9984"
        },
        {
          "symbol": "9983",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid index-heavy consumer name sensitive to broad Japan risk tone.",
          "theme_hint": "Consumer / Index Weight",
          "priority_hint": 94.0,
          "discovered": true,
          "name": "Fast Retailing",
          "code": "99830",
          "dedupe_key": "JP:9983"
        },
        {
          "symbol": "6861",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid automation bellwether linked to global capex and semiconductor cycles.",
          "theme_hint": "Automation / Semiconductor",
          "priority_hint": 92.0,
          "discovered": true,
          "name": "Keyence",
          "code": "68610",
          "dedupe_key": "JP:6861"
        },
        {
          "symbol": "6146",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid semiconductor equipment candidate connected to US chip moves.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 91.0,
          "discovered": true,
          "name": "Disco",
          "code": "61460",
          "dedupe_key": "JP:6146"
        },
        {
          "symbol": "7735",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid semiconductor equipment candidate connected to US chip moves.",
          "theme_hint": "Semiconductor / AI",
          "priority_hint": 90.0,
          "discovered": true,
          "name": "SCREEN Holdings",
          "code": "77350",
          "dedupe_key": "JP:7735"
        },
        {
          "symbol": "6981",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid electronics exporter connected to USDJPY and US tech demand.",
          "theme_hint": "Electronics / Exporters",
          "priority_hint": 88.0,
          "discovered": true,
          "name": "Murata Manufacturing",
          "code": "69810",
          "dedupe_key": "JP:6981"
        },
        {
          "symbol": "6762",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid component maker connected to US tech and currency sensitivity.",
          "theme_hint": "Electronics / Exporters",
          "priority_hint": 87.0,
          "discovered": true,
          "name": "TDK",
          "code": "67620",
          "dedupe_key": "JP:6762"
        },
        {
          "symbol": "6501",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid industrial technology name connected to global capex tone.",
          "theme_hint": "Industrial Tech",
          "priority_hint": 86.0,
          "discovered": true,
          "name": "Hitachi",
          "code": "65010",
          "dedupe_key": "JP:6501"
        },
        {
          "symbol": "6503",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid automation and electronics name connected to export and capex themes.",
          "theme_hint": "Industrial Tech",
          "priority_hint": 85.0,
          "discovered": true,
          "name": "Mitsubishi Electric",
          "code": "65030",
          "dedupe_key": "JP:6503"
        },
        {
          "symbol": "6954",
          "market": "JP",
          "source": "fallback_seed",
          "reason": "Liquid factory automation candidate connected to global manufacturing and USDJPY.",
          "theme_hint": "Automation / Exporters",
          "priority_hint": 84.0,
          "discovered": true,
          "name": "Fanuc",
          "code": "69540",
          "dedupe_key": "JP:6954"
        }
      ]
    }
  },
  "lanes": {
    "change": "Change Feed",
    "pressure": "Pressure Radar",
    "event": "Event Radar",
    "cross_market": "Japan ↔ US Cross-Market Radar",
    "intraday": "Intraday Radar"
  },
  "run_context": {
    "generated_at": "2026-08-21T06:48:07+09:00",
    "timezone": "Asia/Tokyo",
    "intended_run_window": "after_us_close_before_tokyo_open",
    "session_state_basis": "time_window_only_not_exchange_calendar",
    "us_session_state": "post_close_window",
    "tokyo_session_state": "pre_open_window",
    "driver_observation_date": "2026-08-20",
    "japan_trading_date": "2026-08-20",
    "jp_confirmation_available": false,
    "jp_confirmation_basis": "latest_japan_trading_date_precedes_generation_date_or_is_unavailable",
    "next_check": "Tokyo open"
  },
  "freshness": {
    "generated_at": "2026-08-21T06:48:07+09:00",
    "timezone": "Asia/Tokyo",
    "next_expected_refresh_at": "2026-08-24T06:20:00+09:00",
    "refresh_grace_minutes": 90,
    "schedule_basis": "after_us_close_before_tokyo_open",
    "stale_after_hours": 24,
    "expired_after_hours": 72,
    "status_at_generation": "fresh",
    "age_hours_at_generation": 0.0,
    "overdue_minutes_at_generation": 0.0,
    "freshness_policy": "schedule-aware browser state uses the published next refresh and grace window without rewriting generated_at"
  },
  "market_setup": {
    "title": "Overnight US → Japan Market Setup",
    "summary": "Crypto → Japan Brokers is the lead overnight input with Tokyo prior-close alignment present.",
    "primary_drivers": [
      {
        "title": "Crypto → Japan Brokers",
        "driver_symbols": [
          "BTCUSD",
          "ETHUSD",
          "COIN",
          "MSTR"
        ],
        "affected_basket_name": "Japan Crypto / Brokerage",
        "impact_score": 90
      },
      {
        "title": "USDJPY → Japan Exporters",
        "driver_symbols": [
          "USDJPY",
          "SPY",
          "QQQ"
        ],
        "affected_basket_name": "Japan Exporters",
        "impact_score": 66
      },
      {
        "title": "Energy → Japan Resources / Trading Houses",
        "driver_symbols": [
          "XOM",
          "CVX"
        ],
        "affected_basket_name": "Japan Resources / Trading Houses",
        "impact_score": 57
      },
      {
        "title": "US AI → Japan Semiconductor",
        "driver_symbols": [
          "NVDA",
          "AMD",
          "AVGO",
          "SMH",
          "SOXX"
        ],
        "affected_basket_name": "Japan Semiconductor Equipment",
        "impact_score": 50
      }
    ],
    "top_baskets": [
      "Japan Crypto / Brokerage",
      "Japan Exporters",
      "Japan Resources / Trading Houses",
      "Japan Semiconductor Equipment"
    ],
    "risk_tone": "risk_on_prior_alignment",
    "generated_at": "2026-08-21T06:48:07+09:00"
  },
  "universe": {
    "mode": "curated_core_with_bounded_discovery",
    "generated_at": "2026-08-21T06:48:07+09:00",
    "curated": {
      "fmp_symbol_count": 17,
      "jp_symbol_count": 14,
      "exposure_theme_count": 4
    },
    "discovery": {
      "enabled": true,
      "lanes": [
        "event",
        "change",
        "pressure",
        "intraday"
      ],
      "fmp_event_extra_candidates": 1424,
      "fmp_event_extra_allowed": 0,
      "fmp_event_extra_selected": 0,
      "fmp_event_extra_candidates_raw": 1424,
      "fmp_event_extra_prefiltered": 2,
      "fmp_event_extra_deep_fetch_selected": 2,
      "fmp_event_extra_allowed_after_quality": 0,
      "fmp_event_extra_rejected_after_quality": 2,
      "fmp_market_discovery_candidates": 50,
      "fmp_market_discovery_allowed": 0,
      "fmp_market_discovery_rejected_missing_price": 0,
      "fmp_market_discovery_rejected_thin_exchange": 0,
      "fmp_market_discovery_rejected_low_dollar_volume": 50,
      "fmp_market_discovery_rejected_low_move": 0,
      "fmp_market_discovery_rejected_duplicate_or_curated": 0,
      "jp_discovery_candidates": 60,
      "jp_discovery_allowed": 10,
      "raw_candidate_count": 1565,
      "allowed_candidate_count": 43,
      "discovered_candidate_count": 12,
      "skipped_reasons": [],
      "discovered_signal_count": 2,
      "fmp_event_extra_signal_count": 0
    },
    "request_budget": {
      "max_fmp_quote_symbols": 50,
      "max_fmp_event_extra_symbols": 18,
      "max_fmp_market_discovery_raw": 50,
      "max_fmp_market_discovery_symbols": 15,
      "max_jp_deep_symbols": 40,
      "max_jp_discovery_symbols": 10,
      "max_total_external_requests_estimate": 280,
      "cache_ttl_minutes_quote": 15,
      "cache_ttl_minutes_news": 30,
      "cache_ttl_minutes_market_movers": 15,
      "cache_ttl_hours_calendar": 6,
      "cache_ttl_hours_historical_eod": 24,
      "cache_ttl_hours_master_listed": 24,
      "cache_ttl_hours_jq_daily_bars": 6
    },
    "request_estimate": 166,
    "candidates": [
      {
        "symbol": "NVDA",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:NVDA"
      },
      {
        "symbol": "AMD",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:AMD"
      },
      {
        "symbol": "AVGO",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:AVGO"
      },
      {
        "symbol": "SMH",
        "market": "US ETF",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:SMH"
      },
      {
        "symbol": "SOXX",
        "market": "US ETF",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:SOXX"
      },
      {
        "symbol": "AAPL",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Mega-cap Tech",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:AAPL"
      },
      {
        "symbol": "MSFT",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Mega-cap Tech",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:MSFT"
      },
      {
        "symbol": "TSLA",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Auto / Growth",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:TSLA"
      },
      {
        "symbol": "COIN",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Crypto",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:COIN"
      },
      {
        "symbol": "MSTR",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Crypto",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:MSTR"
      },
      {
        "symbol": "BTCUSD",
        "market": "Crypto",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Crypto",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:BTCUSD"
      },
      {
        "symbol": "ETHUSD",
        "market": "Crypto",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Crypto",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:ETHUSD"
      },
      {
        "symbol": "USDJPY",
        "market": "FX",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "USDJPY / Exporters",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:USDJPY"
      },
      {
        "symbol": "XOM",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Energy / Commodities",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:XOM"
      },
      {
        "symbol": "CVX",
        "market": "US",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Energy / Commodities",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:CVX"
      },
      {
        "symbol": "SPY",
        "market": "US ETF",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Major Indices",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:SPY"
      },
      {
        "symbol": "QQQ",
        "market": "US ETF",
        "source": "curated_core",
        "reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
        "theme_hint": "Major Indices",
        "priority_hint": 100,
        "discovered": false,
        "name": "",
        "code": "",
        "dedupe_key": "FMP:QQQ"
      },
      {
        "symbol": "8035",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "東京エレクトロン",
        "code": "80350",
        "dedupe_key": "JP:8035"
      },
      {
        "symbol": "6857",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "アドバンテスト",
        "code": "68570",
        "dedupe_key": "JP:6857"
      },
      {
        "symbol": "6723",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "ルネサスエレクトロニクス",
        "code": "67230",
        "dedupe_key": "JP:6723"
      },
      {
        "symbol": "6920",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 100,
        "discovered": false,
        "name": "レーザーテック",
        "code": "69200",
        "dedupe_key": "JP:6920"
      },
      {
        "symbol": "8698",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Crypto",
        "priority_hint": 100,
        "discovered": false,
        "name": "マネックスグループ",
        "code": "86980",
        "dedupe_key": "JP:8698"
      },
      {
        "symbol": "8473",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Crypto",
        "priority_hint": 100,
        "discovered": false,
        "name": "SBIホールディングス",
        "code": "84730",
        "dedupe_key": "JP:8473"
      },
      {
        "symbol": "7203",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "USDJPY / Exporters",
        "priority_hint": 100,
        "discovered": false,
        "name": "トヨタ自動車",
        "code": "72030",
        "dedupe_key": "JP:7203"
      },
      {
        "symbol": "7267",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "USDJPY / Exporters",
        "priority_hint": 100,
        "discovered": false,
        "name": "本田技研工業",
        "code": "72670",
        "dedupe_key": "JP:7267"
      },
      {
        "symbol": "6758",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "USDJPY / Exporters",
        "priority_hint": 100,
        "discovered": false,
        "name": "ソニーグループ",
        "code": "67580",
        "dedupe_key": "JP:6758"
      },
      {
        "symbol": "6902",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "USDJPY / Exporters",
        "priority_hint": 100,
        "discovered": false,
        "name": "デンソー",
        "code": "69020",
        "dedupe_key": "JP:6902"
      },
      {
        "symbol": "1605",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Energy / Commodities",
        "priority_hint": 100,
        "discovered": false,
        "name": "INPEX",
        "code": "16050",
        "dedupe_key": "JP:1605"
      },
      {
        "symbol": "5020",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Energy / Commodities",
        "priority_hint": 100,
        "discovered": false,
        "name": "ENEOSホールディングス",
        "code": "50200",
        "dedupe_key": "JP:5020"
      },
      {
        "symbol": "8058",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Energy / Commodities",
        "priority_hint": 100,
        "discovered": false,
        "name": "三菱商事",
        "code": "80580",
        "dedupe_key": "JP:8058"
      },
      {
        "symbol": "8001",
        "market": "JP",
        "source": "curated_core",
        "reason": "Curated Japan impact name in the Market Signal Radar core.",
        "theme_hint": "Energy / Commodities",
        "priority_hint": 100,
        "discovered": false,
        "name": "伊藤忠商事",
        "code": "80010",
        "dedupe_key": "JP:8001"
      },
      {
        "symbol": "IPST",
        "market": "US",
        "source": "fmp_event_extra",
        "reason": "Bounded FMP earnings-calendar extra prequalified by market movers before liquidity/news filtering.",
        "theme_hint": "Event Calendar",
        "priority_hint": 121.0,
        "discovered": true,
        "name": "IP Strategy Holdings, Inc.",
        "code": "",
        "dedupe_key": "FMP:IPST"
      },
      {
        "symbol": "ARBB",
        "market": "US",
        "source": "fmp_event_extra",
        "reason": "Bounded FMP earnings-calendar extra prequalified by market movers before liquidity/news filtering.",
        "theme_hint": "Event Calendar",
        "priority_hint": 121.0,
        "discovered": true,
        "name": "ARB IOT Group Limited",
        "code": "",
        "dedupe_key": "FMP:ARBB"
      },
      {
        "symbol": "9984",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid technology holding company connected to US tech and AI risk tone.",
        "theme_hint": "Mega-cap Tech / AI",
        "priority_hint": 96.0,
        "discovered": true,
        "name": "SoftBank Group",
        "code": "99840",
        "dedupe_key": "JP:9984"
      },
      {
        "symbol": "9983",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid index-heavy consumer name sensitive to broad Japan risk tone.",
        "theme_hint": "Consumer / Index Weight",
        "priority_hint": 94.0,
        "discovered": true,
        "name": "Fast Retailing",
        "code": "99830",
        "dedupe_key": "JP:9983"
      },
      {
        "symbol": "6861",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid automation bellwether linked to global capex and semiconductor cycles.",
        "theme_hint": "Automation / Semiconductor",
        "priority_hint": 92.0,
        "discovered": true,
        "name": "Keyence",
        "code": "68610",
        "dedupe_key": "JP:6861"
      },
      {
        "symbol": "6146",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid semiconductor equipment candidate connected to US chip moves.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 91.0,
        "discovered": true,
        "name": "Disco",
        "code": "61460",
        "dedupe_key": "JP:6146"
      },
      {
        "symbol": "7735",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid semiconductor equipment candidate connected to US chip moves.",
        "theme_hint": "Semiconductor / AI",
        "priority_hint": 90.0,
        "discovered": true,
        "name": "SCREEN Holdings",
        "code": "77350",
        "dedupe_key": "JP:7735"
      },
      {
        "symbol": "6981",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid electronics exporter connected to USDJPY and US tech demand.",
        "theme_hint": "Electronics / Exporters",
        "priority_hint": 88.0,
        "discovered": true,
        "name": "Murata Manufacturing",
        "code": "69810",
        "dedupe_key": "JP:6981"
      },
      {
        "symbol": "6762",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid component maker connected to US tech and currency sensitivity.",
        "theme_hint": "Electronics / Exporters",
        "priority_hint": 87.0,
        "discovered": true,
        "name": "TDK",
        "code": "67620",
        "dedupe_key": "JP:6762"
      },
      {
        "symbol": "6501",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid industrial technology name connected to global capex tone.",
        "theme_hint": "Industrial Tech",
        "priority_hint": 86.0,
        "discovered": true,
        "name": "Hitachi",
        "code": "65010",
        "dedupe_key": "JP:6501"
      },
      {
        "symbol": "6503",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid automation and electronics name connected to export and capex themes.",
        "theme_hint": "Industrial Tech",
        "priority_hint": 85.0,
        "discovered": true,
        "name": "Mitsubishi Electric",
        "code": "65030",
        "dedupe_key": "JP:6503"
      },
      {
        "symbol": "6954",
        "market": "JP",
        "source": "fallback_seed",
        "reason": "Liquid factory automation candidate connected to global manufacturing and USDJPY.",
        "theme_hint": "Automation / Exporters",
        "priority_hint": 84.0,
        "discovered": true,
        "name": "Fanuc",
        "code": "69540",
        "dedupe_key": "JP:6954"
      }
    ]
  },
  "tactical_summary": {
    "primary_theme": "Crypto / Brokerage",
    "theme_id": "crypto",
    "signal_id": "cross-crypto_japan_brokers",
    "primary_impact_theme": {
      "signal_id": "cross-crypto_japan_brokers",
      "theme_id": "crypto",
      "theme_label": "Crypto / Brokerage",
      "impact_score": 90,
      "priority_score": 0.81,
      "actionability_score": 0.72,
      "watch_priority_score": 0.67,
      "reviewability_score": 0.72,
      "divergence": "Overextended",
      "follow_fade_bias": "Follow with fade risk",
      "scenario_bias": "Follow with fade risk",
      "confidence": 0.62,
      "confidence_label": "Medium-High",
      "pre_open_watch": [
        "BTC",
        "ETH",
        "COIN/MSTR",
        "USDJPY"
      ],
      "watch_reason": "Crypto proxies and JP brokerage reaction are split, reducing actionability but keeping watch risk active."
    },
    "primary_watch_theme": {
      "signal_id": "cross-usdjpy_japan_exporters",
      "theme_id": "exporters",
      "theme_label": "Exporters",
      "impact_score": 66,
      "priority_score": 0.63,
      "actionability_score": 0.22,
      "watch_priority_score": 0.49,
      "reviewability_score": 0.22,
      "divergence": "No clean edge",
      "follow_fade_bias": "No clean edge",
      "scenario_bias": "No clean edge",
      "confidence": 0.42,
      "confidence_label": "Low-Medium",
      "pre_open_watch": [
        "USDJPY",
        "US index futures",
        "Nikkei futures",
        "US peer stocks"
      ],
      "watch_reason": "Exporter participation is split while FX and US index tone are active."
    },
    "headline": "Primary impact is Crypto / Brokerage; Exporters is the highest watch-risk theme.",
    "body": "Crypto / Brokerage is the main impact theme: overseas input is active, but Japan reaction may already be stretched. Exporters is the highest watch-risk theme because exporter participation is split while FX and US index tone are active.",
    "watchline": "Watch before open: BTC, ETH, USDJPY, US index futures.",
    "divergence": "Overextended",
    "follow_fade_bias": "Follow with fade risk",
    "scenario_bias": "Follow with fade risk",
    "confidence": 0.62,
    "confidence_label": "Medium-High"
  },
  "theme_priority_ranking": [
    {
      "rank": 1,
      "signal_id": "cross-crypto_japan_brokers",
      "theme_id": "crypto",
      "theme_label": "Crypto / Brokerage",
      "priority_score": 0.81,
      "actionability_score": 0.72,
      "reviewability_score": 0.72,
      "watch_priority_score": 0.67,
      "divergence": "Overextended",
      "follow_fade_bias": "Follow with fade risk",
      "scenario_bias": "Follow with fade risk",
      "confidence": 0.62,
      "confidence_label": "Medium-High",
      "pre_open_watch": [
        "BTC",
        "ETH",
        "COIN/MSTR",
        "USDJPY"
      ],
      "leader_laggard": {
        "leaders": [
          {
            "code": "8698",
            "name": "マネックスグループ",
            "score": 1.0,
            "reason": "Stronger recent reaction inside the Japan Crypto / Brokerage basket."
          }
        ],
        "laggards": [
          {
            "code": "8473",
            "name": "ＳＢＩホールディングス",
            "score": 1.0,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "note": ""
      },
      "primary_flags": {
        "is_primary_impact": true,
        "is_primary_watch": false,
        "legacy_is_primary_theme": true
      },
      "is_primary_impact": true,
      "is_primary_watch": false
    },
    {
      "rank": 2,
      "signal_id": "cross-energy_japan_resources_trading_houses",
      "theme_id": "energy",
      "theme_label": "Energy / Trading Houses",
      "priority_score": 0.76,
      "actionability_score": 0.73,
      "reviewability_score": 0.73,
      "watch_priority_score": 0.5,
      "divergence": "Aligned",
      "follow_fade_bias": "Provisional follow",
      "scenario_bias": "Provisional follow",
      "confidence": 0.66,
      "confidence_label": "Medium-High",
      "pre_open_watch": [
        "WTI",
        "XOM/CVX",
        "USDJPY",
        "Trading company reaction"
      ],
      "leader_laggard": {
        "leaders": [
          {
            "code": "5020",
            "name": "ＥＮＥＯＳホールディングス",
            "score": 0.75,
            "reason": "Stronger recent reaction inside the Japan Resources / Trading Houses basket."
          }
        ],
        "laggards": [
          {
            "code": "1605",
            "name": "ＩＮＰＥＸ",
            "score": 0.53,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "note": ""
      },
      "primary_flags": {
        "is_primary_impact": false,
        "is_primary_watch": false,
        "legacy_is_primary_theme": false
      },
      "is_primary_impact": false,
      "is_primary_watch": false
    },
    {
      "rank": 3,
      "signal_id": "cross-usdjpy_japan_exporters",
      "theme_id": "exporters",
      "theme_label": "Exporters",
      "priority_score": 0.63,
      "actionability_score": 0.22,
      "reviewability_score": 0.22,
      "watch_priority_score": 0.49,
      "divergence": "No clean edge",
      "follow_fade_bias": "No clean edge",
      "scenario_bias": "No clean edge",
      "confidence": 0.42,
      "confidence_label": "Low-Medium",
      "pre_open_watch": [
        "USDJPY",
        "US index futures",
        "Nikkei futures",
        "US peer stocks"
      ],
      "leader_laggard": {
        "leaders": [
          {
            "code": "7203",
            "name": "トヨタ自動車",
            "score": 1.0,
            "reason": "Stronger recent reaction inside the Japan Exporters basket."
          }
        ],
        "laggards": [
          {
            "code": "6758",
            "name": "ソニーグループ",
            "score": 0.8,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "note": ""
      },
      "primary_flags": {
        "is_primary_impact": false,
        "is_primary_watch": true,
        "legacy_is_primary_theme": false
      },
      "is_primary_impact": false,
      "is_primary_watch": true
    },
    {
      "rank": 4,
      "signal_id": "cross-us_ai_japan_semiconductor",
      "theme_id": "semiconductor",
      "theme_label": "Semiconductor",
      "priority_score": 0.58,
      "actionability_score": 0.32,
      "reviewability_score": 0.32,
      "watch_priority_score": 0.56,
      "divergence": "Mixed",
      "follow_fade_bias": "Opening check required",
      "scenario_bias": "Opening check required",
      "confidence": 0.39,
      "confidence_label": "Low-Medium",
      "pre_open_watch": [
        "SOX/NVDA",
        "Nikkei futures",
        "USDJPY",
        "JP basket dispersion"
      ],
      "leader_laggard": {
        "leaders": [
          {
            "code": "6857",
            "name": "アドバンテスト",
            "score": 0.62,
            "reason": "Stronger recent reaction inside the Japan Semiconductor Equipment basket."
          }
        ],
        "laggards": [
          {
            "code": "8035",
            "name": "東京エレクトロン",
            "score": 0.35,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "note": ""
      },
      "primary_flags": {
        "is_primary_impact": false,
        "is_primary_watch": false,
        "legacy_is_primary_theme": false
      },
      "is_primary_impact": false,
      "is_primary_watch": false
    }
  ],
  "methodology": {
    "version": "tactical-layer-v1.1",
    "llm_used": false,
    "summary_generation": "deterministic_template",
    "score_policy": "uncalibrated_heuristic",
    "score_explanation": "Scores are deterministic, uncalibrated heuristics for ranking attention, not backtested probabilities.",
    "generated_at": "2026-08-21T06:48:07+09:00"
  },
  "signals": [
    {
      "lane": "cross_market",
      "symbol": "Crypto → Japan Brokers",
      "name": "Crypto → Japan Brokers",
      "market": "US / JP",
      "signal_type": "Cross-Market Impact",
      "score": 90,
      "primary_change": "Japan Crypto / Brokerage is the Japan basket to watch from Crypto: US driver +5.8% vs JP basket +5.1%.",
      "evidence": [
        "Driver summary: Crypto driver positive (+5.8% avg, 5.8% avg abs)",
        "Japan basket: Japan Crypto / Brokerage positive (+5.1% avg, 1.2x avg volume)",
        "Impact score: 90",
        "Heuristic rank: 62/100",
        "US direction: positive",
        "JP direction: positive",
        "JP average volume: 1.2x",
        "Tokyo alignment state: Directionally aligned, volume not yet validated; strength moderate",
        "Top driver moves: MSTR +7.8%, COIN +7.6%",
        "JP volume check: 8698 1.2x vol, 8473 1.2x vol",
        "Score parts: driver 30, catalyst 18, basket 18, Japan 20, gap 4, stale -0"
      ],
      "sources": [
        "FMP",
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "cross_market_impact",
      "trigger_strength": "moderate",
      "market_date": "2026-08-21",
      "market_date_basis": "radar_generation_date",
      "session": "cross_market",
      "is_top_candidate": true,
      "signal_id": "cross-crypto_japan_brokers",
      "driver_market": "Crypto / US",
      "driver_symbols": [
        "BTCUSD",
        "ETHUSD",
        "COIN",
        "MSTR"
      ],
      "driver_event_type": "crypto_risk",
      "driver_observation_date": "2026-08-20",
      "driver_as_of": "2026-08-20",
      "affected_market": "JP",
      "affected_symbols": [
        "8698",
        "8473"
      ],
      "affected_basket_name": "Japan Crypto / Brokerage",
      "japan_trading_date": "2026-08-20",
      "japan_as_of": "2026-08-20",
      "alignment_window": {
        "basis": "latest_available_source_observation_dates",
        "driver_observation_date": "2026-08-20",
        "japan_trading_date": "2026-08-20",
        "calendar_day_gap": 0,
        "relationship": "same_calendar_date"
      },
      "impact_score": 90,
      "confidence": 0.62,
      "why_it_matters": "Crypto and crypto-linked US equities can translate into risk appetite for Japanese brokerage and online financial names. The cleanest read needs spot crypto and listed proxies to move together.",
      "next_check": [
        "BTC/ETH continuation",
        "COIN/MSTR listed-proxy check",
        "8698/8473 volume reaction"
      ],
      "invalid_if": [
        "BTC moves alone without COIN/MSTR listed-proxy alignment",
        "JP financial names do not react"
      ],
      "source_freshness": {
        "fmp": "quote snapshot through 2026-08-20; news 43 in 24h / 48 in 7d",
        "jquants": "daily bars through 2026-08-20"
      },
      "api_sources": [
        "FMP quote",
        "FMP historical_eod",
        "FMP stock_news",
        "J-Quants daily_bars",
        "J-Quants listed_info"
      ],
      "universe_source": "exposure_map",
      "discovered": false,
      "discovery_reason": "Curated cross-market exposure theme.",
      "tactical": {
        "theme_id": "crypto",
        "theme_label": "Crypto / Brokerage",
        "priority_rank": 1,
        "priority_score": 0.81,
        "actionability_score": 0.72,
        "reviewability_score": 0.72,
        "watch_priority_score": 0.67,
        "is_primary_theme": true,
        "us_catalyst": {
          "label": "BTC/ETH and listed crypto proxies",
          "direction": "positive",
          "strength": 0.91,
          "evidence": [
            "MSTR",
            "COIN",
            "BTCUSD",
            "ETHUSD"
          ]
        },
        "jp_basket_state": {
          "label": "overextended",
          "reaction_score": 0.86,
          "dispersion": 0.14,
          "state": "overextended"
        },
        "divergence": {
          "label": "Overextended",
          "score": 0.9,
          "expected_direction": "positive",
          "actual_reaction": "already advanced",
          "reason": "US catalyst is strong, but the JP basket already moved before the current session."
        },
        "confidence": {
          "score": 0.62,
          "label": "Medium-High",
          "components": {
            "us_signal_strength": 0.91,
            "jp_basket_fit": 0.78,
            "recent_reaction_alignment": 0.64,
            "freshness": 0.86,
            "liquidity_or_basket_quality": 0.83,
            "us_driver_agreement": 1.0,
            "jp_basket_breadth": 0.82,
            "directional_cleanliness": 0.9,
            "dispersion_penalty": -0.03,
            "regime_penalty": 0.0,
            "missing_data_penalty": -0.0,
            "basket_size_penalty": -0.1,
            "driver_dispersion_penalty": -0.09
          },
          "explanation": "US signal high / JP fit high / driver agreement high / breadth high / freshness high."
        },
        "follow_fade_bias": {
          "label": "Follow with fade risk",
          "score": 0.58,
          "reason": "Theme momentum is present, but part of the move appears priced before open."
        },
        "scenario_bias": {
          "label": "Follow with fade risk",
          "score": 0.58,
          "reason": "Theme momentum is present, but part of the move appears priced before open."
        },
        "pre_open_watch": [
          {
            "factor": "BTC",
            "watch_type": "opening_check",
            "invalidates_when": "Spot crypto direction splits or reverses",
            "reason": "BTC is a pre-open check for Crypto / Brokerage quality."
          },
          {
            "factor": "ETH",
            "watch_type": "opening_check",
            "invalidates_when": "Spot crypto direction splits or reverses",
            "reason": "ETH is a pre-open check for Crypto / Brokerage quality."
          },
          {
            "factor": "COIN/MSTR",
            "watch_type": "opening_check",
            "invalidates_when": "Listed crypto proxies diverge from spot crypto",
            "reason": "COIN/MSTR is a pre-open check for Crypto / Brokerage quality."
          },
          {
            "factor": "USDJPY",
            "watch_type": "risk",
            "invalidates_when": "FX move weakens risk appetite",
            "reason": "USDJPY is a pre-open check for Crypto / Brokerage quality."
          },
          {
            "factor": "JP crypto basket reaction",
            "watch_type": "risk",
            "invalidates_when": "8698 and 8473 do not participate together",
            "reason": "JP crypto basket reaction is a pre-open check for Crypto / Brokerage quality."
          }
        ],
        "leaders": [
          {
            "code": "8698",
            "name": "マネックスグループ",
            "score": 1.0,
            "reason": "Stronger recent reaction inside the Japan Crypto / Brokerage basket."
          }
        ],
        "laggards": [
          {
            "code": "8473",
            "name": "ＳＢＩホールディングス",
            "score": 1.0,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "leader_laggard_note": "",
        "summary": {
          "headline": "Crypto / Brokerage is the primary tactical theme today.",
          "body": "Overseas input: BTC/ETH and listed crypto proxies. Tokyo prior-close move in the Japan Crypto / Brokerage basket is overextended. Divergence is Overextended; scenario is Follow with fade risk.",
          "watchline": "Watch before open: BTC, ETH, COIN/MSTR, USDJPY."
        },
        "source": {
          "llm_used": false,
          "summary_generation": "deterministic_template",
          "us_avg_move": 5.83,
          "jp_avg_move": 5.1,
          "jp_avg_volume": 1.16
        },
        "primary_flags": {
          "is_primary_impact": true,
          "is_primary_watch": false,
          "legacy_is_primary_theme": true
        }
      }
    },
    {
      "lane": "cross_market",
      "symbol": "USDJPY → Japan Exporters",
      "name": "USDJPY → Japan Exporters",
      "market": "US / JP",
      "signal_type": "Cross-Market Impact",
      "score": 66,
      "primary_change": "Japan Exporters is the Japan basket to watch from USDJPY: US driver -0.3% vs JP basket +3.6%.",
      "evidence": [
        "Driver summary: USDJPY driver mixed (-0.3% avg, 0.7% avg abs)",
        "Japan basket: Japan Exporters positive (+3.6% avg, 0.8x avg volume)",
        "Impact score: 66",
        "Heuristic rank: 42/100",
        "US direction: mixed",
        "JP direction: positive",
        "JP average volume: 0.8x",
        "Tokyo alignment state: Opening check required; strength moderate",
        "Top driver moves: SPY -0.8%, QQQ -0.7%",
        "JP volume check: 7267 1.0x vol, 7203 0.9x vol",
        "Score parts: driver 6, catalyst 18, basket 18, Japan 18, gap 6, stale -0"
      ],
      "sources": [
        "FMP",
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "cross_market_impact",
      "trigger_strength": "moderate",
      "market_date": "2026-08-21",
      "market_date_basis": "radar_generation_date",
      "session": "cross_market",
      "is_top_candidate": true,
      "signal_id": "cross-usdjpy_japan_exporters",
      "driver_market": "FX / US",
      "driver_symbols": [
        "USDJPY",
        "SPY",
        "QQQ"
      ],
      "driver_event_type": "fx_exporter",
      "driver_observation_date": "2026-08-20",
      "driver_as_of": "2026-08-20",
      "affected_market": "JP",
      "affected_symbols": [
        "7203",
        "7267",
        "6758",
        "6902"
      ],
      "affected_basket_name": "Japan Exporters",
      "japan_trading_date": "2026-08-20",
      "japan_as_of": "2026-08-20",
      "alignment_window": {
        "basis": "latest_available_source_observation_dates",
        "driver_observation_date": "2026-08-20",
        "japan_trading_date": "2026-08-20",
        "calendar_day_gap": 0,
        "relationship": "same_calendar_date"
      },
      "impact_score": 66,
      "confidence": 0.42,
      "why_it_matters": "USDJPY and US index tone shape the opening setup for Japanese exporters. A stronger signal needs exporter basket direction rather than FX alone.",
      "next_check": [
        "USDJPY direction",
        "export basket open reaction",
        "risk-on/risk-off cross-check from QQQ/SPY"
      ],
      "invalid_if": [
        "USDJPY move is reversed",
        "exporters fail to outperform broad Japan equity basket"
      ],
      "source_freshness": {
        "fmp": "quote snapshot through 2026-08-20; news 22 in 24h / 36 in 7d",
        "jquants": "daily bars through 2026-08-20"
      },
      "api_sources": [
        "FMP quote",
        "FMP historical_eod",
        "FMP stock_news",
        "J-Quants daily_bars",
        "J-Quants listed_info"
      ],
      "universe_source": "exposure_map",
      "discovered": false,
      "discovery_reason": "Curated cross-market exposure theme.",
      "tactical": {
        "theme_id": "exporters",
        "theme_label": "Exporters",
        "priority_rank": 3,
        "priority_score": 0.63,
        "actionability_score": 0.22,
        "reviewability_score": 0.22,
        "watch_priority_score": 0.49,
        "is_primary_theme": false,
        "us_catalyst": {
          "label": "USDJPY and US index tone",
          "direction": "mixed",
          "strength": 0.26,
          "evidence": [
            "SPY",
            "QQQ",
            "USDJPY"
          ]
        },
        "jp_basket_state": {
          "label": "incomplete",
          "reaction_score": 0.86,
          "dispersion": 0.24,
          "state": "incomplete"
        },
        "divergence": {
          "label": "No clean edge",
          "score": 0.3,
          "expected_direction": "mixed",
          "actual_reaction": "positive",
          "reason": "The cross-market setup is not directional enough for a clean tactical read."
        },
        "confidence": {
          "score": 0.42,
          "label": "Low-Medium",
          "components": {
            "us_signal_strength": 0.26,
            "jp_basket_fit": 0.92,
            "recent_reaction_alignment": 0.4,
            "freshness": 0.86,
            "liquidity_or_basket_quality": 0.76,
            "us_driver_agreement": 0.67,
            "jp_basket_breadth": 1.0,
            "directional_cleanliness": 0.42,
            "dispersion_penalty": -0.05,
            "regime_penalty": -0.05,
            "missing_data_penalty": -0.0,
            "basket_size_penalty": -0.0,
            "driver_dispersion_penalty": -0.11
          },
          "explanation": "US signal low / JP fit high / driver agreement medium-high / breadth high / freshness high."
        },
        "follow_fade_bias": {
          "label": "No clean edge",
          "score": 0.32,
          "reason": "US and Japan evidence do not form a clean tactical setup."
        },
        "scenario_bias": {
          "label": "No clean edge",
          "score": 0.32,
          "reason": "US and Japan evidence do not form a clean tactical setup."
        },
        "pre_open_watch": [
          {
            "factor": "USDJPY",
            "watch_type": "opening_check",
            "invalidates_when": "FX reverses against exporter support",
            "reason": "USDJPY is a pre-open check for Exporters quality."
          },
          {
            "factor": "US index futures",
            "watch_type": "opening_check",
            "invalidates_when": "US risk tone fades before Tokyo open",
            "reason": "US index futures is a pre-open check for Exporters quality."
          },
          {
            "factor": "Nikkei futures",
            "watch_type": "opening_check",
            "invalidates_when": "Nikkei futures alignment is absent",
            "reason": "Nikkei futures is a pre-open check for Exporters quality."
          },
          {
            "factor": "US peer stocks",
            "watch_type": "opening_check",
            "invalidates_when": "Auto/electronics peers diverge",
            "reason": "US peer stocks is a pre-open check for Exporters quality."
          }
        ],
        "leaders": [
          {
            "code": "7203",
            "name": "トヨタ自動車",
            "score": 1.0,
            "reason": "Stronger recent reaction inside the Japan Exporters basket."
          }
        ],
        "laggards": [
          {
            "code": "6758",
            "name": "ソニーグループ",
            "score": 0.8,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "leader_laggard_note": "",
        "summary": {
          "headline": "Exporters is a tactical theme to monitor today.",
          "body": "Overseas input: USDJPY and US index tone. Tokyo prior-close move in the Japan Exporters basket is incomplete. Divergence is No clean edge; scenario is No clean edge.",
          "watchline": "Watch before open: USDJPY, US index futures, Nikkei futures, US peer stocks."
        },
        "source": {
          "llm_used": false,
          "summary_generation": "deterministic_template",
          "us_avg_move": -0.32,
          "jp_avg_move": 3.63,
          "jp_avg_volume": 0.83
        },
        "primary_flags": {
          "is_primary_impact": false,
          "is_primary_watch": true,
          "legacy_is_primary_theme": false
        }
      }
    },
    {
      "lane": "cross_market",
      "symbol": "Energy → Japan Resources / Trading Houses",
      "name": "Energy → Japan Resources / Trading Houses",
      "market": "US / JP",
      "signal_type": "Cross-Market Watch",
      "score": 57,
      "primary_change": "Japan Resources / Trading Houses is the Japan basket to watch from Energy: US driver +0.5% vs JP basket +1.2%.",
      "evidence": [
        "Driver summary: Energy driver positive (+0.5% avg, 0.5% avg abs)",
        "Japan basket: Japan Resources / Trading Houses positive (+1.2% avg, 0.7x avg volume)",
        "Impact score: 57",
        "Heuristic rank: 66/100",
        "US direction: positive",
        "JP direction: positive",
        "JP average volume: 0.7x",
        "Tokyo alignment state: Directionally aligned, volume not yet validated; strength watch",
        "Top driver moves: XOM +0.9%, CVX +0.0%",
        "JP volume check: 5020 0.7x vol, 1605 0.7x vol",
        "Score parts: driver 5, catalyst 18, basket 18, Japan 12, gap 4, stale -0"
      ],
      "sources": [
        "FMP",
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "cross_market_watch",
      "trigger_strength": "watch",
      "market_date": "2026-08-21",
      "market_date_basis": "radar_generation_date",
      "session": "cross_market",
      "is_top_candidate": true,
      "signal_id": "cross-energy_japan_resources_trading_houses",
      "driver_market": "US Energy",
      "driver_symbols": [
        "XOM",
        "CVX"
      ],
      "driver_event_type": "energy_commodity",
      "driver_observation_date": "2026-08-20",
      "driver_as_of": "2026-08-20",
      "affected_market": "JP",
      "affected_symbols": [
        "1605",
        "5020",
        "8058",
        "8001"
      ],
      "affected_basket_name": "Japan Resources / Trading Houses",
      "japan_trading_date": "2026-08-20",
      "japan_as_of": "2026-08-20",
      "alignment_window": {
        "basis": "latest_available_source_observation_dates",
        "driver_observation_date": "2026-08-20",
        "japan_trading_date": "2026-08-20",
        "calendar_day_gap": 0,
        "relationship": "same_calendar_date"
      },
      "impact_score": 57,
      "confidence": 0.66,
      "why_it_matters": "Energy majors frame the first read for Japanese resource and trading-house sensitivity, with a separate cost-pressure read for import-heavy names.",
      "next_check": [
        "XOM/CVX continuation",
        "resource and trading-house basket reaction",
        "cost-pressure split between resource and import-cost names"
      ],
      "invalid_if": [
        "energy move fades",
        "Japan resource basket does not align"
      ],
      "source_freshness": {
        "fmp": "quote snapshot through 2026-08-20; news 16 in 24h / 24 in 7d",
        "jquants": "daily bars through 2026-08-20"
      },
      "api_sources": [
        "FMP quote",
        "FMP historical_eod",
        "FMP stock_news",
        "J-Quants daily_bars",
        "J-Quants listed_info"
      ],
      "universe_source": "exposure_map",
      "discovered": false,
      "discovery_reason": "Curated cross-market exposure theme.",
      "tactical": {
        "theme_id": "energy",
        "theme_label": "Energy / Trading Houses",
        "priority_rank": 2,
        "priority_score": 0.76,
        "actionability_score": 0.73,
        "reviewability_score": 0.73,
        "watch_priority_score": 0.5,
        "is_primary_theme": false,
        "us_catalyst": {
          "label": "US energy majors",
          "direction": "positive",
          "strength": 0.34,
          "evidence": [
            "XOM",
            "CVX"
          ]
        },
        "jp_basket_state": {
          "label": "prior close aligned",
          "reaction_score": 0.68,
          "dispersion": 0.16,
          "state": "prior_close_aligned"
        },
        "divergence": {
          "label": "Aligned",
          "score": 0.62,
          "expected_direction": "positive",
          "actual_reaction": "prior-close aligned",
          "reason": "US catalyst and Japan basket direction are aligned."
        },
        "confidence": {
          "score": 0.66,
          "label": "Medium-High",
          "components": {
            "us_signal_strength": 0.34,
            "jp_basket_fit": 0.92,
            "recent_reaction_alignment": 0.64,
            "freshness": 0.86,
            "liquidity_or_basket_quality": 0.73,
            "us_driver_agreement": 0.68,
            "jp_basket_breadth": 1.0,
            "directional_cleanliness": 0.9,
            "dispersion_penalty": -0.04,
            "regime_penalty": 0.0,
            "missing_data_penalty": -0.0,
            "basket_size_penalty": -0.0,
            "driver_dispersion_penalty": -0.02
          },
          "explanation": "US signal low-medium / JP fit high / driver agreement medium-high / breadth high / freshness high."
        },
        "follow_fade_bias": {
          "label": "Provisional follow",
          "score": 0.6,
          "reason": "The theme is directionally aligned, but breadth and volume quality are still partial."
        },
        "scenario_bias": {
          "label": "Provisional follow",
          "score": 0.6,
          "reason": "The theme is directionally aligned, but breadth and volume quality are still partial."
        },
        "pre_open_watch": [
          {
            "factor": "WTI",
            "watch_type": "opening_check",
            "invalidates_when": "Oil diverges from the energy-major move",
            "reason": "WTI is a pre-open check for Energy / Trading Houses quality."
          },
          {
            "factor": "XOM/CVX",
            "watch_type": "opening_check",
            "invalidates_when": "US energy majors split direction",
            "reason": "XOM/CVX is a pre-open check for Energy / Trading Houses quality."
          },
          {
            "factor": "USDJPY",
            "watch_type": "opening_check",
            "invalidates_when": "FX move offsets resource sensitivity",
            "reason": "USDJPY is a pre-open check for Energy / Trading Houses quality."
          },
          {
            "factor": "Trading company reaction",
            "watch_type": "opening_check",
            "invalidates_when": "8058/8001 do not participate together",
            "reason": "Trading company reaction is a pre-open check for Energy / Trading Houses quality."
          }
        ],
        "leaders": [
          {
            "code": "5020",
            "name": "ＥＮＥＯＳホールディングス",
            "score": 0.75,
            "reason": "Stronger recent reaction inside the Japan Resources / Trading Houses basket."
          }
        ],
        "laggards": [
          {
            "code": "1605",
            "name": "ＩＮＰＥＸ",
            "score": 0.53,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "leader_laggard_note": "",
        "summary": {
          "headline": "Energy / Trading Houses is a tactical theme to monitor today.",
          "body": "Overseas input: US energy majors. Tokyo prior-close move in the Japan Resources / Trading Houses basket is prior close aligned. Divergence is Aligned; scenario is Provisional follow.",
          "watchline": "Watch before open: WTI, XOM/CVX, USDJPY, Trading company reaction."
        },
        "source": {
          "llm_used": false,
          "summary_generation": "deterministic_template",
          "us_avg_move": 0.49,
          "jp_avg_move": 1.17,
          "jp_avg_volume": 0.67
        },
        "primary_flags": {
          "is_primary_impact": false,
          "is_primary_watch": false,
          "legacy_is_primary_theme": false
        }
      }
    },
    {
      "lane": "pressure",
      "symbol": "7203",
      "name": "トヨタ自動車",
      "market": "JP",
      "signal_type": "Supply-Demand Pressure",
      "score": 52,
      "primary_change": "Volume 0.9x with price +4.3%",
      "evidence": [
        "Volume: 0.9x vs 20d avg",
        "Volume and price moved together",
        "Margin rows: 20",
        "Latest margin date: 2026-08-14",
        "Margin balance direction: falling",
        "Margin long/short volume ratio: 13.12x",
        "Sector: 輸送用機器",
        "Market segment: プライム"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "jp_turnover_watch",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "pressure",
      "symbol": "9984",
      "name": "ソフトバンクグループ",
      "market": "JP",
      "signal_type": "Supply-Demand Pressure",
      "score": 47,
      "primary_change": "Volume 0.8x with price +3.1%",
      "evidence": [
        "Volume: 0.8x vs 20d avg",
        "Volume and price moved together",
        "Margin rows: 20",
        "Latest margin date: 2026-08-14",
        "Margin balance direction: flat",
        "Margin long/short volume ratio: 9.08x",
        "Sector: 情報･通信業",
        "Market segment: プライム"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "jp_turnover_watch",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "fallback_seed",
      "discovered": true,
      "discovery_reason": "Liquid technology holding company connected to US tech and AI risk tone.",
      "tactical": {}
    },
    {
      "lane": "pressure",
      "symbol": "6981",
      "name": "村田製作所",
      "market": "JP",
      "signal_type": "Supply-Demand Pressure",
      "score": 42,
      "primary_change": "Volume 0.7x with price -1.7%",
      "evidence": [
        "Volume: 0.7x vs 20d avg",
        "Volume and price moved together",
        "Margin rows: 20",
        "Latest margin date: 2026-08-14",
        "Margin balance direction: rising",
        "Margin long/short volume ratio: 9.21x",
        "Sector: 電気機器",
        "Market segment: プライム"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "jp_turnover_watch",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "fallback_seed",
      "discovered": true,
      "discovery_reason": "Liquid electronics exporter connected to USDJPY and US tech demand.",
      "tactical": {}
    },
    {
      "lane": "pressure",
      "symbol": "6857",
      "name": "アドバンテスト",
      "market": "JP",
      "signal_type": "Supply-Demand Pressure",
      "score": 41,
      "primary_change": "Volume 0.7x with price +1.0%",
      "evidence": [
        "Volume: 0.7x vs 20d avg",
        "Volume and price moved together",
        "Margin rows: 20",
        "Latest margin date: 2026-08-14",
        "Margin balance direction: rising",
        "Margin long/short volume ratio: 0.92x",
        "Sector: 電気機器",
        "Market segment: プライム"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "jp_turnover_watch",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "pressure",
      "symbol": "8035",
      "name": "東京エレクトロン",
      "market": "JP",
      "signal_type": "Supply-Demand Pressure",
      "score": 40,
      "primary_change": "Volume 0.7x with price -1.2%",
      "evidence": [
        "Volume: 0.7x vs 20d avg",
        "Volume and price moved together",
        "Margin rows: 20",
        "Latest margin date: 2026-08-14",
        "Margin balance direction: rising",
        "Margin long/short volume ratio: 13.44x",
        "Sector: 電気機器",
        "Market segment: プライム"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "jp_turnover_watch",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "event",
      "symbol": "8473",
      "name": "ＳＢＩホールディングス",
      "market": "JP",
      "signal_type": "Post-Earnings Reaction",
      "score": 80,
      "primary_change": "JP post-earnings reaction 4 calendar days after event",
      "evidence": [
        "Event date: 2026-08-17",
        "Event freshness: Fresh Event Reaction",
        "Event age: 4 calendar days ago",
        "Volume: 1.2x vs 20d avg",
        "Liquidity: High",
        "Sector: 証券･商品先物取引業"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "post_earnings_reaction",
      "trigger_strength": "strong",
      "market_date": "2026-08-17",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "event",
      "symbol": "8698",
      "name": "マネックスグループ",
      "market": "JP",
      "signal_type": "Post-Earnings Reaction",
      "score": 75,
      "primary_change": "JP post-earnings reaction 4 calendar days after event",
      "evidence": [
        "Event date: 2026-08-17",
        "Event freshness: Fresh Event Reaction",
        "Event age: 4 calendar days ago",
        "Volume: 1.2x vs 20d avg",
        "Liquidity: High",
        "Sector: 証券･商品先物取引業"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "post_earnings_reaction",
      "trigger_strength": "moderate",
      "market_date": "2026-08-17",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "event",
      "symbol": "7267",
      "name": "本田技研工業",
      "market": "JP",
      "signal_type": "Post-Earnings Reaction",
      "score": 75,
      "primary_change": "JP post-earnings reaction 4 calendar days after event",
      "evidence": [
        "Event date: 2026-08-17",
        "Event freshness: Fresh Event Reaction",
        "Event age: 4 calendar days ago",
        "Volume: 1.0x vs 20d avg",
        "Liquidity: High",
        "Sector: 輸送用機器"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "post_earnings_reaction",
      "trigger_strength": "moderate",
      "market_date": "2026-08-17",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "event",
      "symbol": "NVDA",
      "name": "NVIDIA Corporation",
      "market": "US",
      "signal_type": "Earnings Watch",
      "score": 68,
      "primary_change": "Earnings calendar in 5 calendar days",
      "evidence": [
        "Event date: 2026-08-26",
        "Event freshness: Upcoming Event",
        "Days until event: 5",
        "Volume: 0.8x vs 20d avg",
        "News count: 12 in 7d",
        "Liquidity: High",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "earnings_watch",
      "trigger_strength": "moderate",
      "market_date": "2026-08-26",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": true,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "COIN",
      "name": "Coinbase Global, Inc.",
      "market": "US",
      "signal_type": "Daily Change",
      "score": 98,
      "primary_change": "Price +7.6% / volume 2.2x vs recent avg",
      "evidence": [
        "Price change: +7.6%",
        "Volume: 2.2x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "volume_spike",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "MSTR",
      "name": "Strategy Inc",
      "market": "US",
      "signal_type": "Daily Change",
      "score": 98,
      "primary_change": "Price +7.8% / volume 2.7x vs recent avg",
      "evidence": [
        "Price change: +7.8%",
        "Volume: 2.7x vs 20d avg",
        "News freshness: 7 in 24h / 12 in 7d",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "volume_spike",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "BTCUSD",
      "name": "Bitcoin USD",
      "market": "Crypto",
      "signal_type": "Daily Change",
      "score": 98,
      "primary_change": "Price +4.9% / volume 2.8x vs recent avg",
      "evidence": [
        "Price change: +4.9%",
        "Volume: 2.8x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: CRYPTO"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "volume_spike",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "crypto_24h",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "ETHUSD",
      "name": "Ethereum USD",
      "market": "Crypto",
      "signal_type": "Daily Change",
      "score": 98,
      "primary_change": "Price +3.0% / volume 3.8x vs recent avg",
      "evidence": [
        "Price change: +3.0%",
        "Volume: 3.8x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: CRYPTO"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "volume_spike",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "crypto_24h",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "intraday",
      "symbol": "BTCUSD",
      "name": "Bitcoin USD",
      "market": "Crypto",
      "signal_type": "Intraday Radar",
      "score": 98,
      "primary_change": "Relative volume 2.8x / gap +0.0%",
      "evidence": [
        "Relative Volume: 2.8x",
        "Gap: +0.0%",
        "Price change: +4.9%",
        "Catalyst: News within 24h",
        "Liquidity: High",
        "Sector Heat: Crypto"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "relative_volume",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "crypto_24h",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "intraday",
      "symbol": "ETHUSD",
      "name": "Ethereum USD",
      "market": "Crypto",
      "signal_type": "Intraday Radar",
      "score": 98,
      "primary_change": "Relative volume 3.8x / gap +0.0%",
      "evidence": [
        "Relative Volume: 3.8x",
        "Gap: +0.0%",
        "Price change: +3.0%",
        "Catalyst: News within 24h",
        "Liquidity: High",
        "Sector Heat: Crypto"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "relative_volume",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "crypto_24h",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "intraday",
      "symbol": "COIN",
      "name": "Coinbase Global, Inc.",
      "market": "US",
      "signal_type": "Intraday Radar",
      "score": 98,
      "primary_change": "Relative volume 2.2x / gap +7.9%",
      "evidence": [
        "Relative Volume: 2.2x",
        "Gap: +7.9%",
        "Price change: +7.6%",
        "Catalyst: News within 24h",
        "Liquidity: High",
        "Sector Heat: Crypto"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "relative_volume",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "intraday",
      "symbol": "MSTR",
      "name": "Strategy Inc",
      "market": "US",
      "signal_type": "Intraday Radar",
      "score": 98,
      "primary_change": "Relative volume 2.7x / gap +8.6%",
      "evidence": [
        "Relative Volume: 2.7x",
        "Gap: +8.6%",
        "Price change: +7.8%",
        "Catalyst: News within 24h",
        "Liquidity: High",
        "Sector Heat: Crypto"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "relative_volume",
      "trigger_strength": "strong",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "event",
      "symbol": "7203",
      "name": "トヨタ自動車",
      "market": "JP",
      "signal_type": "Post-Earnings Reaction",
      "score": 72,
      "primary_change": "JP post-earnings reaction 4 calendar days after event",
      "evidence": [
        "Event date: 2026-08-17",
        "Event freshness: Fresh Event Reaction",
        "Event age: 4 calendar days ago",
        "Volume: 0.9x vs 20d avg",
        "Liquidity: High",
        "Sector: 輸送用機器"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "post_earnings_reaction",
      "trigger_strength": "moderate",
      "market_date": "2026-08-17",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "AAPL",
      "name": "Apple Inc.",
      "market": "US",
      "signal_type": "Daily Change",
      "score": 64,
      "primary_change": "Price -1.7% / volume 0.7x vs recent avg",
      "evidence": [
        "Price change: -1.7%",
        "Volume: 0.7x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "daily_change",
      "trigger_strength": "moderate",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "TSLA",
      "name": "Tesla, Inc.",
      "market": "US",
      "signal_type": "Daily Change",
      "score": 64,
      "primary_change": "Price -1.7% / volume 0.8x vs recent avg",
      "evidence": [
        "Price change: -1.7%",
        "Volume: 0.8x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "daily_change",
      "trigger_strength": "moderate",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "intraday",
      "symbol": "8473",
      "name": "ＳＢＩホールディングス",
      "market": "JP",
      "signal_type": "Daytrade Watch · JP",
      "score": 63,
      "primary_change": "Previous daily volume 1.2x with US theme watch",
      "evidence": [
        "Previous volume: 1.2x vs 20d avg",
        "Price change: +5.7%",
        "Theme link: Crypto",
        "Sector: 証券･商品先物取引業"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "daytrade_watch_jp",
      "trigger_strength": "moderate",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "8473",
      "name": "ＳＢＩホールディングス",
      "market": "JP",
      "signal_type": "Daily Change",
      "score": 58,
      "primary_change": "Price +5.7% / volume 1.2x vs recent avg",
      "evidence": [
        "Price change: +5.7%",
        "Volume: 1.2x vs 20d avg",
        "Daily bar source: J-Quants V2",
        "Segment: プライム"
      ],
      "sources": [
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "price_move",
      "trigger_strength": "moderate",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "jp_close",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated Japan impact name in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "NVDA",
      "name": "NVIDIA Corporation",
      "market": "US",
      "signal_type": "Daily Change",
      "score": 55,
      "primary_change": "Price -0.3% / volume 0.8x vs recent avg",
      "evidence": [
        "Price change: -0.3%",
        "Volume: 0.8x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "daily_change",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "AMD",
      "name": "Advanced Micro Devices, Inc.",
      "market": "US",
      "signal_type": "Daily Change",
      "score": 55,
      "primary_change": "Price +0.7% / volume 0.5x vs recent avg",
      "evidence": [
        "Price change: +0.7%",
        "Volume: 0.5x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "daily_change",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "change",
      "symbol": "AVGO",
      "name": "Broadcom Inc.",
      "market": "US",
      "signal_type": "Daily Change",
      "score": 55,
      "primary_change": "Price +0.4% / volume 1.0x vs recent avg",
      "evidence": [
        "Price change: +0.4%",
        "Volume: 1.0x vs 20d avg",
        "News freshness: 12 in 24h / 12 in 7d",
        "Exchange: NASDAQ"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "daily_change",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "intraday",
      "symbol": "SPY",
      "name": "State Street SPDR S&P 500 ETF",
      "market": "US ETF",
      "signal_type": "Intraday Radar",
      "score": 55,
      "primary_change": "Relative volume 0.9x / gap -0.4%",
      "evidence": [
        "Relative Volume: 0.9x",
        "Gap: -0.4%",
        "Price change: -0.8%",
        "Catalyst: News within 24h",
        "Liquidity: High",
        "Sector Heat: Major Indices"
      ],
      "sources": [
        "FMP"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "catalyst_freshness",
      "trigger_strength": "watch",
      "market_date": "2026-08-20",
      "market_date_basis": "source_observation_date",
      "session": "us_regular",
      "is_top_candidate": false,
      "signal_id": "",
      "driver_market": "",
      "driver_symbols": [],
      "driver_event_type": "",
      "driver_observation_date": "",
      "driver_as_of": "",
      "affected_market": "",
      "affected_symbols": [],
      "affected_basket_name": "",
      "japan_trading_date": "",
      "japan_as_of": "",
      "alignment_window": {},
      "impact_score": 0,
      "confidence": 0.0,
      "why_it_matters": "",
      "next_check": [],
      "invalid_if": [],
      "source_freshness": {},
      "api_sources": [],
      "universe_source": "curated_core",
      "discovered": false,
      "discovery_reason": "Curated US/ETF/FX/Crypto driver in the Market Signal Radar core.",
      "tactical": {}
    },
    {
      "lane": "cross_market",
      "symbol": "US AI → Japan Semiconductor",
      "name": "US AI → Japan Semiconductor",
      "market": "US / JP",
      "signal_type": "Cross-Market Watch",
      "score": 50,
      "primary_change": "Japan Semiconductor Equipment is the Japan basket to watch from US AI: US driver +0.3% vs JP basket -0.2%.",
      "evidence": [
        "Driver summary: US AI driver mixed (+0.3% avg, 0.4% avg abs)",
        "Japan basket: Japan Semiconductor Equipment mixed (-0.2% avg, 0.7x avg volume)",
        "Impact score: 50",
        "Heuristic rank: 39/100",
        "US direction: mixed",
        "JP direction: mixed",
        "JP average volume: 0.7x",
        "Tokyo alignment state: Mixed Tokyo prior-close move; strength watch",
        "Top driver moves: AMD +0.7%, SOXX +0.5%",
        "JP volume check: 6723 0.8x vol, 6857 0.7x vol",
        "Score parts: driver 4, catalyst 18, basket 18, Japan 4, gap 6, stale -0"
      ],
      "sources": [
        "FMP",
        "J-Quants"
      ],
      "updated_at": "2026-08-21T06:48:07+09:00",
      "reason_code": "cross_market_watch",
      "trigger_strength": "watch",
      "market_date": "2026-08-21",
      "market_date_basis": "radar_generation_date",
      "session": "cross_market",
      "is_top_candidate": false,
      "signal_id": "cross-us_ai_japan_semiconductor",
      "driver_market": "US",
      "driver_symbols": [
        "NVDA",
        "AMD",
        "AVGO",
        "SMH",
        "SOXX"
      ],
      "driver_event_type": "ai_semiconductor",
      "driver_observation_date": "2026-08-20",
      "driver_as_of": "2026-08-20",
      "affected_market": "JP",
      "affected_symbols": [
        "8035",
        "6857",
        "6723",
        "6920"
      ],
      "affected_basket_name": "Japan Semiconductor Equipment",
      "japan_trading_date": "2026-08-20",
      "japan_as_of": "2026-08-20",
      "alignment_window": {
        "basis": "latest_available_source_observation_dates",
        "driver_observation_date": "2026-08-20",
        "japan_trading_date": "2026-08-20",
        "calendar_day_gap": 0,
        "relationship": "same_calendar_date"
      },
      "impact_score": 50,
      "confidence": 0.39,
      "why_it_matters": "US semiconductor leadership can set the first read for Tokyo semiconductor equipment. The useful signal is whether Tokyo open breadth and volume extend the overseas move.",
      "next_check": [
        "US semiconductor basket continuation",
        "Tokyo open volume",
        "8035/6857 first-hour volume check"
      ],
      "invalid_if": [
        "US semiconductor basket reverses",
        "Japan semiconductor basket lacks volume-backed follow-through"
      ],
      "source_freshness": {
        "fmp": "quote snapshot through 2026-08-20; news 38 in 24h / 48 in 7d",
        "jquants": "daily bars through 2026-08-20"
      },
      "api_sources": [
        "FMP quote",
        "FMP historical_eod",
        "FMP stock_news",
        "J-Quants daily_bars",
        "J-Quants listed_info"
      ],
      "universe_source": "exposure_map",
      "discovered": false,
      "discovery_reason": "Curated cross-market exposure theme.",
      "tactical": {
        "theme_id": "semiconductor",
        "theme_label": "Semiconductor",
        "priority_rank": 4,
        "priority_score": 0.58,
        "actionability_score": 0.32,
        "reviewability_score": 0.32,
        "watch_priority_score": 0.56,
        "is_primary_theme": false,
        "us_catalyst": {
          "label": "SOX/NVDA strength",
          "direction": "mixed",
          "strength": 0.26,
          "evidence": [
            "AMD",
            "SOXX",
            "AVGO",
            "NVDA"
          ]
        },
        "jp_basket_state": {
          "label": "mixed",
          "reaction_score": 0.52,
          "dispersion": 0.21,
          "state": "mixed"
        },
        "divergence": {
          "label": "Mixed",
          "score": 0.53,
          "expected_direction": "mixed",
          "actual_reaction": "mixed basket reaction",
          "reason": "The Japan basket is not moving as one group, so theme quality needs an opening check."
        },
        "confidence": {
          "score": 0.39,
          "label": "Low-Medium",
          "components": {
            "us_signal_strength": 0.26,
            "jp_basket_fit": 0.84,
            "recent_reaction_alignment": 0.48,
            "freshness": 0.86,
            "liquidity_or_basket_quality": 0.74,
            "us_driver_agreement": 0.8,
            "jp_basket_breadth": 0.62,
            "directional_cleanliness": 0.42,
            "dispersion_penalty": -0.05,
            "regime_penalty": -0.07,
            "missing_data_penalty": -0.0,
            "basket_size_penalty": -0.0,
            "driver_dispersion_penalty": -0.09
          },
          "explanation": "US signal low / JP fit high / driver agreement high / breadth medium-high / freshness high."
        },
        "follow_fade_bias": {
          "label": "Opening check required",
          "score": 0.48,
          "reason": "Theme evidence is mixed, so the Tokyo opening check matters more than score alone."
        },
        "scenario_bias": {
          "label": "Opening check required",
          "score": 0.48,
          "reason": "Theme evidence is mixed, so the Tokyo opening check matters more than score alone."
        },
        "pre_open_watch": [
          {
            "factor": "SOX/NVDA",
            "watch_type": "opening_check",
            "invalidates_when": "US semiconductor proxies lose overnight strength",
            "reason": "SOX/NVDA is a pre-open check for Semiconductor quality."
          },
          {
            "factor": "Nikkei futures",
            "watch_type": "risk",
            "invalidates_when": "Futures fail to follow US semiconductor strength",
            "reason": "Nikkei futures is a pre-open check for Semiconductor quality."
          },
          {
            "factor": "USDJPY",
            "watch_type": "risk",
            "invalidates_when": "JPY strengthens against the tech/export setup",
            "reason": "USDJPY is a pre-open check for Semiconductor quality."
          },
          {
            "factor": "JP basket dispersion",
            "watch_type": "risk",
            "invalidates_when": "8035/6857/6920 do not move in the same direction",
            "reason": "JP basket dispersion is a pre-open check for Semiconductor quality."
          }
        ],
        "leaders": [
          {
            "code": "6857",
            "name": "アドバンテスト",
            "score": 0.62,
            "reason": "Stronger recent reaction inside the Japan Semiconductor Equipment basket."
          }
        ],
        "laggards": [
          {
            "code": "8035",
            "name": "東京エレクトロン",
            "score": 0.35,
            "reason": "Theme fit is present, but recent reaction is weaker than basket peers."
          }
        ],
        "leader_laggard_note": "",
        "summary": {
          "headline": "Semiconductor is a tactical theme to monitor today.",
          "body": "Overseas input: SOX/NVDA strength. Tokyo prior-close move in the Japan Semiconductor Equipment basket is mixed. Divergence is Mixed; scenario is Opening check required.",
          "watchline": "Watch before open: SOX/NVDA, Nikkei futures, USDJPY, JP basket dispersion."
        },
        "source": {
          "llm_used": false,
          "summary_generation": "deterministic_template",
          "us_avg_move": 0.32,
          "jp_avg_move": -0.2,
          "jp_avg_volume": 0.72
        },
        "primary_flags": {
          "is_primary_impact": false,
          "is_primary_watch": false,
          "legacy_is_primary_theme": false
        }
      }
    }
  ]
}
