Methodology
What we do
Macro Lens uses a three-layer architecture. A deterministic rotation engine computes a market regime score every morning from public price data. An AI synthesis layer — using state-of-the-art AI models (agentic AI) — translates that structured score into prose in a calibrated voice. A simple user experience — a daily brief, a "Should I Worry?" tool, an archive — delivers the result.
This separation is deliberate, and it is the single most important difference between Macro Lens and generic AI fintech products. The engine carries the analytical weight. The AI carries voice and context. The AI is structurally constrained from contradicting the engine. The math is reproducible by any reader from publicly available data.
The rotation engine — the analytical backbone
Every morning, before any AI is involved, the engine computes six market ratios from yfinance close prices:
| Ratio | Reads |
|---|---|
| SMH/SPY | Tech leadership |
| XLY/XLP | Consumer health |
| XLF/XLU | Rates + risk signal |
| IWM/SPY | Small-cap participation |
| HYG/TLT | Credit conditions |
| XLE/SPY | Inflation pressure |
For each ratio the engine computes a 21-day simple moving average (the "fast" line) and a 50-day simple moving average (the "slow" line). The classification rule for each ratio is mechanical:
- Bullish when the ratio is above its fast line and the fast line is above the slow line.
- Bearish when the ratio is below its fast line and the fast line is below the slow line.
- Neutral in any other state — typically transitions, where the data is genuinely ambiguous.
The 21- and 50-day periods are deliberate. They align with how institutional flows are framed and avoid the whipsaw of shorter periods. They are not optimized to a backtest, and they are not changed without a published methodology revision.
The aggregate regime is derived from the count of ratios in each state. Five or more bullish ratios → "bullish, high confidence." Four → "mixed-bullish, medium." Five or more bearish → "bearish, high." Four → "mixed-bearish, medium." Anything else → "transitional, low confidence." A reader who downloads the same ETF closes from any free source and reproduces the moving averages will arrive at the same regime call.
The framework is published, versioned, and dated. The current version is v1.0. The full specification — including edge-case handling, aggregation rules, reproducibility instructions, and version history — is published in full on the framework page. We treat the framework as serious analytical infrastructure, not as a marketing artifact.
The AI synthesis layer
The AI receives the regime score, the supporting ratio data, and a small market snapshot. It does not receive prompts that ask it to predict, opine, or invent. It receives prompts that ask it to translate the structured regime data into prose in the Macro Lens voice.
The system prompts for the daily brief and the "Should I Worry?" tool both contain the same load-bearing instruction: you must not contradict the regime engine. If the regime is bullish with high confidence, the AI is forbidden to manufacture alarm. If the regime is transitional, the AI is required to explain the conflict in the data rather than pick a side. The voice is anchored against three reference samples: Stratechery, Apricitas Economics, and Howard Marks memos. It is not anchored against CNBC, Reddit, or financial Twitter.
Five things every AI output must include
- An explicit confidence level — high, medium, or low — with the reasoning behind it.
- A historical base rate for any predictive claim.
- Invalidation conditions — what new evidence would change the view.
- Identified, verifiable sources — every figure traces to a public series.
- A standard publisher's disclaimer — Macro Lens is a publication, not an advisor.
What we don't do
- We don't auto-execute trades. The product has no brokerage integration.
- We don't recommend specific securities. We address "the market" and "investors" only.
- We don't personalize advice. There is no user-account "what should I do with my portfolio" tool.
- We don't generate content without human review. Briefs are drafted by AI and reviewed by a human before publication.
- We don't pretend to predict the future. We describe the present regime and the historical base rates that bound it.
- We don't allow the AI to override the engine. Ever.
The human-in-the-loop
Every brief is generated as a draft and reviewed by a human before it is sent. "Should I Worry?" responses cite the regime context that grounds them, and that grounding is computed deterministically and is verifiable. We do not "set and forget" the AI, and we do not consider responsible AI publication a posture — we consider it a process.
Data sources
- yfinance — daily ETF close prices (six rotation ratios + the index snapshot).
- FRED — Federal Reserve Economic Data series (CPI, unemployment, Fed funds rate). Optional; the engine works without it.
- Treasury.gov, SEC EDGAR, FOMC press releases — authoritative source documents referenced in briefs as warranted.
Macro Lens does not use proprietary data feeds, does not maintain advisory accounts, and has no order flow visibility. The methodology is reproducible from public data because it has to be.
What we mean by "AI for Good"
AI for Good, in the way Macro Lens uses the phrase, means the deliberate use of agentic AI to close a capability gap that was previously gated by wealth, in a way that materially improves the autonomy of ordinary people. The early warning system Bloomberg sells to hedge funds, rebuilt for the surgeon and the retired engineer, is the literal definition of the phrase as we use it. Press releases are not.
Methodology versioning
The framework is versioned. Current version is 1.0. Future revisions — new ratios, threshold changes, momentum overlays — will be published here with effective dates and rationale. This is how a serious publication treats analytical infrastructure.
Questions and feedback
Direct everything via the contact form. Reasoned criticism is welcome. We update the methodology when the criticism is right.