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

NO_SETUP

PSA

Session 2026-10-02 · Knowledge cutoff 2026-10-04T13:23:10.133160Z

Options intelligence for PSA (descriptive options context; scan run 416 is not re-ranked by it) · Monitor PSA (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
283.81
sma50
309.528
sma150
305.901733
sma200
299.65505
rsi14
32.365053
ema20
292.504499
atr14
5.754292
resistance
301.67875
distance pct
5.923105
extension atr
-1.510959
SPY · RS20 fraction
-0.067132
QQQ · RS20 fraction
-0.116161
distinct touches
2

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
301.67875000000004

Comparison: exists · eligible: true · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "confirmed_resistance",
  "category": "hard",
  "observed": [
    [
      "resistance",
      301.67875000000004
    ]
  ],
  "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-09-14",
      "price": 301.2975,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-16",
      "confirmation_time": "2026-09-16T20:00:00Z",
      "available_at": "2026-09-24T12:02:37.618399Z",
      "version": "1"
    },
    {
      "session": "2026-09-18",
      "price": 302.06,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-22",
      "confirmation_time": "2026-09-22T20:00:00Z",
      "available_at": "2026-09-24T12:02:37.618399Z",
      "version": "1"
    }
  ],
  "sessions": [],
  "available_at": "2026-09-24T12:02:37.618399Z"
}
distance to resistanceNot met
distance_pct
5.923105289981489
resistance
301.67875000000004
close
283.81

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

Data status: complete

Exact versioned evidence
{
  "name": "distance_to_resistance",
  "category": "hard",
  "observed": [
    [
      "distance_pct",
      5.923105289981489
    ],
    [
      "resistance",
      301.67875000000004
    ],
    [
      "close",
      283.81
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 283.81,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-02",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
intermediate trendNot met
close
283.81
sma50
309.528

Comparison: > · right_operand: sma50 · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "intermediate_trend",
  "category": "hard",
  "observed": [
    [
      "close",
      283.81
    ],
    [
      "sma50",
      309.528
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 283.81,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-02",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 309.528,
      "parameters": [
        [
          "required_observations",
          50
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 50,
      "observations_required": 50,
      "warmup": false,
      "input_start": "2026-07-24",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
long term trendMet
sma150
305.90173333333337
sma200
299.65505

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

Data status: complete

Exact versioned evidence
{
  "name": "long_term_trend",
  "category": "hard",
  "observed": [
    [
      "sma150",
      305.90173333333337
    ],
    [
      "sma200",
      299.65505
    ]
  ],
  "operator": ">=",
  "threshold": [
    [
      "right_operand",
      "sma200"
    ]
  ],
  "passed": true,
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 305.90173333333337,
      "parameters": [
        [
          "required_observations",
          150
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 150,
      "observations_required": 150,
      "warmup": false,
      "input_start": "2026-03-02",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 299.65505,
      "parameters": [
        [
          "required_observations",
          200
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 200,
      "warmup": false,
      "input_start": "2025-12-16",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
rsi bandNot met
rsi14
32.36505272457504

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

Data status: complete

Exact versioned evidence
{
  "name": "rsi_band",
  "category": "hard",
  "observed": [
    [
      "rsi14",
      32.36505272457504
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 32.36505272457504,
      "parameters": [
        [
          "required_observations",
          15
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 15,
      "warmup": false,
      "input_start": "2025-12-16",
      "seed_session": "2026-01-07",
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
extension atrMet
extension_atr
-1.5109589247427493
close
283.81
ema20
292.50449881110666
atr14
5.754291972289684

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

Data status: complete

Exact versioned evidence
{
  "name": "extension_atr",
  "category": "hard",
  "observed": [
    [
      "extension_atr",
      -1.5109589247427493
    ],
    [
      "close",
      283.81
    ],
    [
      "ema20",
      292.50449881110666
    ],
    [
      "atr14",
      5.754291972289684
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 283.81,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-02",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 292.50449881110666,
      "parameters": [
        [
          "required_observations",
          20
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 20,
      "warmup": false,
      "input_start": "2025-12-16",
      "seed_session": "2026-01-14",
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 5.754291972289684,
      "parameters": [
        [
          "required_observations",
          14
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 14,
      "warmup": false,
      "input_start": "2025-12-16",
      "seed_session": "2026-01-06",
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
relative strength 20Not met
SPY
-0.06713162974408526
QQQ
-0.11616058193634415

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

Data status: complete

Exact versioned evidence
{
  "name": "relative_strength_20",
  "category": "hard",
  "observed": [
    [
      "SPY",
      -0.06713162974408526
    ],
    [
      "QQQ",
      -0.11616058193634415
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": -0.06713162974408526,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "SPY"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-03",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": -0.11616058193634415,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "QQQ"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-03",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
resistance qualityMet
distinct_touches
2

Comparison: policy_and_minimum_touches · min: 2 · Unit: comparison

Data status: complete

Exact versioned evidence
{
  "name": "resistance_quality",
  "category": "hard",
  "observed": [
    [
      "distinct_touches",
      2
    ]
  ],
  "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-09-14",
      "price": 301.2975,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-16",
      "confirmation_time": "2026-09-16T20:00:00Z",
      "available_at": "2026-09-24T12:02:37.618399Z",
      "version": "1"
    },
    {
      "session": "2026-09-18",
      "price": 302.06,
      "kind": "high",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-22",
      "confirmation_time": "2026-09-22T20:00:00Z",
      "available_at": "2026-09-24T12:02:37.618399Z",
      "version": "1"
    }
  ],
  "sessions": [],
  "available_at": "2026-09-24T12:02:37.618399Z"
}

Supporting evidence

These observations do not change the trigger.

atr compressionMet
current_atr_pct
0.02027515581653107
median_previous_60_atr_pct
0.021570727531876284
ratio
0.9399384321446427

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.02027515581653107
    ],
    [
      "median_previous_60_atr_pct",
      0.021570727531876284
    ],
    [
      "ratio",
      0.9399384321446427
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 5.754291972289684,
      "parameters": [
        [
          "required_observations",
          14
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 14,
      "warmup": false,
      "input_start": "2025-12-16",
      "seed_session": "2026-01-06",
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 283.81,
      "parameters": [],
      "data_status": "complete",
      "reason": null,
      "observations_used": 1,
      "observations_required": 1,
      "warmup": false,
      "input_start": "2026-10-02",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 0.021570727531876284,
      "parameters": [
        [
          "baseline_sessions",
          60
        ],
        [
          "current_excluded",
          "true"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 74,
      "warmup": false,
      "input_start": "2025-12-16",
      "seed_session": "2026-01-06",
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-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",
        "2026-10-01"
      ]
    ]
  ],
  "available_at": "2026-10-04T13:22:16.284881Z"
}
volume contractionNot met
recent_volume
919287.8396782
baseline_volume
901699.4516804001
ratio
1.0195058208863523

Comparison: < · max: 0.85 · Unit: ratio

Data status: complete

Exact versioned evidence
{
  "name": "volume_contraction",
  "category": "supporting",
  "observed": [
    [
      "recent_volume",
      919287.8396782
    ],
    [
      "baseline_volume",
      901699.4516804001
    ],
    [
      "ratio",
      1.0195058208863523
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 1.0195058208863523,
      "parameters": [
        [
          "recent_sessions",
          5
        ],
        [
          "baseline_sessions",
          20
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 25,
      "observations_required": 25,
      "warmup": false,
      "input_start": "2026-08-28",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-28",
        "2026-09-29",
        "2026-09-30",
        "2026-10-01",
        "2026-10-02"
      ]
    ],
    [
      "baseline",
      [
        "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"
      ]
    ]
  ],
  "available_at": "2026-10-04T13:22:16.284881Z"
}
higher lowsNot met
low_1
296.69
low_2
292.61
low_3
290.84

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",
      296.69
    ],
    [
      "low_2",
      292.61
    ],
    [
      "low_3",
      290.84
    ]
  ],
  "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-02",
      "price": 296.69,
      "kind": "low",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-04",
      "confirmation_time": "2026-09-04T20:00:00Z",
      "available_at": "2026-09-24T12:02:37.618399Z",
      "version": "1"
    },
    {
      "session": "2026-09-10",
      "price": 292.61,
      "kind": "low",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-14",
      "confirmation_time": "2026-09-14T20:00:00Z",
      "available_at": "2026-09-24T12:02:37.618399Z",
      "version": "1"
    },
    {
      "session": "2026-09-15",
      "price": 290.84,
      "kind": "low",
      "left": 2,
      "right": 2,
      "confirmation_session": "2026-09-17",
      "confirmation_time": "2026-09-17T20:00:00Z",
      "available_at": "2026-09-24T12:02:37.618399Z",
      "version": "1"
    }
  ],
  "sessions": [],
  "available_at": "2026-09-24T12:02:37.618399Z"
}
full ma alignmentMet
sma50
309.528
sma150
305.90173333333337
sma200
299.65505

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

Data status: complete

Exact versioned evidence
{
  "name": "full_ma_alignment",
  "category": "supporting",
  "observed": [
    [
      "sma50",
      309.528
    ],
    [
      "sma150",
      305.90173333333337
    ],
    [
      "sma200",
      299.65505
    ]
  ],
  "operator": "sma50 > sma150 > sma200",
  "threshold": [],
  "passed": true,
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 309.528,
      "parameters": [
        [
          "required_observations",
          50
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 50,
      "observations_required": 50,
      "warmup": false,
      "input_start": "2026-07-24",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 305.90173333333337,
      "parameters": [
        [
          "required_observations",
          150
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 150,
      "observations_required": 150,
      "warmup": false,
      "input_start": "2026-03-02",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": 299.65505,
      "parameters": [
        [
          "required_observations",
          200
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 200,
      "observations_required": 200,
      "warmup": false,
      "input_start": "2025-12-16",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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.06713162974408526

Comparison: > · min: 0 · Unit: fraction

Data status: complete

Exact versioned evidence
{
  "name": "rs20_spy_positive",
  "category": "supporting",
  "observed": [
    [
      "SPY",
      -0.06713162974408526
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": -0.06713162974408526,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "SPY"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-03",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
rs20 qqq positiveNot met
QQQ
-0.11616058193634415

Comparison: > · min: 0 · Unit: fraction

Data status: complete

Exact versioned evidence
{
  "name": "rs20_qqq_positive",
  "category": "supporting",
  "observed": [
    [
      "QQQ",
      -0.11616058193634415
    ]
  ],
  "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": "PSA",
      "session": "2026-10-02",
      "as_of": "2026-10-04T13:23:10.133160Z",
      "value": -0.11616058193634415,
      "parameters": [
        [
          "window",
          20
        ],
        [
          "benchmark",
          "QQQ"
        ]
      ],
      "data_status": "complete",
      "reason": null,
      "observations_used": 21,
      "observations_required": 21,
      "warmup": false,
      "input_start": "2026-09-03",
      "seed_session": null,
      "available_at": "2026-10-04T13:22:16.284881Z",
      "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-04T13:22:16.284881Z"
}
Structure policy and full stored result
{
  "rule_name": "PRE_BREAKOUT",
  "rule_version": "PRE_BREAKOUT_V1",
  "state": "NO_SETUP",
  "triggered": false,
  "symbol": "PSA",
  "session": "2026-10-02",
  "as_of": "2026-10-04T13:23:10.133160Z",
  "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": 301.67875000000004,
    "kind": "resistance",
    "first_session": "2026-09-14",
    "first_eligible_session": "2026-09-22",
    "available_at": "2026-09-24T12:02:37.618399Z",
    "pivots": [
      {
        "session": "2026-09-14",
        "price": 301.2975,
        "kind": "high",
        "left": 2,
        "right": 2,
        "confirmation_session": "2026-09-16",
        "confirmation_time": "2026-09-16T20:00:00Z",
        "available_at": "2026-09-24T12:02:37.618399Z",
        "version": "1"
      },
      {
        "session": "2026-09-18",
        "price": 302.06,
        "kind": "high",
        "left": 2,
        "right": 2,
        "confirmation_session": "2026-09-22",
        "confirmation_time": "2026-09-22T20:00:00Z",
        "available_at": "2026-09-24T12:02:37.618399Z",
        "version": "1"
      }
    ],
    "touches": 2,
    "tolerance": 0.005,
    "min_touches": 2,
    "lookback": 126,
    "weighting": "equal",
    "version": "1"
  },
  "hard_conditions": [
    {
      "name": "confirmed_resistance",
      "category": "hard",
      "observed": [
        [
          "resistance",
          301.67875000000004
        ]
      ],
      "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-09-14",
          "price": 301.2975,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-16",
          "confirmation_time": "2026-09-16T20:00:00Z",
          "available_at": "2026-09-24T12:02:37.618399Z",
          "version": "1"
        },
        {
          "session": "2026-09-18",
          "price": 302.06,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-22",
          "confirmation_time": "2026-09-22T20:00:00Z",
          "available_at": "2026-09-24T12:02:37.618399Z",
          "version": "1"
        }
      ],
      "sessions": [],
      "available_at": "2026-09-24T12:02:37.618399Z"
    },
    {
      "name": "distance_to_resistance",
      "category": "hard",
      "observed": [
        [
          "distance_pct",
          5.923105289981489
        ],
        [
          "resistance",
          301.67875000000004
        ],
        [
          "close",
          283.81
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 283.81,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-02",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    },
    {
      "name": "intermediate_trend",
      "category": "hard",
      "observed": [
        [
          "close",
          283.81
        ],
        [
          "sma50",
          309.528
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 283.81,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-02",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 309.528,
          "parameters": [
            [
              "required_observations",
              50
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 50,
          "observations_required": 50,
          "warmup": false,
          "input_start": "2026-07-24",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    },
    {
      "name": "long_term_trend",
      "category": "hard",
      "observed": [
        [
          "sma150",
          305.90173333333337
        ],
        [
          "sma200",
          299.65505
        ]
      ],
      "operator": ">=",
      "threshold": [
        [
          "right_operand",
          "sma200"
        ]
      ],
      "passed": true,
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 305.90173333333337,
          "parameters": [
            [
              "required_observations",
              150
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 150,
          "observations_required": 150,
          "warmup": false,
          "input_start": "2026-03-02",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 299.65505,
          "parameters": [
            [
              "required_observations",
              200
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 200,
          "warmup": false,
          "input_start": "2025-12-16",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    },
    {
      "name": "rsi_band",
      "category": "hard",
      "observed": [
        [
          "rsi14",
          32.36505272457504
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 32.36505272457504,
          "parameters": [
            [
              "required_observations",
              15
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 15,
          "warmup": false,
          "input_start": "2025-12-16",
          "seed_session": "2026-01-07",
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    },
    {
      "name": "extension_atr",
      "category": "hard",
      "observed": [
        [
          "extension_atr",
          -1.5109589247427493
        ],
        [
          "close",
          283.81
        ],
        [
          "ema20",
          292.50449881110666
        ],
        [
          "atr14",
          5.754291972289684
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 283.81,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-02",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 292.50449881110666,
          "parameters": [
            [
              "required_observations",
              20
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 20,
          "warmup": false,
          "input_start": "2025-12-16",
          "seed_session": "2026-01-14",
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 5.754291972289684,
          "parameters": [
            [
              "required_observations",
              14
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 14,
          "warmup": false,
          "input_start": "2025-12-16",
          "seed_session": "2026-01-06",
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    },
    {
      "name": "relative_strength_20",
      "category": "hard",
      "observed": [
        [
          "SPY",
          -0.06713162974408526
        ],
        [
          "QQQ",
          -0.11616058193634415
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": -0.06713162974408526,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "SPY"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-03",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": -0.11616058193634415,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "QQQ"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-03",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    },
    {
      "name": "resistance_quality",
      "category": "hard",
      "observed": [
        [
          "distinct_touches",
          2
        ]
      ],
      "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-09-14",
          "price": 301.2975,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-16",
          "confirmation_time": "2026-09-16T20:00:00Z",
          "available_at": "2026-09-24T12:02:37.618399Z",
          "version": "1"
        },
        {
          "session": "2026-09-18",
          "price": 302.06,
          "kind": "high",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-22",
          "confirmation_time": "2026-09-22T20:00:00Z",
          "available_at": "2026-09-24T12:02:37.618399Z",
          "version": "1"
        }
      ],
      "sessions": [],
      "available_at": "2026-09-24T12:02:37.618399Z"
    }
  ],
  "supporting_conditions": [
    {
      "name": "atr_compression",
      "category": "supporting",
      "observed": [
        [
          "current_atr_pct",
          0.02027515581653107
        ],
        [
          "median_previous_60_atr_pct",
          0.021570727531876284
        ],
        [
          "ratio",
          0.9399384321446427
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 5.754291972289684,
          "parameters": [
            [
              "required_observations",
              14
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 14,
          "warmup": false,
          "input_start": "2025-12-16",
          "seed_session": "2026-01-06",
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 283.81,
          "parameters": [],
          "data_status": "complete",
          "reason": null,
          "observations_used": 1,
          "observations_required": 1,
          "warmup": false,
          "input_start": "2026-10-02",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 0.021570727531876284,
          "parameters": [
            [
              "baseline_sessions",
              60
            ],
            [
              "current_excluded",
              "true"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 74,
          "warmup": false,
          "input_start": "2025-12-16",
          "seed_session": "2026-01-06",
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-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",
            "2026-10-01"
          ]
        ]
      ],
      "available_at": "2026-10-04T13:22:16.284881Z"
    },
    {
      "name": "volume_contraction",
      "category": "supporting",
      "observed": [
        [
          "recent_volume",
          919287.8396782
        ],
        [
          "baseline_volume",
          901699.4516804001
        ],
        [
          "ratio",
          1.0195058208863523
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 1.0195058208863523,
          "parameters": [
            [
              "recent_sessions",
              5
            ],
            [
              "baseline_sessions",
              20
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 25,
          "observations_required": 25,
          "warmup": false,
          "input_start": "2026-08-28",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-28",
            "2026-09-29",
            "2026-09-30",
            "2026-10-01",
            "2026-10-02"
          ]
        ],
        [
          "baseline",
          [
            "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"
          ]
        ]
      ],
      "available_at": "2026-10-04T13:22:16.284881Z"
    },
    {
      "name": "higher_lows",
      "category": "supporting",
      "observed": [
        [
          "low_1",
          296.69
        ],
        [
          "low_2",
          292.61
        ],
        [
          "low_3",
          290.84
        ]
      ],
      "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-02",
          "price": 296.69,
          "kind": "low",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-04",
          "confirmation_time": "2026-09-04T20:00:00Z",
          "available_at": "2026-09-24T12:02:37.618399Z",
          "version": "1"
        },
        {
          "session": "2026-09-10",
          "price": 292.61,
          "kind": "low",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-14",
          "confirmation_time": "2026-09-14T20:00:00Z",
          "available_at": "2026-09-24T12:02:37.618399Z",
          "version": "1"
        },
        {
          "session": "2026-09-15",
          "price": 290.84,
          "kind": "low",
          "left": 2,
          "right": 2,
          "confirmation_session": "2026-09-17",
          "confirmation_time": "2026-09-17T20:00:00Z",
          "available_at": "2026-09-24T12:02:37.618399Z",
          "version": "1"
        }
      ],
      "sessions": [],
      "available_at": "2026-09-24T12:02:37.618399Z"
    },
    {
      "name": "full_ma_alignment",
      "category": "supporting",
      "observed": [
        [
          "sma50",
          309.528
        ],
        [
          "sma150",
          305.90173333333337
        ],
        [
          "sma200",
          299.65505
        ]
      ],
      "operator": "sma50 > sma150 > sma200",
      "threshold": [],
      "passed": true,
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 309.528,
          "parameters": [
            [
              "required_observations",
              50
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 50,
          "observations_required": 50,
          "warmup": false,
          "input_start": "2026-07-24",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 305.90173333333337,
          "parameters": [
            [
              "required_observations",
              150
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 150,
          "observations_required": 150,
          "warmup": false,
          "input_start": "2026-03-02",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": 299.65505,
          "parameters": [
            [
              "required_observations",
              200
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 200,
          "observations_required": 200,
          "warmup": false,
          "input_start": "2025-12-16",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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.06713162974408526
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": -0.06713162974408526,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "SPY"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-03",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    },
    {
      "name": "rs20_qqq_positive",
      "category": "supporting",
      "observed": [
        [
          "QQQ",
          -0.11616058193634415
        ]
      ],
      "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": "PSA",
          "session": "2026-10-02",
          "as_of": "2026-10-04T13:23:10.133160Z",
          "value": -0.11616058193634415,
          "parameters": [
            [
              "window",
              20
            ],
            [
              "benchmark",
              "QQQ"
            ]
          ],
          "data_status": "complete",
          "reason": null,
          "observations_used": 21,
          "observations_required": 21,
          "warmup": false,
          "input_start": "2026-09-03",
          "seed_session": null,
          "available_at": "2026-10-04T13:22:16.284881Z",
          "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-04T13:22:16.284881Z"
    }
  ]
}