Confluence Scoring¶
Overview¶
The confluence score quantifies setup quality on a 0--9 scale. It is computed only after all six setup conditions are met and no no-trade conditions are active. The score determines whether the setup meets the minimum threshold for a valid trade signal.
Scoring Table¶
| # | Factor | Weight | Description |
|---|---|---|---|
| 1 | Daily bias aligned with hunt | 2 | Core alignment: bias PDH + HUNT_LOW, or bias PDL + HUNT_HIGH. The foundational ICT premise that price sweeps one side to draw toward the other. |
| 2 | Weekly bias matches daily | 1 | Higher-timeframe confirmation. When the weekly bias agrees with the daily, the directional conviction is stronger. |
| 3 | Unspent OB in path | 2 | Entry structure exists. An unspent order block between price and the DOL target provides the institutional footprint for entry. |
| 4 | OB has associated FVG | 1 | Clean displacement created the OB. The presence of an FVG means the OB was formed by aggressive institutional activity, not a slow grind. |
| 5 | Active SMT divergence confirms | 2 | Inter-market structural confirmation. The paired instrument diverges at a key level, confirming that institutions are positioned directionally. |
| 6 | Macro window timing | 1 | Entry occurs during an ICT macro window (e.g., 09:50--10:10, 10:50--11:10 ET). Institutional activity concentrates in these windows. |
| Maximum | 9 |
Minimum for valid setup: 5
Factor Details¶
Factor 1: Daily Bias Aligned With Hunt (Weight: 2)¶
This is the core premise of the strategy. It scores when:
- Daily bias is bullish (DOL = PDH) and hunt is HUNT_LOW (low swept, draw upward), OR
- Daily bias is bearish (DOL = PDL) and hunt is HUNT_HIGH (high swept, draw downward).
This factor is effectively always scored when a setup reaches the confluence stage, because condition 3 (hunt aligns with bias) already requires this alignment. It carries weight 2 because it is the non-negotiable foundation.
Scores: 2 if aligned, 0 if not (setup would have been rejected at condition 3).
Factor 2: Weekly Bias Matches Daily (Weight: 1)¶
The weekly bias from Bias AI provides higher-timeframe context. When it agrees with the daily bias, the trade has multi-timeframe directional support.
- Scores 1:
bias.weekly == bias.daily(both bullish or both bearish). - Scores 0: Weekly is neutral or opposes daily.
A weekly-daily mismatch does not invalidate the setup, but it reduces conviction. The daily bias remains authoritative.
Factor 3: Unspent OB in Path (Weight: 2)¶
An unspent order block in the path between price and the DOL target is required by setup condition 4. Like factor 1, this is effectively always scored at the confluence stage.
It carries weight 2 because the OB provides the structural basis for entry -- without it, there is no defined risk and no institutional level to trade from.
Scores: 2 if at least one unspent OB exists in path, 0 if not (setup would have been rejected).
Factor 4: OB Has Associated FVG (Weight: 1)¶
Not all order blocks have an associated fair value gap. An OB can form from a strong candle without creating a three-candle gap. However, when an FVG is present:
- The OB was created by aggressive displacement (stronger institutional intent).
- The FVG provides refined entry levels (aggressive, safe tiers).
- The gap itself acts as a magnet, increasing the probability that price returns to the zone.
Scores 1: The target OB has FVG lines plotted by OB AI (fvg.high and fvg.low are non-null).
Scores 0: The target OB has no associated FVG.
Factor 5: Active SMT Divergence Confirms (Weight: 2)¶
SMT divergence is the strongest confirmation signal because it involves a separate instrument. When ES makes a higher high but NQ does not (bearish SMT), or ES makes a lower low but NQ does not (bullish SMT), it reveals institutional positioning that single-instrument analysis cannot detect.
Scores 2: An active SMT divergence exists where the divergence direction matches the setup direction.
- Bullish SMT active + long setup = scores 2.
- Bearish SMT active + short setup = scores 2.
Scores 0: No active SMT divergence, or the divergence opposes the setup direction.
An opposing divergence does not subtract points. It simply does not contribute. Opposing SMT is noted in the flags but does not trigger invalidation.
Factor 6: Macro Window Timing (Weight: 1)¶
ICT macro windows are specific time intervals during the trading day when institutional algorithms are most active. Entries during these windows have historically higher follow-through.
Common macro windows (NY session, ET):
| Window | Time |
|---|---|
| London close / NY open | 09:30 -- 10:00 |
| Mid-morning | 09:50 -- 10:10 |
| Late morning | 10:50 -- 11:10 |
| Lunch macro | 11:50 -- 12:10 |
| Afternoon | 13:10 -- 13:40 |
| PM session | 14:50 -- 15:10 |
Scores 1: Current time falls within any active macro window as reported by Session Hunt AI. Scores 0: Current time is outside all macro windows.
Score Computation¶
The score is computed as a simple weighted sum:
confluence_score = 0
confluence_factors = []
if bias_aligns_hunt:
confluence_score += 2
confluence_factors.append("bias_aligns_hunt")
if weekly_confirms:
confluence_score += 1
confluence_factors.append("weekly_confirms")
if ob_in_path:
confluence_score += 2
confluence_factors.append("ob_in_path")
if ob_has_fvg:
confluence_score += 1
confluence_factors.append("ob_has_fvg")
if smt_confirms:
confluence_score += 2
confluence_factors.append("smt_confirms")
if in_macro_window:
confluence_score += 1
confluence_factors.append("macro_window")
The confluence_factors array in StrategyFlags lists the string keys of all factors that scored, providing transparency into what contributed to the total.
Score Interpretation¶
| Score | Rating | Interpretation | Recommended Action |
|---|---|---|---|
| 0--4 | Below threshold | Insufficient confluence. One or more key factors missing. | No trade. |
| 5 | Minimum viable | Meets threshold but marginal. Likely missing SMT or weekly confirmation. | Trade with conservative entry tier. |
| 6 | Viable | Solid setup with one or two non-core factors absent. | Trade with safe entry tier. |
| 7 | Strong | Most factors present. Strong directional alignment with structural confirmation. | Trade with safe or aggressive entry tier. |
| 8 | Very strong | Only one minor factor missing (usually macro timing or FVG presence). | Trade with aggressive entry tier. |
| 9 | Ideal | All factors aligned. Rare. Full multi-timeframe, multi-instrument, timing-perfect setup. | Trade with aggressive entry tier, consider full position size. |
Score 5--6: Viable¶
At the minimum threshold, the setup has the core components (bias + hunt + OB) but lacks full confirmation. The trader should:
- Use the conservative or safe entry tier for better R:R.
- Size down from the recommended position size.
- Set alerts for invalidation conditions -- marginal setups are more fragile.
Score 7--8: Strong¶
These setups have structural and inter-market confirmation. The SMT divergence and/or weekly bias alignment provide additional conviction. The trader can:
- Use the safe or aggressive entry tier.
- Trade at the full recommended position size.
- Have confidence that the institutional footprint supports the trade.
Score 9: Ideal¶
All six factors are aligned. This is rare in live markets -- it requires the daily and weekly bias to agree, a clean hunt, an unspent OB with FVG, confirming SMT divergence, and entry during a macro window. When it occurs:
- Use the aggressive entry tier.
- Full position size.
- The highest-conviction signal the V1 system can produce.
Minimum Score Configuration¶
The minimum confluence score is configurable:
Lowering below 5 is not recommended -- it allows setups without SMT or weekly confirmation, which historically underperform. Raising to 6 or 7 reduces trade frequency but increases average quality.
StrategyFlags Output¶
{
"decision": {
"confluence_score": 7,
"confluence_factors": [
"bias_aligns_hunt",
"weekly_confirms",
"ob_in_path",
"smt_confirms"
]
}
}
The confluence_factors array is always present, even when setup_valid is false. If the score is below the minimum, no_trade_reasons includes "insufficient_confluence" and the factors array shows what did contribute -- useful for understanding how close the setup was to being valid.