Technical2026-10-02Options2026-10-02delayedFlowTrades/Quotes not entitled
Daily run 2026-10-02 · completeWatchlist 0
← Scan 362PRE_BREAKOUT_V1

NO_SETUP

SPGI

Session 2026-10-01 · Knowledge cutoff 2026-10-02T06:27:23.015919Z

Options intelligence for SPGI (descriptive options context; scan run 362 is not re-ranked by it) · Monitor SPGI (what changed since the previous comparable session)

Structural research evidence. Historical bars observed by this cutoff are reconstructed data, not a claim of historical as-traded availability.

close
388.16
sma50
417.8264
sma150
423.5226
sma200
440.9167
rsi14
32.579183
ema20
406.681232
atr14
9.847847
resistance
422.3525
distance pct
8.095726
extension atr
-1.880739
SPY · RS20 fraction
-0.099349
QQQ · RS20 fraction
-0.14711
distinct touches
4

The resistance line is selected at this snapshot. It does not assert that the level was known at every earlier chart date.

Hard requirements

confirmed resistanceMet
resistance
422.3525

Comparison: exists · eligible: true · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "confirmed_resistance",
  "category": "hard",
  "observed": [
    [
      "resistance",
      422.3525
    ]
  ],
  "operator": "exists",
  "threshold": [
    [
      "eligible",
      true
    ]
  ],
  "passed": true,
  "data_status": "complete",
  "reason": null,
  "unit": "comparison",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "structure",
      "1"
    ]
  ],
  "source_evidence": [],
  "pivots": [
    {
      "session": "2026-05-22",
      "price": 421.6,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-05-27",
      "confirmation_time": "2026-05-27T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-08-03",
      "price": 421.99,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-08-05",
      "confirmation_time": "2026-08-05T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-05-19",
      "price": 422.5,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-05-21",
      "confirmation_time": "2026-05-21T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-09-14",
      "price": 423.32,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-16",
      "confirmation_time": "2026-09-16T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    }
  ],
  "sessions": [],
  "available_at": "2026-09-24T12:11:02.289496Z"
}
distance to resistanceNot met
distance_pct
8.095725726732999
resistance
422.3525
close
388.16

Comparison: inclusive_between · min: 0, max: 3 · Unit: percent

Data status: complete

Exact versioned evidence
{
  "name": "distance_to_resistance",
  "category": "hard",
  "observed": [
    [
      "distance_pct",
      8.095725726732999
    ],
    [
      "resistance",
      422.3525
    ],
    [
      "close",
      388.16
    ]
  ],
  "operator": "inclusive_between",
  "threshold": [
    [
      "min",
      0
    ],
    [
      "max",
      3
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "percent",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "close",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "close",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 388.16,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-01",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
intermediate trendNot met
close
388.16
sma50
417.8264

Comparison: > · right_operand: sma50 · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "intermediate_trend",
  "category": "hard",
  "observed": [
    [
      "close",
      388.16
    ],
    [
      "sma50",
      417.8264
    ]
  ],
  "operator": ">",
  "threshold": [
    [
      "right_operand",
      "sma50"
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "comparison",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "close",
      "1"
    ],
    [
      "sma50",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "close",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 388.16,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-01",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "sma50",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 417.8264,
      "parameters": [
        [
          "required_observations",
          50
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 50,
      "observations_required": 50,
      "warmup": false,
      "input_start": "2026-07-23",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
long term trendNot met
sma150
423.5226
sma200
440.9167

Comparison: >= · right_operand: sma200 · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "long_term_trend",
  "category": "hard",
  "observed": [
    [
      "sma150",
      423.5226
    ],
    [
      "sma200",
      440.9167
    ]
  ],
  "operator": ">=",
  "threshold": [
    [
      "right_operand",
      "sma200"
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "comparison",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "sma150",
      "1"
    ],
    [
      "sma200",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "sma150",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 423.5226,
      "parameters": [
        [
          "required_observations",
          150
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 150,
      "observations_required": 150,
      "warmup": false,
      "input_start": "2026-02-27",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "sma200",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 440.9167,
      "parameters": [
        [
          "required_observations",
          200
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 200,
      "warmup": false,
      "input_start": "2025-12-15",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
rsi bandNot met
rsi14
32.57918335011793

Comparison: inclusive_between · min: 50, max: 70 · Unit: index

Data status: complete

Exact versioned evidence
{
  "name": "rsi_band",
  "category": "hard",
  "observed": [
    [
      "rsi14",
      32.57918335011793
    ]
  ],
  "operator": "inclusive_between",
  "threshold": [
    [
      "min",
      50
    ],
    [
      "max",
      70
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "index",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "rsi14",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "rsi14",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 32.57918335011793,
      "parameters": [
        [
          "required_observations",
          15
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 15,
      "warmup": false,
      "input_start": "2025-12-15",
      "seed_session": "2026-01-06",
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "index"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
extension atrMet
extension_atr
-1.8807392681567636
close
388.16
ema20
406.6812320074811
atr14
9.84784670638212

Comparison: <= · max: 1.5 · Unit: ATR

Data status: complete

Exact versioned evidence
{
  "name": "extension_atr",
  "category": "hard",
  "observed": [
    [
      "extension_atr",
      -1.8807392681567636
    ],
    [
      "close",
      388.16
    ],
    [
      "ema20",
      406.6812320074811
    ],
    [
      "atr14",
      9.84784670638212
    ]
  ],
  "operator": "<=",
  "threshold": [
    [
      "max",
      1.5
    ]
  ],
  "passed": true,
  "data_status": "complete",
  "reason": null,
  "unit": "ATR",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "close",
      "1"
    ],
    [
      "ema20",
      "1"
    ],
    [
      "atr14",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "close",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 388.16,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-01",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "ema20",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 406.6812320074811,
      "parameters": [
        [
          "required_observations",
          20
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 20,
      "warmup": false,
      "input_start": "2025-12-15",
      "seed_session": "2026-01-13",
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "atr14",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 9.84784670638212,
      "parameters": [
        [
          "required_observations",
          14
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 14,
      "warmup": false,
      "input_start": "2025-12-15",
      "seed_session": "2026-01-05",
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
relative strength 20Not met
SPY
-0.09934881219399438
QQQ
-0.14711049114314745

Comparison: OR > · SPY: 0, QQQ: 0 · Unit: fraction

Data status: complete

Exact versioned evidence
{
  "name": "relative_strength_20",
  "category": "hard",
  "observed": [
    [
      "SPY",
      -0.09934881219399438
    ],
    [
      "QQQ",
      -0.14711049114314745
    ]
  ],
  "operator": "OR >",
  "threshold": [
    [
      "SPY",
      0
    ],
    [
      "QQQ",
      0
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "fraction",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "SPY",
      "1"
    ],
    [
      "QQQ",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "relative_return",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": -0.09934881219399438,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "SPY"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-02",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "fraction"
    },
    {
      "name": "relative_return",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": -0.14711049114314745,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "QQQ"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-02",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "fraction"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
resistance qualityMet
distinct_touches
4

Comparison: policy_and_minimum_touches · min: 2 · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "resistance_quality",
  "category": "hard",
  "observed": [
    [
      "distinct_touches",
      4
    ]
  ],
  "operator": "policy_and_minimum_touches",
  "threshold": [
    [
      "min",
      2
    ]
  ],
  "passed": true,
  "data_status": "complete",
  "reason": null,
  "unit": "comparison",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "structure",
      "1"
    ]
  ],
  "source_evidence": [],
  "pivots": [
    {
      "session": "2026-05-22",
      "price": 421.6,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-05-27",
      "confirmation_time": "2026-05-27T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-08-03",
      "price": 421.99,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-08-05",
      "confirmation_time": "2026-08-05T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-05-19",
      "price": 422.5,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-05-21",
      "confirmation_time": "2026-05-21T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-09-14",
      "price": 423.32,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-16",
      "confirmation_time": "2026-09-16T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    }
  ],
  "sessions": [],
  "available_at": "2026-09-24T12:11:02.289496Z"
}

Supporting evidence

These observations do not change the trigger.

atr compressionMet
current_atr_pct
0.025370586114958057
median_previous_60_atr_pct
0.028241991172072885
ratio
0.8983285194156487

Comparison: < · right_operand: median_previous_60_atr_pct · Unit: fraction

Data status: complete

Exact versioned evidence
{
  "name": "atr_compression",
  "category": "supporting",
  "observed": [
    [
      "current_atr_pct",
      0.025370586114958057
    ],
    [
      "median_previous_60_atr_pct",
      0.028241991172072885
    ],
    [
      "ratio",
      0.8983285194156487
    ]
  ],
  "operator": "<",
  "threshold": [
    [
      "right_operand",
      "median_previous_60_atr_pct"
    ]
  ],
  "passed": true,
  "data_status": "complete",
  "reason": null,
  "unit": "fraction",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "atr14",
      "1"
    ],
    [
      "supporting",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "atr14",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 9.84784670638212,
      "parameters": [
        [
          "required_observations",
          14
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 14,
      "warmup": false,
      "input_start": "2025-12-15",
      "seed_session": "2026-01-05",
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "close",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 388.16,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-01",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "atr_compression_baseline",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 0.028241991172072885,
      "parameters": [
        [
          "baseline_sessions",
          60
        ],
        [
          "current_excluded",
          "true"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 74,
      "warmup": false,
      "input_start": "2025-12-15",
      "seed_session": "2026-01-05",
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "fraction"
    }
  ],
  "pivots": [],
  "sessions": [
    [
      "baseline",
      [
        "2026-07-08",
        "2026-07-09",
        "2026-07-10",
        "2026-07-13",
        "2026-07-14",
        "2026-07-15",
        "2026-07-16",
        "2026-07-17",
        "2026-07-20",
        "2026-07-21",
        "2026-07-22",
        "2026-07-23",
        "2026-07-24",
        "2026-07-27",
        "2026-07-28",
        "2026-07-29",
        "2026-07-30",
        "2026-07-31",
        "2026-08-03",
        "2026-08-04",
        "2026-08-05",
        "2026-08-06",
        "2026-08-07",
        "2026-08-10",
        "2026-08-11",
        "2026-08-12",
        "2026-08-13",
        "2026-08-14",
        "2026-08-17",
        "2026-08-18",
        "2026-08-19",
        "2026-08-20",
        "2026-08-21",
        "2026-08-24",
        "2026-08-25",
        "2026-08-26",
        "2026-08-27",
        "2026-08-28",
        "2026-08-31",
        "2026-09-01",
        "2026-09-02",
        "2026-09-03",
        "2026-09-04",
        "2026-09-08",
        "2026-09-09",
        "2026-09-10",
        "2026-09-11",
        "2026-09-14",
        "2026-09-15",
        "2026-09-16",
        "2026-09-17",
        "2026-09-18",
        "2026-09-21",
        "2026-09-22",
        "2026-09-23",
        "2026-09-24",
        "2026-09-25",
        "2026-09-28",
        "2026-09-29",
        "2026-09-30"
      ]
    ]
  ],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
volume contractionNot met
recent_volume
2526607.5070288
baseline_volume
1823755.1971354
ratio
1.3853874198671954

Comparison: < · max: 0.85 · Unit: ratio

Data status: complete

Exact versioned evidence
{
  "name": "volume_contraction",
  "category": "supporting",
  "observed": [
    [
      "recent_volume",
      2526607.5070288
    ],
    [
      "baseline_volume",
      1823755.1971354
    ],
    [
      "ratio",
      1.3853874198671954
    ]
  ],
  "operator": "<",
  "threshold": [
    [
      "max",
      0.85
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "ratio",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "supporting",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "volume_contraction",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 1.3853874198671954,
      "parameters": [
        [
          "recent_sessions",
          5
        ],
        [
          "baseline_sessions",
          20
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 25,
      "observations_required": 25,
      "warmup": false,
      "input_start": "2026-08-27",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "ratio"
    }
  ],
  "pivots": [],
  "sessions": [
    [
      "recent",
      [
        "2026-09-25",
        "2026-09-28",
        "2026-09-29",
        "2026-09-30",
        "2026-10-01"
      ]
    ],
    [
      "baseline",
      [
        "2026-08-27",
        "2026-08-28",
        "2026-08-31",
        "2026-09-01",
        "2026-09-02",
        "2026-09-03",
        "2026-09-04",
        "2026-09-08",
        "2026-09-09",
        "2026-09-10",
        "2026-09-11",
        "2026-09-14",
        "2026-09-15",
        "2026-09-16",
        "2026-09-17",
        "2026-09-18",
        "2026-09-21",
        "2026-09-22",
        "2026-09-23",
        "2026-09-24"
      ]
    ]
  ],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
higher lowsNot met
low_1
428.145
low_2
407.44
low_3
400.83

Comparison: low_3 > low_2 > low_1 · required_pivots: 3 · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "higher_lows",
  "category": "supporting",
  "observed": [
    [
      "low_1",
      428.145
    ],
    [
      "low_2",
      407.44
    ],
    [
      "low_3",
      400.83
    ]
  ],
  "operator": "low_3 > low_2 > low_1",
  "threshold": [
    [
      "required_pivots",
      3
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "comparison",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "structure",
      "1"
    ]
  ],
  "source_evidence": [],
  "pivots": [
    {
      "session": "2026-09-01",
      "price": 428.145,
      "kind": "low",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-03",
      "confirmation_time": "2026-09-03T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-09-11",
      "price": 407.44,
      "kind": "low",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-15",
      "confirmation_time": "2026-09-15T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    },
    {
      "session": "2026-09-18",
      "price": 400.83,
      "kind": "low",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-22",
      "confirmation_time": "2026-09-22T20:00:00Z",
      "available_at": "2026-09-24T12:11:02.289496Z",
      "version": "1"
    }
  ],
  "sessions": [],
  "available_at": "2026-09-24T12:11:02.289496Z"
}
full ma alignmentNot met
sma50
417.8264
sma150
423.5226
sma200
440.9167

Comparison: sma50 > sma150 > sma200 · · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "full_ma_alignment",
  "category": "supporting",
  "observed": [
    [
      "sma50",
      417.8264
    ],
    [
      "sma150",
      423.5226
    ],
    [
      "sma200",
      440.9167
    ]
  ],
  "operator": "sma50 > sma150 > sma200",
  "threshold": [],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "comparison",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "sma50",
      "1"
    ],
    [
      "sma150",
      "1"
    ],
    [
      "sma200",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "sma50",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 417.8264,
      "parameters": [
        [
          "required_observations",
          50
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 50,
      "observations_required": 50,
      "warmup": false,
      "input_start": "2026-07-23",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "sma150",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 423.5226,
      "parameters": [
        [
          "required_observations",
          150
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 150,
      "observations_required": 150,
      "warmup": false,
      "input_start": "2026-02-27",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    },
    {
      "name": "sma200",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": 440.9167,
      "parameters": [
        [
          "required_observations",
          200
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 200,
      "warmup": false,
      "input_start": "2025-12-15",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "price"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": null
}
rs20 spy positiveNot met
SPY
-0.09934881219399438

Comparison: > · min: 0 · Unit: fraction

Data status: complete

Exact versioned evidence
{
  "name": "rs20_spy_positive",
  "category": "supporting",
  "observed": [
    [
      "SPY",
      -0.09934881219399438
    ]
  ],
  "operator": ">",
  "threshold": [
    [
      "min",
      0
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "fraction",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "relative_return",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "relative_return",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": -0.09934881219399438,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "SPY"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-02",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "fraction"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
rs20 qqq positiveNot met
QQQ
-0.14711049114314745

Comparison: > · min: 0 · Unit: fraction

Data status: complete

Exact versioned evidence
{
  "name": "rs20_qqq_positive",
  "category": "supporting",
  "observed": [
    [
      "QQQ",
      -0.14711049114314745
    ]
  ],
  "operator": ">",
  "threshold": [
    [
      "min",
      0
    ]
  ],
  "passed": false,
  "data_status": "complete",
  "reason": null,
  "unit": "fraction",
  "rule_version": "PRE_BREAKOUT_V1",
  "feature_versions": [
    [
      "relative_return",
      "1"
    ]
  ],
  "source_evidence": [
    {
      "name": "relative_return",
      "version": "1",
      "symbol": "SPGI",
      "session": "2026-10-01",
      "as_of": "2026-10-02T06:27:23.015919Z",
      "value": -0.14711049114314745,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "QQQ"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-02",
      "seed_session": null,
      "available_at": "2026-10-02T06:26:41.439951Z",
      "missing_sessions": [],
      "reset_after_gap": false,
      "provider": "massive",
      "adjustment": "split_adjusted",
      "session_scope": "provider_aggregate",
      "calendar": "XNYS",
      "calendar_version": "4.13.2",
      "unit": "fraction"
    }
  ],
  "pivots": [],
  "sessions": [],
  "available_at": "2026-10-02T06:26:41.439951Z"
}
Structure policy and full stored result
{
  "rule_name": "PRE_BREAKOUT",
  "rule_version": "PRE_BREAKOUT_V1",
  "state": "NO_SETUP",
  "triggered": false,
  "symbol": "SPGI",
  "session": "2026-10-01",
  "as_of": "2026-10-02T06:27:23.015919Z",
  "structure_policy": {
    "version": "1",
    "pivot_left": 2,
    "pivot_right": 2,
    "level_lookback": 126,
    "clustering_tolerance": 0.005,
    "minimum_touches": 2,
    "weighting": "equal"
  },
  "rule_policy": {
    "version": "PRE_BREAKOUT_V1",
    "distance_min": 0,
    "distance_max": 3,
    "rsi_min": 50,
    "rsi_max": 70,
    "extension_max": 1.5,
    "minimum_touches": 2,
    "atr_baseline_sessions": 60,
    "volume_recent_sessions": 5,
    "volume_baseline_sessions": 20,
    "volume_ratio_max": 0.85,
    "selection": "nearest_at_or_above_else_nearest_below",
    "both_benchmarks_valid": true
  },
  "analysis_version": "1",
  "selected_resistance": {
    "value": 422.3525,
    "kind": "resistance",
    "first_session": "2026-05-19",
    "first_eligible_session": "2026-05-27",
    "available_at": "2026-09-24T12:11:02.289496Z",
    "pivots": [
      {
        "session": "2026-05-22",
        "price": 421.6,
        "kind": "high",
        "left": 2,
        "right": 2,
        "confirmation_session": "2026-05-27",
        "confirmation_time": "2026-05-27T20:00:00Z",
        "available_at": "2026-09-24T12:11:02.289496Z",
        "version": "1"
      },
      {
        "session": "2026-08-03",
        "price": 421.99,
        "kind": "high",
        "left": 2,
        "right": 2,
        "confirmation_session": "2026-08-05",
        "confirmation_time": "2026-08-05T20:00:00Z",
        "available_at": "2026-09-24T12:11:02.289496Z",
        "version": "1"
      },
      {
        "session": "2026-05-19",
        "price": 422.5,
        "kind": "high",
        "left": 2,
        "right": 2,
        "confirmation_session": "2026-05-21",
        "confirmation_time": "2026-05-21T20:00:00Z",
        "available_at": "2026-09-24T12:11:02.289496Z",
        "version": "1"
      },
      {
        "session": "2026-09-14",
        "price": 423.32,
        "kind": "high",
        "left": 2,
        "right": 2,
        "confirmation_session": "2026-09-16",
        "confirmation_time": "2026-09-16T20:00:00Z",
        "available_at": "2026-09-24T12:11:02.289496Z",
        "version": "1"
      }
    ],
    "touches": 4,
    "tolerance": 0.005,
    "min_touches": 2,
    "lookback": 126,
    "weighting": "equal",
    "version": "1"
  },
  "hard_conditions": [
    {
      "name": "confirmed_resistance",
      "category": "hard",
      "observed": [
        [
          "resistance",
          422.3525
        ]
      ],
      "operator": "exists",
      "threshold": [
        [
          "eligible",
          true
        ]
      ],
      "passed": true,
      "data_status": "complete",
      "reason": null,
      "unit": "comparison",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "structure",
          "1"
        ]
      ],
      "source_evidence": [],
      "pivots": [
        {
          "session": "2026-05-22",
          "price": 421.6,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-05-27",
          "confirmation_time": "2026-05-27T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-08-03",
          "price": 421.99,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-08-05",
          "confirmation_time": "2026-08-05T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-05-19",
          "price": 422.5,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-05-21",
          "confirmation_time": "2026-05-21T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-09-14",
          "price": 423.32,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-16",
          "confirmation_time": "2026-09-16T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        }
      ],
      "sessions": [],
      "available_at": "2026-09-24T12:11:02.289496Z"
    },
    {
      "name": "distance_to_resistance",
      "category": "hard",
      "observed": [
        [
          "distance_pct",
          8.095725726732999
        ],
        [
          "resistance",
          422.3525
        ],
        [
          "close",
          388.16
        ]
      ],
      "operator": "inclusive_between",
      "threshold": [
        [
          "min",
          0
        ],
        [
          "max",
          3
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "percent",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "close",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "close",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 388.16,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-01",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "intermediate_trend",
      "category": "hard",
      "observed": [
        [
          "close",
          388.16
        ],
        [
          "sma50",
          417.8264
        ]
      ],
      "operator": ">",
      "threshold": [
        [
          "right_operand",
          "sma50"
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "comparison",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "close",
          "1"
        ],
        [
          "sma50",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "close",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 388.16,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-01",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "sma50",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 417.8264,
          "parameters": [
            [
              "required_observations",
              50
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 50,
          "observations_required": 50,
          "warmup": false,
          "input_start": "2026-07-23",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "long_term_trend",
      "category": "hard",
      "observed": [
        [
          "sma150",
          423.5226
        ],
        [
          "sma200",
          440.9167
        ]
      ],
      "operator": ">=",
      "threshold": [
        [
          "right_operand",
          "sma200"
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "comparison",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "sma150",
          "1"
        ],
        [
          "sma200",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "sma150",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 423.5226,
          "parameters": [
            [
              "required_observations",
              150
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 150,
          "observations_required": 150,
          "warmup": false,
          "input_start": "2026-02-27",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "sma200",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 440.9167,
          "parameters": [
            [
              "required_observations",
              200
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 200,
          "warmup": false,
          "input_start": "2025-12-15",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "rsi_band",
      "category": "hard",
      "observed": [
        [
          "rsi14",
          32.57918335011793
        ]
      ],
      "operator": "inclusive_between",
      "threshold": [
        [
          "min",
          50
        ],
        [
          "max",
          70
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "index",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "rsi14",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "rsi14",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 32.57918335011793,
          "parameters": [
            [
              "required_observations",
              15
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 15,
          "warmup": false,
          "input_start": "2025-12-15",
          "seed_session": "2026-01-06",
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "index"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "extension_atr",
      "category": "hard",
      "observed": [
        [
          "extension_atr",
          -1.8807392681567636
        ],
        [
          "close",
          388.16
        ],
        [
          "ema20",
          406.6812320074811
        ],
        [
          "atr14",
          9.84784670638212
        ]
      ],
      "operator": "<=",
      "threshold": [
        [
          "max",
          1.5
        ]
      ],
      "passed": true,
      "data_status": "complete",
      "reason": null,
      "unit": "ATR",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "close",
          "1"
        ],
        [
          "ema20",
          "1"
        ],
        [
          "atr14",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "close",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 388.16,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-01",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "ema20",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 406.6812320074811,
          "parameters": [
            [
              "required_observations",
              20
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 20,
          "warmup": false,
          "input_start": "2025-12-15",
          "seed_session": "2026-01-13",
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "atr14",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 9.84784670638212,
          "parameters": [
            [
              "required_observations",
              14
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 14,
          "warmup": false,
          "input_start": "2025-12-15",
          "seed_session": "2026-01-05",
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "relative_strength_20",
      "category": "hard",
      "observed": [
        [
          "SPY",
          -0.09934881219399438
        ],
        [
          "QQQ",
          -0.14711049114314745
        ]
      ],
      "operator": "OR >",
      "threshold": [
        [
          "SPY",
          0
        ],
        [
          "QQQ",
          0
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "fraction",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "SPY",
          "1"
        ],
        [
          "QQQ",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "relative_return",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": -0.09934881219399438,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "SPY"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-02",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "fraction"
        },
        {
          "name": "relative_return",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": -0.14711049114314745,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "QQQ"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-02",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "fraction"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "resistance_quality",
      "category": "hard",
      "observed": [
        [
          "distinct_touches",
          4
        ]
      ],
      "operator": "policy_and_minimum_touches",
      "threshold": [
        [
          "min",
          2
        ]
      ],
      "passed": true,
      "data_status": "complete",
      "reason": null,
      "unit": "comparison",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "structure",
          "1"
        ]
      ],
      "source_evidence": [],
      "pivots": [
        {
          "session": "2026-05-22",
          "price": 421.6,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-05-27",
          "confirmation_time": "2026-05-27T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-08-03",
          "price": 421.99,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-08-05",
          "confirmation_time": "2026-08-05T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-05-19",
          "price": 422.5,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-05-21",
          "confirmation_time": "2026-05-21T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-09-14",
          "price": 423.32,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-16",
          "confirmation_time": "2026-09-16T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        }
      ],
      "sessions": [],
      "available_at": "2026-09-24T12:11:02.289496Z"
    }
  ],
  "supporting_conditions": [
    {
      "name": "atr_compression",
      "category": "supporting",
      "observed": [
        [
          "current_atr_pct",
          0.025370586114958057
        ],
        [
          "median_previous_60_atr_pct",
          0.028241991172072885
        ],
        [
          "ratio",
          0.8983285194156487
        ]
      ],
      "operator": "<",
      "threshold": [
        [
          "right_operand",
          "median_previous_60_atr_pct"
        ]
      ],
      "passed": true,
      "data_status": "complete",
      "reason": null,
      "unit": "fraction",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "atr14",
          "1"
        ],
        [
          "supporting",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "atr14",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 9.84784670638212,
          "parameters": [
            [
              "required_observations",
              14
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 14,
          "warmup": false,
          "input_start": "2025-12-15",
          "seed_session": "2026-01-05",
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "close",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 388.16,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-01",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "atr_compression_baseline",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 0.028241991172072885,
          "parameters": [
            [
              "baseline_sessions",
              60
            ],
            [
              "current_excluded",
              "true"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 74,
          "warmup": false,
          "input_start": "2025-12-15",
          "seed_session": "2026-01-05",
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "fraction"
        }
      ],
      "pivots": [],
      "sessions": [
        [
          "baseline",
          [
            "2026-07-08",
            "2026-07-09",
            "2026-07-10",
            "2026-07-13",
            "2026-07-14",
            "2026-07-15",
            "2026-07-16",
            "2026-07-17",
            "2026-07-20",
            "2026-07-21",
            "2026-07-22",
            "2026-07-23",
            "2026-07-24",
            "2026-07-27",
            "2026-07-28",
            "2026-07-29",
            "2026-07-30",
            "2026-07-31",
            "2026-08-03",
            "2026-08-04",
            "2026-08-05",
            "2026-08-06",
            "2026-08-07",
            "2026-08-10",
            "2026-08-11",
            "2026-08-12",
            "2026-08-13",
            "2026-08-14",
            "2026-08-17",
            "2026-08-18",
            "2026-08-19",
            "2026-08-20",
            "2026-08-21",
            "2026-08-24",
            "2026-08-25",
            "2026-08-26",
            "2026-08-27",
            "2026-08-28",
            "2026-08-31",
            "2026-09-01",
            "2026-09-02",
            "2026-09-03",
            "2026-09-04",
            "2026-09-08",
            "2026-09-09",
            "2026-09-10",
            "2026-09-11",
            "2026-09-14",
            "2026-09-15",
            "2026-09-16",
            "2026-09-17",
            "2026-09-18",
            "2026-09-21",
            "2026-09-22",
            "2026-09-23",
            "2026-09-24",
            "2026-09-25",
            "2026-09-28",
            "2026-09-29",
            "2026-09-30"
          ]
        ]
      ],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "volume_contraction",
      "category": "supporting",
      "observed": [
        [
          "recent_volume",
          2526607.5070288
        ],
        [
          "baseline_volume",
          1823755.1971354
        ],
        [
          "ratio",
          1.3853874198671954
        ]
      ],
      "operator": "<",
      "threshold": [
        [
          "max",
          0.85
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "ratio",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "supporting",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "volume_contraction",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 1.3853874198671954,
          "parameters": [
            [
              "recent_sessions",
              5
            ],
            [
              "baseline_sessions",
              20
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 25,
          "observations_required": 25,
          "warmup": false,
          "input_start": "2026-08-27",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "ratio"
        }
      ],
      "pivots": [],
      "sessions": [
        [
          "recent",
          [
            "2026-09-25",
            "2026-09-28",
            "2026-09-29",
            "2026-09-30",
            "2026-10-01"
          ]
        ],
        [
          "baseline",
          [
            "2026-08-27",
            "2026-08-28",
            "2026-08-31",
            "2026-09-01",
            "2026-09-02",
            "2026-09-03",
            "2026-09-04",
            "2026-09-08",
            "2026-09-09",
            "2026-09-10",
            "2026-09-11",
            "2026-09-14",
            "2026-09-15",
            "2026-09-16",
            "2026-09-17",
            "2026-09-18",
            "2026-09-21",
            "2026-09-22",
            "2026-09-23",
            "2026-09-24"
          ]
        ]
      ],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "higher_lows",
      "category": "supporting",
      "observed": [
        [
          "low_1",
          428.145
        ],
        [
          "low_2",
          407.44
        ],
        [
          "low_3",
          400.83
        ]
      ],
      "operator": "low_3 > low_2 > low_1",
      "threshold": [
        [
          "required_pivots",
          3
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "comparison",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "structure",
          "1"
        ]
      ],
      "source_evidence": [],
      "pivots": [
        {
          "session": "2026-09-01",
          "price": 428.145,
          "kind": "low",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-03",
          "confirmation_time": "2026-09-03T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-09-11",
          "price": 407.44,
          "kind": "low",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-15",
          "confirmation_time": "2026-09-15T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        },
        {
          "session": "2026-09-18",
          "price": 400.83,
          "kind": "low",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-22",
          "confirmation_time": "2026-09-22T20:00:00Z",
          "available_at": "2026-09-24T12:11:02.289496Z",
          "version": "1"
        }
      ],
      "sessions": [],
      "available_at": "2026-09-24T12:11:02.289496Z"
    },
    {
      "name": "full_ma_alignment",
      "category": "supporting",
      "observed": [
        [
          "sma50",
          417.8264
        ],
        [
          "sma150",
          423.5226
        ],
        [
          "sma200",
          440.9167
        ]
      ],
      "operator": "sma50 > sma150 > sma200",
      "threshold": [],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "comparison",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "sma50",
          "1"
        ],
        [
          "sma150",
          "1"
        ],
        [
          "sma200",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "sma50",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 417.8264,
          "parameters": [
            [
              "required_observations",
              50
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 50,
          "observations_required": 50,
          "warmup": false,
          "input_start": "2026-07-23",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "sma150",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 423.5226,
          "parameters": [
            [
              "required_observations",
              150
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 150,
          "observations_required": 150,
          "warmup": false,
          "input_start": "2026-02-27",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        },
        {
          "name": "sma200",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": 440.9167,
          "parameters": [
            [
              "required_observations",
              200
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 200,
          "warmup": false,
          "input_start": "2025-12-15",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "price"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": null
    },
    {
      "name": "rs20_spy_positive",
      "category": "supporting",
      "observed": [
        [
          "SPY",
          -0.09934881219399438
        ]
      ],
      "operator": ">",
      "threshold": [
        [
          "min",
          0
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "fraction",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "relative_return",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "relative_return",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": -0.09934881219399438,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "SPY"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-02",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "fraction"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    },
    {
      "name": "rs20_qqq_positive",
      "category": "supporting",
      "observed": [
        [
          "QQQ",
          -0.14711049114314745
        ]
      ],
      "operator": ">",
      "threshold": [
        [
          "min",
          0
        ]
      ],
      "passed": false,
      "data_status": "complete",
      "reason": null,
      "unit": "fraction",
      "rule_version": "PRE_BREAKOUT_V1",
      "feature_versions": [
        [
          "relative_return",
          "1"
        ]
      ],
      "source_evidence": [
        {
          "name": "relative_return",
          "version": "1",
          "symbol": "SPGI",
          "session": "2026-10-01",
          "as_of": "2026-10-02T06:27:23.015919Z",
          "value": -0.14711049114314745,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "QQQ"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-02",
          "seed_session": null,
          "available_at": "2026-10-02T06:26:41.439951Z",
          "missing_sessions": [],
          "reset_after_gap": false,
          "provider": "massive",
          "adjustment": "split_adjusted",
          "session_scope": "provider_aggregate",
          "calendar": "XNYS",
          "calendar_version": "4.13.2",
          "unit": "fraction"
        }
      ],
      "pivots": [],
      "sessions": [],
      "available_at": "2026-10-02T06:26:41.439951Z"
    }
  ]
}