How it works
The method, published rather than described.
Every score on this platform is a weighted combination of things you can check. This page gives you the inputs, the exact weights, the formula for the contrarian component and the bands, so you can decide whether you agree with the method before you rely on a number it produced.
The pipeline
4 steps, and nothing hidden in any of them.
-
01
Gather
Research, positioning, rate expectations, releases and seasonal history, pulled continuously across the whole tracked universe.
-
02
Normalise
Each input is converted onto a common 0 to 100 scale, so a positioning extreme and an inflation surprise can be weighed against each other at all.
-
03
Weight
Components are combined on fixed, published weights. No component is allowed to dominate quietly, and none of them is discretionary.
-
04
Publish
The score, every component, and the written reasoning appear together. If you disagree with a component you can read it on its own.
Step 1
What actually goes in.
6 input families. Everything else in the terminal is a view onto one of them.
- Sell-side research
- 48 institutions in the roster, including ING, MUFG, UniCredit, Westpac, Danske Bank, Crédit Agricole CIB. Each report read and reduced to thesis, direction, conviction, price target and horizon.
- Positioning
- Institutional and retail positioning across 44 markets, each read against its own 52 week range so an extreme is measured against that market's own history.
- Central bank expectations
- Stance, policy rate, real rate and distance from neutral for 8 banks, plus the market implied path, which reprices as futures move rather than on meeting day.
- Economic releases
- Every print against consensus and previous with the surprise measured, across inflation, labour, growth, PMIs and consumer.
- Seasonality
- Historical tendency by month and week with the forward path, drawn from long-run history rather than a single year.
- Cross-asset news
- Headlines cross-checked across sources and tiered before they are trusted: confirmed where 2 or more wires agree, official from a primary source, developing where only 1 source has it.
Step 3
The weights, in full.
These are the numbers the engine runs on, not a simplified version of them. They are published so you can disagree with them, which is the only reason publishing them is worth anything.
Currencies and metals7 components
- Fundamentals22.5%
- Central bank18%
- Bank research18%
- Seasonality13.5%
- Retail sentiment10%
- COT level9%
- COT flow9%
Equity indices6 components
- COT level20%
- Earnings20%
- Bank research15%
- Seasonality15%
- Central bank15%
- Fundamentals15%
Indices carry a weighted earnings beat rate and no retail component. Without earnings the 3 US indices score almost identically, because what is left is the dollar's macro wearing an index's name.
The one that runs backwards
Retail sentiment is subtracted, not added.
A heavily one-sided retail book has historically been a poor guide to direction, so the crowd enters the score inverted. It carries 10% and it is the only component that can pull a score down while looking bullish on the surface.
This is the part most tools would keep quiet about, which is exactly why it is on the page.
The formula
score = 0.9 × base + 0.1 × (100 − crowd long %)
Worked example
- Engine base score62
- Retail long78%
- Contrarian value, 100 − 7822
- Published score58
A crowded long book takes 4 points off a score that would otherwise have read 62.
Reading the number
3 bands, and a wide neutral.
A score of 52 is not a signal and is not labelled as one. The neutral band is deliberately wide so that a marginal reading stays marginal.
The same scale is used on all 24 markets, so a 56 on gold means what a 56 on the euro means.
Cadence
When it recalculates.
Not on a fixed clock alone. The engine reruns when something happens that ought to change a score, and the shift log inside the terminal records every run and what triggered it.
On a release
A scheduled economic print lands and the affected markets rescore.
On new research
A report arrives, is extracted, and the bank research component updates.
Daily
A full pass, so nothing sits stale even on a quiet day.
Weekly
A deeper pass that picks up the positioning print and the weekly report.
Being straight about it
What this method cannot do.
Worth reading before you rely on any of it. A method page with no weaknesses in it is a sales page wearing a lab coat.
It is a starting point, not an answer
The score says what the inputs currently favour. It has no view on your timeframe, your risk, or the level you are entering at, and it cannot have one.
Inputs disagree, and the weights are a judgement
The weights are mine. They are published so you can disagree with them, which is the point of publishing them. A reader who thinks seasonality deserves less than 13.5% can read the components separately and form their own view.
Research is a lagging input
A desk publishes after it has formed a view, sometimes well after. Bank research tells you what the consensus is, which is useful, and not the same as telling you what happens next.
Positioning is weekly and reported late
The institutional print covers a Tuesday and publishes on a Friday. It is a picture of last week, and it is treated as one.
A crowded reading is not a timing signal
Positioning can stay extreme for months. The terminal flags where the crowd is, not when it turns.
No backtest is published
Because one would be misleading. The engine has been changed repeatedly since it started scoring, so any curve fitted over that history would be measuring versions of the model that no longer exist.
WatchTower never produces an entry, a stop or a position size, and nothing on this site is financial advice.
Questions
On the method.
How is the composite score calculated?
Each input is normalised onto a 0 to 100 scale and combined on fixed weights. Currencies and metals: fundamentals 22.5%, central bank 18%, bank research 18%, seasonality 13.5%, retail sentiment 10%, COT level 9% and COT flow 9%. Equity indices use a different set including a weighted earnings beat rate.
Why is retail sentiment subtracted rather than added?
Because a heavily one-sided retail book has historically been a poor guide to direction. The retail component enters as 100 minus the crowd's long percentage, so a market where 80% of retail is long contributes a low number, pulling the score down.
What do the score bands mean?
56 or above reads bullish, below 45 reads bearish, and 45 to 55 is neutral. The band is deliberately wide, because a score of 52 is not a signal and should not be labelled as one.
How often does the score change?
It reruns on economic releases, when new research is ingested, and on daily and weekly schedules. The score history and shift log in the terminal show every run and what triggered it.
Does WatchTower tell me what to trade?
No. It never produces an entry, a stop or a position size, and it is not financial advice. It describes what the data currently favours and shows the reasoning, and the decision stays yours.
Where does the data come from?
Sell-side research from the institutions listed, official positioning reports, central bank publications and rate futures, published economic releases, and long-run price history. Everything is traceable back to its source inside the terminal.
In short
WatchTower gathers sell-side research from 48 institutions, positioning across 44 markets, the market implied rate path for 8 central banks, economic releases against consensus, and seasonal history. Each input is normalised onto a common 0 to 100 scale and combined on published weights into one composite score per market. For currencies and metals the weights are fundamentals 22.5%, central bank 18%, bank research 18%, seasonality 13.5%, retail sentiment 10% read contrarian, COT level 9% and COT flow 9%. Equity indices use a different set that includes a weighted earnings beat rate. A score of 56 or above reads bullish, below 45 reads bearish, and the band between is neutral. The engine reruns on economic releases, on new research arriving, and on a daily and weekly schedule. It never produces an entry, a stop or a position size.