How the Terminal reads a chart
Every number on the panel is derived by one deterministic model, documented here the way a professional terminal documents itself: each quantity defined, each formula in its canonical form. The browser engine is public by design, so the constants it executes — weights, windows, thresholds and decay factors — can be inspected there. What remains proprietary is the research history and the deeper indicator construction from which this descriptive browser model was derived.
01One payload, one model
The Terminal makes exactly one browser request per instrument and timeframe. Its payload contains two vendor-native series: closed chart bars and closed bars one timeframe higher. Everything on the panel — the verdict, the states, the probabilities and the risk frame — is recomputed in your browser by one deterministic engine. Nothing is fetched per panel: every module is computed from the same payload, keeping the chart and the panel internally consistent — and given the same closed bars and the same model version, the reading reproduces exactly, on any machine, at any hour.
Only closed bars enter the model. The bar still forming is shown as the live quote in the header, but it is excluded from every statistic: a probability estimated on a bar that can still change is not an estimate, it is a guess that updates against you.
02Location inside the band
The first question the model asks is where price sits relative to its own recent behaviour. A rolling basis is taken over the 20-bar window shown in the panel's model inputs, and the deviation of the close from that basis is standardised into a z-score:
The σ here is the ordinary 20-bar standard deviation — deliberately. It is the same quantity the ±1σ envelope on the chart makes visible, so the band and the z-score can never tell two different stories, and it means the band behaves the way a trader expects: after a violent bar the envelope widens, because the dispersion it measures genuinely did. Where outlier-resistance matters — deciding in step 05 whether drift is real — the model switches to a robust, median-based scale instead, so one wild bar cannot manufacture or erase a trend. A band break is simply |z| crossing a calibrated threshold.
03Pressure and trend
Two exponential moving averages — 21 and 55 bars, as shown on the chart legend — carry the trend question. Each is the standard recursion:
Alongside them runs the pulse: a 0–10 oscillator, smoothed with a 3-period Wilder average, that measures how much force the current move carries relative to the instrument's own recent norm. Trend answers which way the tape leans; pulse answers how hard it is leaning — and the model treats those as separate questions, because a drifting market and a driving market deserve different confidence even when they point the same way. How the pulse is built from the raw series is readable in the browser engine that computes it; the indicator suite behind it is not.
04The blended verdict
The headline market score blends four legs: band location (02), the EMA pressure balance and local trend (03), and the higher-timeframe bias read from the vendor's last closed native bar one rung up. It is not reconstructed from chart bars, so exchange-session boundaries remain intact. The blend is a weighted sum,
A score alone overstates itself, so it is disciplined by a confidence multiplier: C = |S| × agreement × regime, where agreement measures how far the internal and external legs point the same way and regime scores whether the tape is currently tradeable at all. A strong score in a dead tape therefore still reads as low confidence — by construction, not by editorial judgement. The six-check setup grade beneath the verdict summarises tactical alignment the same way; its pass conditions also ship in the browser engine and can be inspected there.
05Eighteen market states
Every closed bar is placed into one of eighteen states: three grades of bias × three grades of volatility regime × two grades of sentiment. Bias asks whether drift is real: mean log-return is standardised by a heavy-tail-resistant, median-based scale — here, unlike the band of step 02, a single violent bar must not be allowed to manufacture a trend. Volatility compares the current dispersion with the instrument's own long-run median — an instrument is only ever volatile relative to itself. Sentiment asks a subtler question: whether down-moves currently carry more volatility than up-moves,
The three questions are kept separate precisely because they disagree in the most informative moments. The boundaries that cut each axis into its grades are calibrated per the model. Like every constant the browser engine uses, they can be read in it — what stays ours is how they were arrived at.
06Conditional base rates
For every past bar that landed in the same state cell, the model already knows how the next five bars resolved — the horizon shown in the model inputs. P(up) is that historical frequency, treated with two corrections. Old regimes fade: each observation is weighted by an exponential decay, so last year's market votes less than last month's. And thin cells are shrunk toward the instrument's own unconditional base rate:
This is the classical Bayesian shrinkage form; the decay constant and κ are calibrated privately. The consequence to read off the panel: the edge — how far p̂ sits from p0 — carries the information, not the headline percentage. A 55% in a coin-flip instrument is a reading; a 55% in an instrument whose base rate is 54% is noise.
07Honest sample accounting
Five-bar outcomes measured on every bar overlap: consecutive observations share four of their five bars, and autocorrelation correlates them further. Counting them as independent would overstate the evidence several-fold, so every quality gate in the Terminal runs on the effective sample size instead:
This is why a cell showing hundreds of raw observations can still be flagged thin, and why Not eligible is the normal reading on the sizing module. The Terminal would rather tell you it does not know than dress a thin sample as a statistic.
08Risk frame and the Kelly estimate
Every reading ends with the price at which it would be wrong. Invalidation is placed a Stop-setting multiple of ATR(14) beyond the current bar's extreme (1.25× by default), and the target at the Target setting's multiple of that distance (2R by default) — a risk geometry that exists to make the read falsifiable, not to tell you what to do. When, and only when, a state passes the gates of step 07 — adequate effective sample, a 95% interval that excludes the base rate, and a minimum count of recorded wins and losses — the panel also shows a historical fixed-horizon half-Kelly estimate:
Kelly is halved because estimated probabilities are not true probabilities, and overbetting an estimate is ruin with better marketing. Two caveats are deliberate: the estimate is historical — learned from this state's own resolved 5-bar outcomes — and it is independent of the risk frame: changing your Stop or Target settings reshapes the frame's levels, not this statistic, because no simulation of your stops against the price path is performed. And a third, which the arithmetic forces: the average loss is normalised to one risk unit, so f* is a fraction of that unit. It is not a capital exposure fraction, a position size or a safe risk limit — and a real loss can run past the historical average it was measured against. Context only, never a sizing instruction. Nothing on this panel is financial advice; it is a measurement system, and a measurement is only as honest as the caveats it keeps visible.