How MarketsLens actually works
Not the trading theory behind positioning (that's the Learn page) -- this is the honest mechanics of the product itself: where the data comes from, what's computed versus raw, what's actually been shown to predict anything, and what hasn't.
One data source, published weekly
Every number on this dashboard traces back to a single public source: the CFTC's Commitments of Traders report. It's a real US government filing -- futures exchanges report large-trader positions to the Commodity Futures Trading Commission, which compiles and releases them every Friday at 3:30pm Eastern, covering positions as they stood the prior Tuesday. Nothing here is scraped, estimated, or modeled from price -- it's the same regulatory filing institutions themselves report into.
Why this matters
A five-day-old snapshot sounds slow next to live price. It's also the only trustworthy way to see actual reported exposure instead of guessing at it from chart shapes.
Computed, not guessed
Campaign phases (Building / Reducing / Mature), extremity flags, the gauges on the dashboard -- all of it is deterministic arithmetic run against that raw weekly report, not a machine-learning model making a judgment call. The same input always produces the same output, and the rule for each metric is written in plain language somewhere in this app (mostly the Glossary). Nothing is a black box you have to trust blindly.
What the research found
This is the one section worth reading slowly. Of the positioning relationships tested so far, Managed Money campaigns entering the reducing phase is the only one that has produced a repeatable association with subsequent price behaviour, under our current test methodology. It's why the Campaign Screener leads with it and colors it differently from everything else.
Building, Mature, the extremity gauges, the campaign state explorer, the price swing map, the zone overlays -- all of it is real, live, and computed the same honest way, but it remains descriptive context, not a predictive claim. It tells you what's true about the current structure, not what price will do about it.
The gauges: "This week, at a glance"
A tour of the dashboard: four pieces that show up on almost every page, illustrated below with the same shapes you'll see live -- filled in with made-up numbers, not real ones.
Three semicircle gauges sit at the top of the Dashboard, each reading across your whole tracked book, not one market. The first counts how many tracked markets are sitting near a historical extreme (Core). The second breaks the book down by campaign phase -- how many are currently Building, Reducing, or Mature. The third is a needle, not a fill: it shows whether the book leans long or short on average, weighted by the size of each market's Non-Commercial position.
The price chart: candles, volume, and zones
Every market page has a real daily candlestick chart with volume bars underneath -- ordinary price data, not COT data. What's layered on top is unique to this app: shaded price zones, drawn where price previously showed genuine indecision (a small body, long wicks both ways) and then broke one direction. A zone stretches from where it formed to today, so you can see at a glance whether price is still inside it, or has moved away.
Below the chart, the Zone Detail panel (Core) shows whether each zone was COT-confirmed -- did the side that built it actually reduce their gross position by a real amount afterward -- and whether the news released around it leaned the same direction. Both are shown honestly, as real tested relationships with real hit rates, not "this zone will hold" promises.
Campaign phases: Building, Reducing, Mature
Every tracked market has a live campaign phase, computed from how Managed Money's net position has moved over consecutive weekly reports -- not from price. A campaign starts when a fresh directional position begins forming, matures once it's been mostly held for a while, and ends in a genuine close-out rather than a partial trim.
Markets: browse, track, compare
The Markets page lists every instrument this app covers, searchable and filterable by category. Tracking a market (the star icon) adds it to your Dashboard's summary and table -- everything else on the Dashboard is computed only across whatever you've tracked, so a tighter watchlist gives you a cleaner "at a glance" read than tracking everything.
Starred tiles are tracked -- illustrative layout, not real market codes.
Free, Core, and Team
Three tiers, not a maze of add-ons -- what you get is exactly what's listed, nothing gated silently.
- Dashboard with tracked markets
- Weekly positioning snapshot
- Campaign phase on every market
- Learn + Glossary reference
- Everything in Free
- Campaign Screener
- Compare markets side by side
- State Explorer
- Price Swing Map
- Alert rules
- Journal
- Zone map
- Everything in Core
- Up to 5 seats on one subscription
- Every seat gets full Core access
- Full CSV export on every market page
- One owner manages the team from Account
The one illustrative exception
The public landing page shows a set of pressure gauges styled to preview what a signed-in dashboard feels like. Real FRED/FOMC data wasn't dense enough across enough instruments to make all of them fully live without gaps, so they're deliberately marked "EXAMPLE" rather than presented as a live feed. That's the only place in this app where a number is illustrative rather than real -- and it says so, on the page, next to the number.
What MarketsLens will never do
- Buy/sell signals or price targets
- Backtested "win rate" claims
- Fabricated data dressed up as live
- Hiding what a metric actually measures
- Real regulatory data, plainly explained
- A validated signal, clearly marked as the only one
- Descriptive structure, honestly labeled as such
- Context before commitment, not hype
How Fed speech analysis works
MarketsLens checks official Federal Reserve speeches every weekday morning and scores only the language relevant to monetary policy -- labeled hawkish or dovish.
Fetch
The official Fed speech or transcript, as soon as it's published.
Filter
Keep only sentences discussing rates, inflation, employment, or monetary policy.
Score
Detect hawkish and dovish language, including negation ("will not raise").
Explain
Store the exact phrases responsible for the classification.
No black box. The phrases responsible for every classification remain inspectable.
Full method -- the two refinements, a real example, and the limits
Each phrase economists and financial journalists already treat as hawkish or dovish -- "raise interest rates", "still too high", "more work to do" on the hawkish side; "cut rates", "downside risks", "cooling" on the dovish side -- carries a weight, and the tallies are compared: a clear lean either way gets labeled, a speech that doesn't lean far enough gets labeled neutral, and a speech with no real monetary-policy content gets labeled not applicable rather than forced into a score.
Two refinements exist because they were tested against real speeches and found necessary, not added speculatively:
- Negation-aware. "The Fed will not raise rates" scores differently than "the Fed will raise rates" -- a phrase preceded by "not," "won't," or similar within the same sentence has its weight flipped and dampened, not just cancelled.
- Topic-scoped. A speech's monetary-policy stance sometimes sits in a single paragraph inside a much longer speech about a different topic, so only sentences that actually mention inflation, rates, employment, or monetary policy are scored at all.
A real example
Fed Chair Kevin Warsh's August 2026 Jackson Hole speech was formally about financial innovation -- but its closing passage said the Fed must be confident inflation is "moving to our objective, clearly and at sufficient speed," adding "otherwise, we have work to do." That passage alone was enough to score the speech hawkish, even though the rest of the speech never mentions rates at all.
Worth being direct about the limits: this is a heuristic, not a certainty. It can miss sarcasm, unusual phrasing, or context a careful human reader would catch -- the same way it would have missed a vote-count nuance like "9-3, with three dissents for a hike," which is FOMC meeting-statement language this detector doesn't attempt to handle (those are scored by hand instead, a separate and slower process).
