---
title: "Get Advanced Confluence Matrix"
method: GET
path: "/api/signals/advanced/confluence-matrix"
tags: ["Trade Signals"]
---

# Get Advanced Confluence Matrix

`GET /api/signals/advanced/confluence-matrix`

## Request

- Base URL: `https://api.zerogex.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.zerogex.io/api/signals/advanced/confluence-matrix`
- Auth: HTTP bearer

N×N advanced-signal agreement matrix — pairwise directional confluence over a rolling window.

Shows how often each pair of Advanced Signals points the same direction over the
last N snapshots. Useful for spotting persistent divergences and unusual
breakdowns in normally-correlated signals. Matrix size follows
`_ADVANCED_SIGNAL_NAMES`.

**Logic** (`src/api/database.py`): Joins `signal_scores` and
`signal_component_scores` for the last `lookback` timestamps, filtering to
the Advanced Signals persisted by `AdvancedSignalEngine`. Signs are
bucketed with `neutral_epsilon = 0.02` (±0.02 counts as neutral).
Agreement = same non-zero sign; disagreement = opposite non-zero signs.

**Params:**
- `symbol` (default `SPY`).
- `lookback` — 10–2000, default 120.

**Signals (fixed order):** `vol_expansion`, `eod_pressure`, `squeeze_setup`,
`trap_detection`, `zero_dte_position_imbalance`, `gamma_vwap_confluence`,
`range_break_imminence`, `market_pressure`.

**Returns:**
```json
{
  "underlying": "SPY",
  "lookback": 120,
  "components": ["vol_expansion", "eod_pressure", "...4 more..."],
  "row_order": ["vol_expansion", "eod_pressure", "...4 more..."],
  "matrix": {
    "vol_expansion": {
      "eod_pressure": {
        "observations": 118,
        "active_observations": 92,
        "agreement_count": 74,
        "disagreement_count": 18,
        "neutral_count": 26,
        "agreement_ratio": 0.8043,
        "disagreement_ratio": 0.1957,
        "net_confluence": 0.6087
      }
    }
  },
  "sample_count": 118,
  "latest_timestamp": "2026-04-22T14:55:00Z"
}
```

- `agreement_ratio` — agree / active_observations; 4 decimals; `null` when active == 0.
- `disagreement_ratio` — disagree / active_observations; `null` when active == 0.
- `net_confluence` — (agree − disagree) / active_observations; [-1, +1].

**Trader interpretation:**
- `net_confluence > 0.5` — signals that routinely agree; unexpected divergence is a flag.
- `net_confluence < -0.3` — persistent disagreement pairs; useful early-warning divergences.

**Page design.** N×N heatmap sized to `_ADVANCED_SIGNAL_NAMES`. Color =
`net_confluence` (green +1 → red -1, white neutral). Cell tooltip:
agreement_ratio / disagreement_ratio / observations. Sort rows by average
agreement to surface consensus signals at top, outliers at bottom.

## Query parameters

- `symbol` string
- `lookback` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zerogex/apis/zerogex-api.md) · [All operations](https://skmtc.dev/zerogex/apis/zerogex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zerogex/apis/zerogex-api/revisions/753b26bf0592?raw)
