{
  "version": "V2.10",
  "product_name": "US Sector Rotation Monitor",
  "brand_name": "Node Analytica",
  "start_date": "2018-01-01",
  "end_date": null,
  "tickers": [
    "XLK",
    "XLC",
    "XLY",
    "XLP",
    "XLE",
    "XLF",
    "XLV",
    "XLI",
    "XLB",
    "XLRE",
    "XLU",
    "SPY",
    "QQQ",
    "RSP",
    "IWM",
    "IWF",
    "IWD",
    "SMH",
    "MTUM",
    "QUAL",
    "USMV",
    "SPLV",
    "SPHB",
    "SOXX",
    "XSD",
    "IGV",
    "CLOU",
    "HACK",
    "FDN",
    "KBE",
    "KRE",
    "KIE",
    "IAI",
    "IBB",
    "XBI",
    "IHI",
    "IHF",
    "PPH",
    "IYT",
    "ITA",
    "XAR",
    "XRT",
    "ITB",
    "XHB",
    "PEJ",
    "CARZ",
    "XOP",
    "OIH",
    "XME",
    "COPX",
    "URA",
    "VNQ",
    "REZ",
    "ICF",
    "UTES"
  ],
  "sector_etfs": {
    "XLK": "Technology",
    "XLC": "Communication Services",
    "XLY": "Consumer Discretionary",
    "XLP": "Consumer Staples",
    "XLE": "Energy",
    "XLF": "Financials",
    "XLV": "Health Care",
    "XLI": "Industrials",
    "XLB": "Materials",
    "XLRE": "Real Estate",
    "XLU": "Utilities"
  },
  "benchmarks_and_factors": {
    "SPY": "S&P 500",
    "QQQ": "Nasdaq 100",
    "RSP": "S&P 500 Equal Weight",
    "IWM": "Russell 2000",
    "IWF": "Russell 1000 Growth",
    "IWD": "Russell 1000 Value",
    "SMH": "Semiconductors",
    "MTUM": "Momentum Factor",
    "QUAL": "Quality Factor",
    "USMV": "Minimum Volatility",
    "SPLV": "Low Volatility",
    "SPHB": "High Beta"
  },
  "horizons": {
    "5D": 5,
    "1M": 21,
    "3M": 63,
    "6M": 126,
    "12M": 252
  },
  "key_ratios": {
    "XLY/XLP": [
      "XLY",
      "XLP",
      "Discretionary vs Staples"
    ],
    "XLI/XLU": [
      "XLI",
      "XLU",
      "Industrials vs Utilities"
    ],
    "XLF/XLU": [
      "XLF",
      "XLU",
      "Financials vs Utilities"
    ],
    "XLK/XLU": [
      "XLK",
      "XLU",
      "Technology vs Utilities"
    ],
    "XLE/XLV": [
      "XLE",
      "XLV",
      "Energy vs Health Care"
    ],
    "SMH/SPY": [
      "SMH",
      "SPY",
      "Semiconductors vs S&P 500"
    ],
    "QQQ/SPY": [
      "QQQ",
      "SPY",
      "Nasdaq 100 vs S&P 500"
    ],
    "RSP/SPY": [
      "RSP",
      "SPY",
      "Equal Weight vs Cap Weight"
    ],
    "IWM/SPY": [
      "IWM",
      "SPY",
      "Small Caps vs Large Caps"
    ],
    "IWF/IWD": [
      "IWF",
      "IWD",
      "Growth vs Value"
    ],
    "SPHB/SPLV": [
      "SPHB",
      "SPLV",
      "High Beta vs Low Vol"
    ],
    "MTUM/USMV": [
      "MTUM",
      "USMV",
      "Momentum vs Min Vol"
    ]
  },
  "v24_product_changes": [
    "Robust weighted score with available-weight threshold",
    "Normalized Rotation Score 0-100",
    "Smoothed EWM(5) historical score chart with state bands"
  ],
  "v25_product_changes": [
    "0-100 score as primary dashboard metric",
    "score change 5D/21D",
    "action bias",
    "best rotation candidate",
    "internal risk-on composite",
    "macro conditions fusion",
    "model confidence",
    "heatmaps sorted by score"
  ],
  "v251_hotfix": [
    "Load Plotly JS in Macro Conditions because it is now the first chart in the dashboard"
  ],
  "v252_history_update": [
    "Charts 10, 11 and 13 use HISTORY_MONTHS_MAIN=30"
  ],
  "v26_rrg_decision_maps": [
    "Adds Sector Momentum Map",
    "Adds Current RRG without tails",
    "Moves improved RRG tails to appendix",
    "Exports decision map and RRG phase tables"
  ],
  "v261_chart_branding": [
    "Central watermark",
    "Bottom-left source text",
    "Bottom-right logo on all charts"
  ],
  "v262_branding_fix": [
    "Larger chart canvas",
    "Horizontal centered watermark",
    "De-duplicate watermark/logo",
    "Lower logo aligned with source text"
  ],
  "v263_institutional_refinements": [
    "Logo lowered",
    "Sector-only labels/legends",
    "Column-wise heatmap coloring",
    "Score attribution",
    "Sector breadth",
    "Industry drilldown template"
  ],
  "v27_industry_drilldown": [
    "Active industry universe",
    "Industry score vs SPY and parent sector",
    "Industry top/bottom",
    "Sector vs industry confirmation matrix",
    "Industry momentum map",
    "Full industry table in appendix"
  ],
  "v271_hotfix": [
    "Remove stale industry_template reference from HTML table rendering"
  ],
  "v28_deployment_ready": [
    "Deployment-aware repo paths",
    "Static docs/index.html publishing",
    "CSV/JSON downloads folder",
    "GitHub Actions workflow ready",
    "GitHub Pages compatible"
  ],
  "v281_hotfix": [
    "Pandas stack compatibility: remove deprecated/invalid dropna argument"
  ],
  "v29_institutional_web": [
    "Fixed institutional navigation",
    "Executive landing page",
    "Sector Core and Industry Drilldown selectors",
    "Macro and internals workspace",
    "Data and audit workspace",
    "Responsive tab panels",
    "Plotly resize handling",
    "Institutional footer"
  ],
  "v210_institutional_product_release": [
    "Favicon and social metadata",
    "Standalone methodology page",
    "Operational status",
    "Executive conclusions",
    "Compact what-changed cards",
    "Leadership breadth",
    "Investment implications",
    "Divergence detection",
    "Institutional disclaimer"
  ],
  "score_weights": {
    "rel_mom_63_z": 0.28,
    "rel_mom_21_z": 0.16,
    "rel_mom_126_z": 0.12,
    "trend_distance_z": 0.14,
    "abs_mom_63_z": 0.1,
    "abs_mom_126_z": 0.06,
    "trend_health_score": 0.08,
    "volume_impulse_z": 0.04,
    "sector_macro_tailwind": 0.12
  },
  "created_at": "2026-07-21T23:28:38.244572"
}