DEV Community

473185670
473185670

Posted on • Edited on

I Built a Macro Catalyst Trading Journal That Auto-Classifies ISM PMI Scenarios

⚠️ Correction (Aug 9, 2026) — please read first.

A comment below claimed the backtest showed GOLDILOCKS fired 3× (each preceding a >2% SPX weekly gain) and CONTRACTION correctly flagged risk-off 2 of 2 cases. That was wrong. Those numbers came from a simulator with hardcoded return assumptions, not real market data.

I subsequently ran a real event-study backtest (72 ISM PMI releases, 2019–2024, actual S&P 500 5-day forward returns via yfinance):

Scenario n 5-day avg return
GOLDILOCKS 22 +0.80%
CONTRACTION 33 +1.13%
SOFT_LANDING 5 -2.47%
MODERATE 8 +0.25%

GOLDILOCKS vs CONTRACTION spread −0.33%, p=0.643 (not significant). The classification does not reliably predict 5-day forward returns. Backtest code is open-source: real_backtest.py.

So what is this about? The tool is still useful as a macro organizer/journal — it structures messy prints into 4 scenarios and logs your reasoning. But it is not a validated alpha signal, and I should not have implied it was. Apologies. The bundle is now described honestly on Gumroad as an organizer toolkit, not an edge product.


The Problem

Every macro print — ISM, NFP, CPI, FOMC — I was manually reasoning about what it meant for my book. Three problems:

  1. Slow: By the time I'd thought through the implications, the move was done.
  2. Inconsistent: Same print on different days → different conclusion depending on my mood.
  3. Unlogged: Two weeks later I couldn't remember why I'd rotated into industrials.

The Solution

I built a scenario classifier that takes 3 inputs — ISM Headline, New Orders, Prices Paid — and outputs one of 4 scenarios:

Scenario Condition Bias
🟢 GOLDILOCKS Strong growth, no overheat RISK-ON
🟡 MODERATE Growth with cost pressure NEUTRAL
🟠 SOFT_LANDING Cooling but positive CAUTIOUS
🔴 CONTRACTION Below 50 / decelerating RISK-OFF

Each scenario maps to sector rotation calls, duration positioning, and crypto/risk-asset bias.

The July 2026 ISM Mfg PMI Test

  • Headline: 55.6 vs consensus 54.0 → beat by 1.6
  • New Orders: 54.2 → expansion accelerating
  • Employment: first expansion in 34 months
  • Prices Paid: 71.1 → cost pressure persists

Classifier output: GOLDILOCKS, 85% confidence.

Actions fired:

  • Rotate cyclicals > defensives (Industrials, Materials, Small Caps)
  • US10Y → test 4.80%+ → short duration
  • BTC risk-on, target $66k+
  • AI interconnect (CRDO) structural bid reinforced

The Code (Zero Dependencies)

import urllib.request, json

def classify_scenario(headline, new_orders, prices_paid):
    if headline >= 54 and new_orders >= 53 and prices_paid <= 72:
        return 'GOLDILOCKS', 'RISK-ON', 85
    elif headline >= 52 and prices_paid > 72:
        return 'MODERATE', 'NEUTRAL', 70
    elif headline >= 50:
        return 'SOFT_LANDING', 'CAUTIOUS', 60
    else:
        return 'CONTRACTION', 'RISK-OFF', 90

scenario, bias, conf = classify_scenario(55.6, 54.2, 71.1)
print(f'{scenario} | {bias} | {conf}% confidence')
Enter fullscreen mode Exit fullscreen mode

Try the full engine live in your browser (no signup): Backtest Simulator

The Packaging

I packaged it as four products:

1. Notion Trading Journal Template ($7)
Four databases with 13 pre-loaded entries and 4 scenario playbooks.

2. Macro Scenario Analysis API (pay-per-call)
The classification engine wrapped in FastAPI, deployed on Render, listed on RapidAPI.

3. Pine Script Indicator
Displays the scenario classification directly on TradingView charts.

4. Semi Decoupling Dashboard ($9.99)
An HTML dashboard tracking NVDA vs semi equipment/storage decoupling.

The Bundle

All four for $14.99: gumroad.com/l/txmuvz

Notion template standalone: gumroad.com/l/nztlu

Free preview: notion.site

Why This Works

  • Zero competition on Gumroad.
  • Zero maintenance (static template).
  • Category creator on TradingView.
  • Marketplace distribution via RapidAPI.


🎁 Free Cheat Sheet

Grab the free ISM PMI Macro Scenario Cheat Sheet — one page, 4 scenarios, live API demo, no signup:

👉 Get the free cheat sheet
If you found this useful, the bundle is $14.99. Questions? Ask in the comments.

Top comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.