This article is a quantitative analysis piece published for research and educational purposes. Cascade Tensor's /simulate endpoint produces conditional trajectories of the form 'if shock X hit on this snapshot, here's how the linearised operator would propagate it.' The trajectory is descriptive of the operator under a counterfactual, not a forecast that the seed shock will occur. Nothing below should be read as guidance.
Suppose the current snapshot has Asset A sitting at a high CSI — high density at risk, high concentration on a single venue's high-leverage bucket, high one-sided skew toward longs. A reader wants to understand what would happen if Asset A took a 5% downside shock. The /simulate endpoint accepts (asset, shockPct, direction) and returns a wave-by-wave trajectory: a list of cascade waves, each carrying the asset, the triggered notional in USD, and the post-wave price.
Wave 0 — the seed. Asset A's price drops 5%. The operator queries the position state at that new price level. The high-leverage long bucket on the concentrated venue is now under water; the engine computes the triggered notional from positions whose liquidation prices were within 5% of the pre-shock mark. That triggered notional is the wave-0 output.
Wave 1 — propagation. The wave-0 triggered notional translates into market-impact pressure. Asset A's price moves further. Adjacent assets (cells linked through the Jacobian's coupling structure — assets sharing common leverage operators, common venues, or correlated price action that the operator was fitted on) take their own shock as a function of the propagation kernel. Each adjacent asset's at-risk density at the new price level is queried; its triggered notional is accumulated; new prices are computed. This is what the operator means by 'wave 1.'
Subsequent waves continue propagating until either the system stabilises (no further triggered notional in any cell) or the iteration cap is reached. The trajectory the endpoint returns is the wave-indexed list of (asset, triggered_notional, post-wave price) — the user reads down the list to see how the shock spread, which assets were touched, and which were spared.
The Jacobian endpoint complements /simulate by providing the eigendecomposition of the linearised operator itself — independent of any specific shock. The dominant eigenvalue is the amplification factor: how much the operator scales the eigenvector basket relative to its input. Amplifiers are the assets whose loadings on the dominant eigenvector are large and same-signed — the basket that would carry a generic shock furthest. Dampeners are the assets whose loadings are large and opposite-signed — they absorb the shock locally rather than propagating it. The propagation half-life-in-waves is read off the eigenvalue magnitudes — it's the number of waves it takes for the residual energy to halve under the linearised dynamics.
Vortex Legacy
Vortex Research Suite modules produce quantitative diagnostic assessments only. They do not constitute investment advice, price prediction, or buy/sell recommendations.
Reading both surfaces together: the /simulate output answers 'what does this specific shock do on this specific snapshot,' while the Jacobian decomposition answers 'where on the topology is the operator most sensitive, regardless of where a shock comes from.' Neither says a shock will happen. They say what would happen if one did, and where the topology is most primed.