Level 10 · Lesson 9
Effort-Result
Divergence
The direct oscillator. Wyckoff’s oldest question — did effort produce result? — translated into a bipolar score with a statistical overlay that fires only on the rare bars that actually matter.
First — Why This Matters
The Direct Oscillator
Of all the sub-pane oscillators in the ATLAS suite, ERD is the most conceptually primitive. It asks the question Wyckoff asked a century ago: “did the effort applied this bar produce proportional result?” It reduces that question to its simplest possible expression: volume divided by average, minus price move divided by ATR. No regime inference. No state classification. No persistence contract. Just a signed score every bar, updated live.
What makes it not primitive is the layer on top: a z-score statistical overlay that marks only the bars where the effort/result relationship is genuinely unusual for the instrument’s own recent history. The histogram is noisy by design — every bar gets a color. The markers are signal, filtered to roughly the 5% of bars that statistically matter. These two readings operating at different timescales is the indicator’s entire personality.
Where MPR asks “what regime are we in?” and VSI asks “where is volatility going?”, ERD asks “is this specific bar behaving ordinarily or strangely?” That specific-bar question is the missing third leg of the oscillator family — and ERD is the only tool that answers it.
🔎 THE ERD AXIOM
Every bar has a cost (effort) and an outcome (result). ERD measures the difference per bar and the statistical rarity of that difference over 100 bars. The signal lives in the rare readings, not the common ones.
01 — Wyckoff's Question
Did Effort Produce Result?
Wyckoff’s framework, stated in modern terms, proposes a 2x2 matrix: effort can be high or low, and result can be high or low. The four combinations have specific meanings. High effort + low result = absorption (opposing side is soaking up the aggressor). Low effort + high result = vacuum (thin air, price ran unopposed). High effort + high result = clean participation. Low effort + low result = quiet. ERD lives in this matrix.
💡 Why This Matrix Is The Foundation
The quadrants aren’t an arbitrary categorization — they correspond to real, distinguishable market behaviors. Absorption patterns near support are reversal precursors. Vacuum moves in trends are continuation setups. Clean participation is baseline trending. Quiet is noise. A single signed number (ERD) collapses this 2D matrix onto its most informative diagonal: vacuum (positive) vs absorption (negative), with the low-effort/low-result quiet bars clustering near zero.
02 — Effort Component
Volume Relative to Its Own Average
The effort side: effortRatio = volume / SMA(volume, 20), then mapped to 0-100 via effortCap (default 3.0). A volume-ratio of 3x average = 100 effort. A ratio of 0.5x = ~17 effort. The normalization makes effort comparable across bars despite volume fluctuating wildly in absolute terms.
💡 Why Divide by the Rolling Average
Raw volume is scale-dependent and useless for comparison: AAPL has different absolute volume than BNB which differs from EURUSD. Dividing by SMA(volume, 20) gives you a ratio that is self-referential to each instrument. A reading of 2.5x means “2.5 times this instrument’s normal” regardless of what absolute volume means on that ticker. This is the same design philosophy as VSI’s percent-based output.
03 — Result Component
Price Move Relative to ATR
The result side: resultRatio = |close - close[1]| / ATR(14), mapped to 0-100 via resultCap (default 1.0). A bar that moves a full ATR in one bar = 100 result. A bar that moves half an ATR = 50. Same self-referential normalization as effort — each instrument’s ATR is the comparison baseline, making result comparable across assets.
💡 Why Absolute Value
Notice the formula uses |close - close[1]| — absolute value. Direction is deliberately discarded in the result calculation. ERD measures the MAGNITUDE of the move, not its sign. This is why ERD is not a directional signal: a 2% up-move and a 2% down-move produce identical result100 values. Direction is the job of other oscillators; ERD’s job is efficiency.
04 — The Bipolar Score
ERD = Result − Effort
The central equation: erd = result100 - effort100. Because both components are bounded 0-100, the output naturally lives in approximately -100 to +100. Positive means result beats effort (vacuum). Negative means effort beats result (absorption). Zero means balanced. The bipolar form is the simplest possible encoding of the Wyckoff distinction.
💡 Subtraction Not Division
An alternative formulation would be result / effort as a ratio. The ATLAS choice to use subtraction is deliberate: ratios behave badly near zero (tiny effort produces huge ratios; tiny result produces tiny ratios). Subtraction stays well-bounded regardless. And the subtraction form is directly interpretable on a symmetric bipolar scale — no need to take log ratios or apply transformations.
05 — Reading the Sign
Vacuum vs Absorption in Practice
Concrete examples of each sign. VACUUM (+ERD): price breaking out on steadily declining volume. The market is moving but few participants are engaged. These moves can be fragile (no sponsorship) or meaningful (offers just don’t exist). Context decides. ABSORPTION (-ERD): price oscillating in a tight range while volume spikes. Aggressors are trying to move price but someone is taking the other side. Often precedes reversals when the absorption completes.
💡 Neither Sign Is Automatically Bullish or Bearish
A critical point worth stating twice: ERD signs describe efficiency, not direction. You can have positive ERD on a down move (thin-volume selloff), and negative ERD on an up move (heavy-volume stall at resistance). The sign tells you whether the effort produced proportional movement; the DIRECTION of that movement is a separate question, answered by other tools.
06 — Statistical Layer
The Z-Score Overlay
On top of the raw ERD output sits a z-score calculation: zScore = (erd - SMA(erd, 100)) / stdev(erd, 100). This tells you how many standard deviations the current bar is from the 100-bar average — for this specific instrument. A z-score of +1 is a mild excursion. +2 is in the 2.5% tail. +3 is the 0.15% tail. The ±2 threshold (default) is where event markers fire.
💡 Why 100 Bars
The lookback of 100 bars is calibrated to span about a week of 1H data, or roughly 5 months of daily data. It’s long enough to build a statistically meaningful distribution but short enough that changing market regimes don’t permanently skew the baseline. You can tune it — shorter (50) for faster adaptation to regime shifts, longer (200) for more statistical stability.
07 — Event Markers
Circles Are The Signal
The histogram shows every bar’s raw ERD value. The event markers (plotted as circles) fire only when the z-score crosses ±2. Statistically, this is about 5% of bars. Functionally, these are the moments ERD is actively telling you “something unusual is happening here.” Teal circles = vacuum event. Magenta circles = absorption event. Everything else is background context.
💡 The 5% Filter Is The Point
Most oscillators scream at you constantly — every bar has a signal. ERD deliberately filters to the statistically unusual. If you look at a chart and see no markers, that means the market has been behaving ordinarily for the last 100 bars. If you see a cluster of markers, something is fundamentally different about the current regime. The absence of markers is itself information.
08 — The Dual-Timescale Doctrine ⭐
Context Matters More Than Magnitude
This is the conceptual breakthrough ERD introduces to the ATLAS suite. Every indicator you’ve seen so far operates on a single timescale. A 20 EMA is one smoothing window. A 14 RSI is one lookback. MPR’s persistence contract is 3 bars. All single-timescale. ERD explicitly combines two different timescales at once: the histogram color is the instantaneous bar-by-bar reading; the event markers are the rolling 100-bar statistical overlay.
🏘 The Dual-Timescale Doctrine
The defining insight: the same raw ERD value carries entirely different information depending on the instrument’s own recent history. A reading of +30 on an instrument whose 100-bar mean is +40 is actually below normal for that instrument — z-score around -1.2, no marker fires, this is subpar for this name. That same +30 on an instrument whose 100-bar mean is -20 is a statistically striking departure — z-score around +2.6, vacuum marker fires, this is remarkable. The histogram gives you The Moment. The z-score gives you The Context. Both are reading the same number. They disagree because they’re answering different questions.
Three portable applications:
- 1. Volume analysis becomes context-aware. Absolute volume values are uninformative — 500K shares is nothing on AAPL and an earthquake on a microcap. Volume z-scores are everything. ERD encodes this for you automatically via the ±2σ event filter. You never again need to ask “is this volume unusual?” — the marker answers it.
- 2. Risk management scales with statistical rarity. When z-score spikes to ±2+, you’re by definition in the tails of the distribution. The safest response: reduce position size until the anomaly is explained. Unusual readings mean your normal strategy’s assumptions might not hold. Dampen conviction when the chart is behaving in statistically unusual ways.
- 3. Alpha hunting focuses on the 5%. By mathematical definition, |z| ≥ 2 bars are approximately 5% of all bars. These 5% are where the informational asymmetry lives — where price discovery is happening, where something non-random is unfolding. Skip the other 95%. ERD is the indicator that pre-filters for you.
09 — Reading Patterns
Vacuum Breakouts and Absorption Stalls
Two archetypal patterns worth recognizing. Vacuum breakout: price grinds upward while volume tapers off — ERD climbs steadily positive, eventually a vacuum marker fires. The market is moving without sponsorship. These can be very clean trades (no one defending the level) or very fragile (no one confirming the move). Context and regime decide. Absorption stall: price chops sideways while volume is heavy — ERD plunges negative, absorption marker fires. The aggressors are being denied. Often a reversal precursor when it happens at an obvious level.
💡 Pattern Recognition Scales With Experience
Both patterns are easy to name but nuanced to trade. Vacuum breakouts near key levels with MPR in RELEASE and VSI in EXPANSION are among the highest-quality breakout setups in the suite. Absorption stalls at support with MPR in TRAP and price rejecting the level are among the highest-quality reversal setups. The indicator is objective; the interpretation comes from combining it with regime, level, and price action.
10 — ERD vs MPR
Both Measure Effort. Very Differently.
Both oscillators incorporate effort as a core input, but they use it in fundamentally different ways. ERD is direct and instantaneous — it reports the current bar’s effort-result relationship every bar, with no state inference. MPR is committed and regime-based — it uses the same effort-minus-result quantity (as its stress score) but embeds it inside a broader 4-state classifier with persistence filtering. When they agree, you’re seeing the same phenomenon confirmed at two timescales. When they disagree, ERD is showing you a moment that hasn’t sustained long enough to become a regime.
💡 When to Prefer Which
Use ERD when you want per-bar granularity and statistical event detection — especially for precise entry timing and divergence-hunting. Use MPR when you want committed regime readings that you can plan around over multiple bars. They’re complementary, not redundant. The sweet spot is using MPR for regime and ERD for entry precision within that regime.
11 — The Full Oscillator Picture
ERD × MPR × VSI
All three sub-pane oscillators stacked give you the complete diagnostic layer. ERD = per-bar effort-result efficiency. MPR = committed directional pressure regime. VSI = volatility trajectory. They measure orthogonal properties, so their agreement or disagreement carries specific meaning. Full confluence (all pointing the same way) is rare; nuanced agreement (two out of three) is common; divergence among them (three different readings) is where deep-read opportunities live.
💡 Reading Confluence Like a Tape Reader
Strongest breakout environment: ERD marker fires (vacuum) + MPR in RELEASE + VSI in EXPANSION + price crossing a level. All three tools, different timescales, all aligned. Strongest reversal signature: ERD marker fires (absorption) + MPR in TRAP + VSI in TRANSITION + price rejecting a level. Again, all three tools providing independent confirmation via different mechanisms. This is the power of orthogonal oscillators: they can’t all be wrong simultaneously because they’re measuring different things.
12 — Tuning the Caps
effortCap and resultCap Per Asset Class
The two cap parameters control how the raw ratios map to the 0-100 scale. effortCap=3.0 means volume 3x average saturates effort100 at 100. resultCap=1.0 means price moving a full ATR saturates result100 at 100. These defaults are calibrated for medium-to-high-volatility equities and crypto. On FX majors, ATR-multiple moves above 0.5-0.7 are rare; on high-volatility small caps, volume spikes of 5-10x are common. Retune per asset class to restore dynamic range.
💡 The Cap Balance Rule
The goal is to see ERD occasionally reach ±60 but rarely ±100. If your histogram is pinned at ±100 most of the time, caps are too tight. If it barely exceeds ±20, caps are too loose. For FX majors: effortCap ≈ 2.0, resultCap ≈ 0.7. For high-vol small caps: effortCap ≈ 5.0, resultCap ≈ 1.5. For standard equities/crypto: defaults work. Critically: DON’T set effort and result caps asymmetrically relative to each instrument’s behavior — you’ll introduce bias in the resulting ERD sign distribution.
13 — Common Mistakes
Four Ways Traders Misuse ERD
Each mistake stems from treating ERD as something it isn’t — a direction signal, a trading trigger, a cross-instrument comparable, or a one-size-fits-all tool.
Reading ERD as a directional signal
ERD is a bar-QUALITY metric, not a direction metric. Positive = efficient move (vacuum), negative = inefficient move (absorption) — but both can occur in either direction. A thin-volume DOWN move is also positive ERD. A heavy-volume UP stall is also negative ERD. Direction comes from MPR, MSI, or price action. Don’t mistake ERD’s sign for bullish/bearish.
Trading every colored bar
The histogram colors every bar teal or magenta. Most bars are noise. The SIGNAL is the circle markers (z-score ≥ ±2) — about 5% of bars by statistical definition. Trading on raw histogram color is drinking from a firehose of non-events. Filter to the markers.
Comparing raw ERD values across instruments
ERD of +30 on AAPL is noise. ERD of +30 on a thinly-traded small cap might be a 2.5σ event. Raw values are not cross-instrument comparable because each name has its own volume/volatility distribution. The z-score layer exists to normalize — USE IT. This is the whole point of the Dual-Timescale Doctrine.
Expecting ERD to work with default caps on every asset
effortCap (3.0) and resultCap (1.0) are calibrated for medium-to-high-volatility equities/crypto. On FX majors, dynamic range compresses and the indicator goes mute. On very high-volatility small caps, values pin at ±100 constantly. Retune the caps per instrument class. The caps are tunable as inputs precisely because no single default fits every market.
14 — Cheat Sheet
ERD In One Page
Architecture
Sub-pane oscillator, bipolar continuous histogram + sparse event markers, no persistence filter (every bar is a reading).
Core Formula
erd = result100 - effort100. Effort = volume / SMA(volume, 20). Result = |close - close[1]| / ATR(14). Both mapped to 0–100 via caps.
Sign Convention
+ERD (teal) = result exceeded effort = VACUUM. −ERD (magenta) = effort exceeded result = ABSORPTION. Sign is about efficiency, not direction.
Statistical Layer
zScore over 100 bars. Markers fire when |z| ≥ 2.0. Approximately 5% of bars.
Dual-Timescale Doctrine (★)
Histogram = The Moment. Markers = The Context. Same value means different things depending on instrument history.
Cap Tuning
Defaults (3.0 / 1.0) for equities/crypto. FX majors: (2.0 / 0.7). High-vol small caps: (5.0 / 1.5).
Data Window Exports
Effort (0–100) · Result (0–100) · ERD score · Z-score · Absorption event · Vacuum event.
15 — Scenario Game
Reading ERD With Both Timescales
Five scenarios testing whether you read ERD through both lenses simultaneously — the raw histogram and the statistical marker context — or whether you’re still treating it as a single-timescale tool.
Round 1 of 5
Score: 0/5
Your ERD histogram reads +15. The z-score reads 0.1. What does this specifically mean?
16 — Knowledge Check
Final Quiz — 8 Questions
Question 1 of 8
The Effort component of ERD is calculated as:
Question 2 of 8
The Result component of ERD is calculated as:
Question 3 of 8
The ERD score is:
Question 4 of 8
POSITIVE ERD (teal) means:
Question 5 of 8
NEGATIVE ERD (magenta) means:
Question 6 of 8
Event markers (circles) fire when:
Question 7 of 8
The Dual-Timescale Doctrine states that:
Question 8 of 8
On FX majors, ERD often produces muted readings because: