No black box, no discretionary calls, no AI in the loop. Every asset gets a rule-based Composite Macro Score from −100 to +100, built from five equally-weighted components. Here is exactly how it's calculated.
Click through each step below with a real, live example — the exact same five components explained in full detail further down the page.
The Composite Macro Score averages five independently calculated sub-scores, each normalized to its own −1…+1 range first so every one of them carries the same weight. Not every component applies to every asset — e.g. only the majors with a tracked futures contract get a COT reading — so a missing component is left out of the average entirely rather than counted as zero. Nothing is discretionary and no component outweighs another — the same rules run for every asset, every hour.
Interest rate differentials, inflation (CPI), GDP growth, real yields, risk sentiment (VIX), Dollar strength (DXY) and oil prices. Each asset uses its own fixed set of these inputs — EUR/USD weighs the ECB-vs-Fed rate gap, Eurozone-vs-US growth and inflation; Gold weighs real yields, DXY and VIX instead.
Rate and growth differentials are the traditional fundamental driver of medium-term currency and asset direction — this is the core macro layer everything else adjusts.
Each central bank's stated policy bias — hawkish or dovish — plus how many rate cuts are priced in for the year, tracked per currency across the Fed, ECB, BoE, BoJ, SNB, RBA, RBNZ and BoC.
Markets trade on where rates are heading, not just where they sit today. A central bank signalling future cuts moves a currency before the cut itself happens.
CFTC Commitment of Traders data — how Retail (non-reportable) traders are positioned in futures on that asset, read contrarian against its own 3-year range: the more extreme their net-long positioning, the more bearish the score; the more extreme their net-short, the more bullish.
Retail positioning is the classic contrarian indicator — when non-professional traders crowd into one side of a market, that side has historically been closer to exhausted than just getting started.
Yesterday's bias direction, scaled up the longer that direction has held: 1 day → half weight, 2-3 consecutive days → 70% weight, 4+ consecutive days → full weight.
An established trend deserves more weight than a single noisy reading, without letting one new signal dominate the score on its own.
A historically tested seasonal bias for the coming month — but only if a walk-forward backtest (using only data available before each tested year, no lookahead) shows a real, repeatable edge for that specific asset and month.
Most 'seasonality' claims in trading are unproven pattern-matching. This component contributes nothing unless there is a demonstrated edge above a 50% historical hit rate — no edge, no contribution.
The five component scores are added together and clamped to a −100…+100 range. The sign shows direction — positive is bullish, negative is bearish — and the magnitude shows how strongly the components agree.
Once the absolute score reaches 40 or higher, MacroDirection flags the asset with a High Conviction (HC)badge — LONG if the score is positive, SHORT if it's negative. This threshold means Macro, Forward Guidance, COT positioning, Trend and Seasonality are mostly pulling in the same direction at once, rather than one strong component carrying the whole score on its own.
The magnitude of the score, converted to a percentage, is shown on the dashboard as Signal Agreement— deliberately not “Confidence”. Signal Agreement measures how strongly the five score components (Macro, Central Banks, COT, Trend, Seasonality) point the same direction — not a probability of profit or a win rate.
Rule-based scoring. AI-free signals. Transparent methodology. There is no language model anywhere in the scoring pipeline — not to set the score, not to pick the bias, and not even to write a summary around it.
The scoring engine runs the fixed formulas above on live macro, central bank, COT, trend and seasonality data and produces the final Score, the Bias label, and the Signal Agreementpercentage — pure arithmetic.
The number, the bias, and the component breakdown go straight to the dashboard — unedited and unexplained by anything except the rules above. Same inputs, same score, every time, for every asset, every hour.
“No black box, no language model — the score is the whole story.”
Every asset on the dashboard shows its live Score, its component breakdown, and its HC status — updated hourly.