Market Structure (ICT)
Wyckoff Spring / Upthrust
Inside a defined trading range, a spring is a false breakdown below the range low that snaps back in, an upthrust is the mirror false breakout above the range high. Richard Wyckoff described both decades before ICT built its own vocabulary on top of the same idea.
Set the effort filter, watch the range get tested
Each session below builds a real trading range first, then tests one of its edges with an intrabar wick that closes back inside. Wyckoff's own logic was effort versus result: a test on unusually light simulated volume that still reverses hard is a more convincing spring or upthrust than the same wick on heavy volume, which more often means real supply or demand actually showed up. Drag the slider to set how low a test's volume percentile has to be before this tool will call it a genuine spring or upthrust rather than an ordinary test. Every logged test gets checked against what actually happened next: did price go on to break the opposite edge of the range.
Range forming… watch for the first edge test.
How it works
- The range comes first, the test comes second. This tool establishes a trading range from about 30 bars of contained price action before any edge gets tested. Without a real range, there's nothing for a spring or upthrust to be a false break of.
- A spring pierces the low, an upthrust pierces the high, both have to reclaim. The wick has to trade beyond the range edge intrabar, and the close has to come back inside the range. A wick that pierces the edge and closes beyond it isn't a spring or upthrust, it's a breakout, and this tool tracks those separately.
- Effort versus result is the whole Wyckoff logic. A test on low simulated volume, the market barely trying, that still reverses hard back into the range reads as weak selling or buying pressure behind the false break. A test on heavy volume is a more serious attempt and more likely a real move, even if it happens to reclaim anyway.
- The filter changes what counts, not what happened. Moving the slider doesn't change the underlying candles, it changes which already-logged tests this tool is willing to call a genuine spring or upthrust versus an ordinary failed test, and the follow-through rate recalculates from the same logged data either way.
- Follow-through means the opposite edge actually broke. A spring's real confirmation isn't the bounce, it's price later closing above the range high. An upthrust's real confirmation is price later closing below the range low. Anything short of that is logged as no follow-through, even if the test itself looked textbook.
Where this breaks
Simulated volume is not real order flow, and ranges get redrawn after the fact
The "effort" side of this tool is a randomly generated number scaled to look like volume, not a real print from a real exchange tape, so treat the effort filter as a teaching device for the Wyckoff logic, not a claim that this tool can see actual supply and demand. A retail price chart, real or simulated, can show that a low-volume test reversed and a high-volume test didn't, it cannot verify who was actually transacting or why, the same epistemic gap every price-only ICT concept on this site runs into. There's a second, more mechanical failure mode specific to this pattern: the range boundaries themselves are only as good as the lookback window used to define them, and a market that's been coiling for months can make a "spring" look like a clean low-volume reversal off a 30-bar range that a longer chart would show is actually the middle of a much bigger range, with real supply waiting well below it.