{
  "comparison_results": [
    {
      "ticker": "SBER",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 79.3,
      "agreement": false
    },
    {
      "ticker": "GAZP",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [
        "SC (Selling Climax): неделя 2026.03.23, объём 662.0M (x5.6)"
      ],
      "rule_direction": "",
      "nn_phase": 4,
      "nn_text": "Распределение",
      "nn_confidence": 52.5,
      "agreement": false
    },
    {
      "ticker": "LKOH",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [
        "SC (Selling Climax): неделя 2026.03.02, объём 11.3M (x3.0)"
      ],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 71.5,
      "agreement": false
    },
    {
      "ticker": "ROSN",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [
        "SC (Selling Climax): неделя 2026.03.23, объём 105.9M (x3.0)"
      ],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 50.0,
      "agreement": false
    },
    {
      "ticker": "NVTK",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [
        "SC (Selling Climax): неделя 2026.03.23, объём 38.6M (x3.4)"
      ],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 53.9,
      "agreement": false
    },
    {
      "ticker": "MGNT",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.MGNT_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.MGNT_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "TATN",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.TATN_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.TATN_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "SNGS",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.SNGS_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.SNGS_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "PLZL",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": 0,
      "nn_text": "Маркдаун",
      "nn_confidence": 46.6,
      "agreement": true
    },
    {
      "ticker": "PHOR",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [
        "SC (Selling Climax): неделя 2026.03.23, объём 1.4M (x3.5)"
      ],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 59.0,
      "agreement": false
    },
    {
      "ticker": "NLMK",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.NLMK_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.NLMK_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "CHMF",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.CHMF_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.CHMF_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "GMKN",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.GMKN_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.GMKN_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "ALRS",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.ALRS_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.ALRS_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "MTSS",
      "rule_phase": 2,
      "rule_text": "Консолидация (неопределённая фаза)",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 51.6,
      "agreement": false
    },
    {
      "ticker": "VTBR",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 52.8,
      "agreement": false
    },
    {
      "ticker": "MOEX",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [
        "SC (Selling Climax): неделя 2026.02.02, объём 39.8M (x3.9)"
      ],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 53.0,
      "agreement": false
    },
    {
      "ticker": "X5",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown)",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 69.4,
      "agreement": false
    },
    {
      "ticker": "AFLT",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.AFLT_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.AFLT_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "RUAL",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.RUAL_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.RUAL_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "SELG",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.SELG_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.SELG_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "IRAO",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.IRAO_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.IRAO_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "HYDR",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.HYDR_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.HYDR_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "MAGN",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.MAGN_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.MAGN_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "RASP",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.RASP_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.RASP_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "NMTP",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.NMTP_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.NMTP_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "FESH",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.FESH_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.FESH_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "CBOM",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.CBOM_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.CBOM_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "TCSG",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.TCSG_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.TCSG_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "VKCO",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.VKCO_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.VKCO_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "YDEX",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.YDEX_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.YDEX_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "OZON",
      "rule_phase": -1,
      "rule_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.OZON_W1' doesn't",
      "rule_events": [],
      "rule_direction": "",
      "nn_phase": -1,
      "nn_text": "ERROR: 1146 (42S02): Table 'bitcoin_tickers.OZON_D1' doesn't exist",
      "nn_confidence": 0,
      "agreement": true
    },
    {
      "ticker": "ASTR",
      "rule_phase": 0,
      "rule_text": "Маркдаун (Markdown) — возможен переход к накоплению",
      "rule_events": [
        "SC (Selling Climax): неделя 2026.06.08, объём 55.2M (x3.3)"
      ],
      "rule_direction": "",
      "nn_phase": 1,
      "nn_text": "Накопление (раннее)",
      "nn_confidence": 57.3,
      "agreement": false
    }
  ],
  "metrics": {
    "accuracy": 0.0833,
    "cohen_kappa": 0.0075,
    "total_valid": 12,
    "exact_match_count": 1,
    "exact_match_pct": 8.3
  },
  "confusion_matrix": [
    [
      1,
      9,
      0,
      0,
      1
    ],
    [
      0,
      0,
      0,
      0,
      0
    ],
    [
      0,
      1,
      0,
      0,
      0
    ],
    [
      0,
      0,
      0,
      0,
      0
    ],
    [
      0,
      0,
      0,
      0,
      0
    ]
  ]
}