@v587d/capital-generation 2.6.5 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +92 -0
- package/LICENSE +1 -1
- package/README.md +83 -30
- package/THIRD_PARTY_NOTICES.md +51 -0
- package/capital-config/client.js +58 -2
- package/capital-config/client.src.cjs +482 -27
- package/capital-config/index.js +177 -4
- package/capital-config/package.json +1 -1
- package/capital-watchlist/client.js +48 -7
- package/capital-watchlist/client.src.cjs +383 -66
- package/capital-watchlist/holding-rules.js +64 -0
- package/capital-watchlist/index.js +117 -2
- package/capital-watchlist/package.json +2 -1
- package/chart-ui/package.json +1 -1
- package/lib/agents/selected-skills-provider.d.ts +26 -0
- package/lib/agents/selected-skills-provider.js +99 -0
- package/lib/index.d.ts +13 -0
- package/lib/index.js +35 -11
- package/lib/time/tools.d.ts +6 -0
- package/lib/time/tools.js +6 -1
- package/lib/watchlist/tools.d.ts +52 -0
- package/lib/watchlist/tools.js +146 -0
- package/lib/web-retriever/local-fetch.d.ts +1 -1
- package/lib/web-retriever/local-fetch.js +1 -1
- package/lib/web-retriever/wind-client.d.ts +1 -1
- package/lib/web-retriever/wind-client.js +1 -1
- package/package.json +13 -3
- package/preset/capital-generation/agent.patch.yml +7 -0
- package/preset/capital-generation/skills/capital-equity-research/SKILL.md +45 -0
- package/preset/capital-generation/skills/capital-event-impact/SKILL.md +29 -0
- package/preset/capital-generation/skills/capital-portfolio-review/SKILL.md +29 -0
- package/selected-skills/InvestSkill/ADDING-NEW-SKILLS.md +546 -0
- package/selected-skills/InvestSkill/CHANGELOG.md +373 -0
- package/selected-skills/InvestSkill/CI-CD-GUIDE.md +432 -0
- package/selected-skills/InvestSkill/CLAUDE.md +148 -0
- package/selected-skills/InvestSkill/CONTRIBUTING.md +291 -0
- package/selected-skills/InvestSkill/DEPLOYMENTS.md +321 -0
- package/selected-skills/InvestSkill/FAQ.md +509 -0
- package/selected-skills/InvestSkill/GEMINI.md +419 -0
- package/selected-skills/InvestSkill/LICENSE +21 -0
- package/selected-skills/InvestSkill/PLATFORM-COMPATIBILITY.md +529 -0
- package/selected-skills/InvestSkill/README-claude-code.md +435 -0
- package/selected-skills/InvestSkill/README-cursor.md +475 -0
- package/selected-skills/InvestSkill/README-gemini.md +532 -0
- package/selected-skills/InvestSkill/README-ollama.md +106 -0
- package/selected-skills/InvestSkill/README-zh-TW.md +461 -0
- package/selected-skills/InvestSkill/README.md +311 -0
- package/selected-skills/InvestSkill/RELEASE-QUICK-REFERENCE.md +230 -0
- package/selected-skills/InvestSkill/RELEASE_NOTES.md +121 -0
- package/selected-skills/InvestSkill/SECURITY.md +232 -0
- package/selected-skills/InvestSkill/TODO.md +28 -0
- package/selected-skills/InvestSkill/UPSTREAM.md +62 -0
- package/selected-skills/InvestSkill/install.sh +212 -0
- package/selected-skills/InvestSkill/package.json +64 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/README.md +119 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/SKILL.md +338 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/bear-case/SKILL.md +233 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/catalyst-calendar/SKILL.md +327 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/chart-master/SKILL.md +648 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/SKILL.md +478 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dcf-valuation/SKILL.md +109 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/SKILL.md +684 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-call-analysis/SKILL.md +456 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/SKILL.md +277 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/economics-analysis/SKILL.md +349 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/etf-analysis/SKILL.md +279 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/SKILL.md +288 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/SKILL.md +544 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/full-report/SKILL.md +301 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fundamental-analysis/SKILL.md +67 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/SKILL.md +336 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/SKILL.md +502 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/SKILL.md +548 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/SKILL.md +311 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/options-analysis/SKILL.md +495 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/portfolio-review/SKILL.md +465 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/position-ladder/SKILL.md +429 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/report-generator/SKILL.md +857 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/research-bundle/SKILL.md +94 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/result-validator/SKILL.md +174 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/risk-stress-test/SKILL.md +293 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/SKILL.md +426 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/short-interest/SKILL.md +397 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/SKILL.md +645 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-screener/SKILL.md +244 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/SKILL.md +640 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/SKILL.md +351 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/SKILL.md +654 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/SKILL.md +317 -0
- package/selected-skills/README.md +54 -0
- package/selected-skills/catalog.js +733 -0
- package/selected-skills/china-stock-research-skills/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
- package/selected-skills/china-stock-research-skills/.github/ISSUE_TEMPLATE/skill_request.md +28 -0
- package/selected-skills/china-stock-research-skills/.github/PULL_REQUEST_TEMPLATE.md +15 -0
- package/selected-skills/china-stock-research-skills/CHANGELOG.md +59 -0
- package/selected-skills/china-stock-research-skills/CONTRIBUTING.md +121 -0
- package/selected-skills/china-stock-research-skills/GITHUB_PUBLISHING.md +259 -0
- package/selected-skills/china-stock-research-skills/INSTALL.md +151 -0
- package/selected-skills/china-stock-research-skills/LICENSE +21 -0
- package/selected-skills/china-stock-research-skills/PUBLISH_CHECKLIST.md +165 -0
- package/selected-skills/china-stock-research-skills/README.en.md +209 -0
- package/selected-skills/china-stock-research-skills/README.md +209 -0
- package/selected-skills/china-stock-research-skills/RELEASE_ASSETS.md +222 -0
- package/selected-skills/china-stock-research-skills/ROADMAP.md +45 -0
- package/selected-skills/china-stock-research-skills/SKILLS.md +85 -0
- package/selected-skills/china-stock-research-skills/UPSTREAM.md +11 -0
- package/selected-skills/china-stock-research-skills/examples/full-report-flow.md +20 -0
- package/selected-skills/china-stock-research-skills/examples/module-select-cases.md +26 -0
- package/selected-skills/china-stock-research-skills/examples/quickstart-prompts.md +25 -0
- package/selected-skills/china-stock-research-skills/skills/business-decomposition-order-quality/SKILL.md +55 -0
- package/selected-skills/china-stock-research-skills/skills/business-decomposition-order-quality/references/idc-order-ledger-guide.md +34 -0
- package/selected-skills/china-stock-research-skills/skills/business-decomposition-order-quality/references/order-quality-checklist.md +16 -0
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/SKILL.md +75 -0
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/references/final-output-contract.md +62 -0
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/references/routing-matrix.md +34 -0
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/references/sector-overlay-escalation-rules.md +38 -0
- package/selected-skills/china-stock-research-skills/skills/financial-health/SKILL.md +54 -0
- package/selected-skills/china-stock-research-skills/skills/financial-health/references/idc-balance-sheet-stress-guide.md +31 -0
- package/selected-skills/china-stock-research-skills/skills/financial-health/references/red-flag-checklist.md +14 -0
- package/selected-skills/china-stock-research-skills/skills/industry-competition-moat/SKILL.md +54 -0
- package/selected-skills/china-stock-research-skills/skills/industry-competition-moat/references/idc-value-chain-and-peers.md +42 -0
- package/selected-skills/china-stock-research-skills/skills/industry-competition-moat/references/moat-grid.md +13 -0
- package/selected-skills/china-stock-research-skills/skills/risk-warning-catalysts/SKILL.md +54 -0
- package/selected-skills/china-stock-research-skills/skills/risk-warning-catalysts/references/idc-monitoring-indicators.md +33 -0
- package/selected-skills/china-stock-research-skills/skills/risk-warning-catalysts/references/monitoring-dashboard.md +25 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/analysis-pattern-selector.md +24 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/asset-heavy-ramp-overlay.md +28 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/business-model-transition-overlay.md +28 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/citation-standard.md +48 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/company-disclosure-map.md +37 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/consumer-channel-brand-overlay.md +29 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/cyclical-price-driven-overlay.md +29 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/export-manufacturing-supply-chain-overlay.md +29 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/financial-kpi-dictionary.md +43 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/idc-heavy-asset-transition-overlay.md +73 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/language-output-standard.md +36 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/project-order-business-overlay.md +28 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/regulated-healthcare-policy-overlay.md +29 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/research-output-template.md +50 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/sector-adaptation-checklist.md +42 -0
- package/selected-skills/china-stock-research-skills/skills/shared/references/source-registry.md +49 -0
- package/selected-skills/china-stock-research-skills/skills/shared/templates/catalyst-calendar.md +5 -0
- package/selected-skills/china-stock-research-skills/skills/shared/templates/company-fact-sheet.md +25 -0
- package/selected-skills/china-stock-research-skills/skills/shared/templates/evidence-table.md +5 -0
- package/selected-skills/china-stock-research-skills/skills/shared/templates/idc-project-ledger.md +5 -0
- package/selected-skills/china-stock-research-skills/skills/shared/templates/valuation-scenario-table.md +7 -0
- package/selected-skills/china-stock-research-skills/skills/strategy-business-transition/SKILL.md +55 -0
- package/selected-skills/china-stock-research-skills/skills/strategy-business-transition/references/idc-transition-markers.md +27 -0
- package/selected-skills/china-stock-research-skills/skills/strategy-business-transition/references/transition-scorecard.md +13 -0
- package/selected-skills/china-stock-research-skills/skills/valuation-investment-strategy/SKILL.md +55 -0
- package/selected-skills/china-stock-research-skills/skills/valuation-investment-strategy/references/idc-valuation-overlays.md +31 -0
- package/selected-skills/china-stock-research-skills/skills/valuation-investment-strategy/references/method-selection.md +14 -0
- package/selected-skills/investment-skills/.github/workflows/validate.yml +25 -0
- package/selected-skills/investment-skills/.tbd/config.yml +107 -0
- package/selected-skills/investment-skills/LICENSE +21 -0
- package/selected-skills/investment-skills/Makefile +29 -0
- package/selected-skills/investment-skills/README.md +253 -0
- package/selected-skills/investment-skills/UPSTREAM.md +12 -0
- package/selected-skills/investment-skills/docs/development.md +37 -0
- package/selected-skills/investment-skills/docs/roadmap.md +25 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/SKILL.md +192 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/agents/openai.yaml +4 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/00-source-key.md +82 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/01-decision-posture.md +242 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/02-business-economics.md +188 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/03-management-governance.md +213 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/04-financial-reality.md +192 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/05-valuation.md +166 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/06-capital-allocation.md +238 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/07-risk-monitoring.md +189 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/08-specialized-overlays.md +309 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/scripts/framework.py +470 -0
package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/SKILL.md
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: earnings-preview
|
|
3
|
+
description: The before-earnings skill — consensus vs. whisper, 8-quarter beat rate and post-print move distribution, options-implied vs. realized move, what the current price already assumes, the KPIs to watch, and a three-scenario grid (beat-and-raise / beat-and-lower / miss) with expected reaction and a position rule for each
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Earnings Preview — What Is Priced In Before the Print
|
|
7
|
+
|
|
8
|
+
## ⚠️ Data Verification — Do This Before Any Analysis
|
|
9
|
+
|
|
10
|
+
Before running any analysis, always retrieve the latest market data for the ticker:
|
|
11
|
+
|
|
12
|
+
1. **Fetch current price** — get the live price, 52-week range, and market cap through the host's own data path. In a host that splits roles, delegate the request with an exact brief (ticker, fields, as-of date) rather than searching from this step. Never assume a price from training data.
|
|
13
|
+
2. **Confirm the event and the expectations** — the **confirmed earnings date and time (BMO / AMC)** from the company's IR page (not a calendar estimate), the current **consensus revenue / EPS / guidance** with its as-of date, the **prior guidance range** management gave last quarter, and **current option prices** for the expiration that spans the print (at-the-money straddle, or implied volatility). Never carry consensus from memory — it moves in the final two weeks.
|
|
14
|
+
3. **State your data source** — fill in the `Data & Sources` header (next section) so the origin, as-of date, retrieval path, and confidence of every figure are explicit at the top of the output.
|
|
15
|
+
4. **Stop on missing data** — if a figure cannot be retrieved through the host's data path, name what is missing and stop; the analysis does not run on remembered values:
|
|
16
|
+
|
|
17
|
+
> ⚠️ **Data unavailable.** <list the figures this analysis could not retrieve>. Those fields are reported as missing and are not estimated — retrieval is a precondition, not a nicety.
|
|
18
|
+
|
|
19
|
+
Never substitute a remembered value for a retrieved one. Getting the number is the host data path's job — delegate it; asking the user to paste is the last resort only where the host has no retrieval path at all.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📋 Data & Sources Header — Open Every Output With It
|
|
24
|
+
|
|
25
|
+
The first thing in the output is this provenance block, filled in — never left as placeholders. It is the standard documented on the [Data & Accuracy](https://yennanliu.github.io/InvestSkill/data-and-accuracy.html) page and the first thing `result-validator` looks for:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Data & Sources
|
|
29
|
+
As of: <date the figures represent, e.g. 2026-06-30>
|
|
30
|
+
Source: <primary docs — SEC EDGAR 10-K/10-Q, company IR, FRED, exchange data …>
|
|
31
|
+
Retrieval: <delegated retrieval | web/tool retrieval | pasted by user>
|
|
32
|
+
Confidence: <HIGH | MEDIUM | LOW>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- Memory is not a retrieval path. A figure that was neither retrieved nor supplied by the user is reported as missing, never estimated — and never written into this block as if it had been retrieved.
|
|
36
|
+
- Mixed sources: list each with its own as-of date rather than blending them.
|
|
37
|
+
- Data the user pasted is reported as `pasted by user`; do not upgrade its confidence beyond what the user's own source supports.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Overview
|
|
42
|
+
|
|
43
|
+
The catalog already covers earnings *after* the fact: `earnings-call-analysis` reads the transcript, `financial-report-analyst` reads the 10-Q, `catalyst-calendar` puts the date on a list. None of them answers the question a holder actually has in the week before the print: **what does the market already expect, how has this stock treated good news before, and what am I going to do in each outcome — decided now, while I am calm?**
|
|
44
|
+
|
|
45
|
+
This skill is that pre-commitment. It produces four things no post-call skill can:
|
|
46
|
+
|
|
47
|
+
1. **The expectation stack** — published consensus, the buy-side "whisper" above it, and management's own prior guidance, so a "beat" can be judged against the number that actually matters.
|
|
48
|
+
2. **The stock's own history with beats** — eight quarters of beat/miss against the next-day move, which is where "beat and drop" patterns live.
|
|
49
|
+
3. **What the price already assumes** — the growth and margin the current quote requires, so the reader knows whether a beat is *news* or merely *confirmation*.
|
|
50
|
+
4. **A three-scenario grid with a rule attached to each cell** — so the reaction on print day is execution, not decision.
|
|
51
|
+
|
|
52
|
+
**What it is not.** It does not predict the print. Nobody knows the number; the skill's value is in knowing what *others* expect and what *you* will do. It is also not an options strategy tool — it reads the options market for its implied move and hands strategy selection to `options-analysis`.
|
|
53
|
+
|
|
54
|
+
Pairs with `earnings-call-analysis` (run it *after*, on the transcript), `options-analysis` (strategy for the implied move), `catalyst-calendar` (the date and the events around it), `thesis-tracker` (the print is a scheduled next-check — the KPIs here should be the KPIs there), and `position-ladder` (the position rules in the scenario grid should respect its share-count ceiling).
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 1. Inputs
|
|
59
|
+
|
|
60
|
+
| Input | Required | Default if unstated |
|
|
61
|
+
|-------|----------|---------------------|
|
|
62
|
+
| Ticker | ✅ | — |
|
|
63
|
+
| Confirmed earnings date and time (BMO / AMC) | ✅ | fetch from company IR; if only a calendar estimate exists, say so and mark Confidence MEDIUM at best |
|
|
64
|
+
| Current consensus: revenue, EPS, next-quarter / FY guidance | ✅ | fetch or ask; state the as-of date |
|
|
65
|
+
| Management's prior guidance range | ✅ | from the last press release / call |
|
|
66
|
+
| Current price, ATM straddle price or IV for the expiry spanning the print | ✅ | fetch or ask |
|
|
67
|
+
| Last 8 quarters: reported vs. consensus, next-day move | recommended | fetch or ask; fewer than 6 quarters → note the thin sample |
|
|
68
|
+
| Prior-quarter transcript or `earnings-call-analysis` output | optional | improves the KPI list and the "what management promised" line |
|
|
69
|
+
| Existing `thesis-tracker` file or `stock-eval` output | optional | supplies the KPIs and thresholds that should decide the reaction |
|
|
70
|
+
| Position: shares, cost basis, ceiling from `position-ladder` | optional | needed for the position rules; otherwise rules are stated generically |
|
|
71
|
+
|
|
72
|
+
**Whisper numbers are estimates, and are labeled as such.** The "whisper" is the buy-side expectation sitting above (rarely below) published consensus — the number the stock actually trades against. It is inferred from sell-side note revisions, the direction of estimate changes in the last 30 days, options skew, and sentiment sources; it is never a hard figure. Report it as a range with a source, or write `whisper: not estimable` rather than inventing one.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 2. Framework
|
|
77
|
+
|
|
78
|
+
### Phase 1 — The expectation stack
|
|
79
|
+
|
|
80
|
+
Build the table of numbers the print will be judged against, in the order the market judges them:
|
|
81
|
+
|
|
82
|
+
| Layer | Revenue | EPS | Next-Q guide | FY guide | Source · as of |
|
|
83
|
+
|-------|---------|-----|--------------|----------|----------------|
|
|
84
|
+
| Management's prior guidance (range and midpoint) | | | | | |
|
|
85
|
+
| Published consensus | | | | | |
|
|
86
|
+
| Consensus 30 / 90 days ago (direction of revisions) | | | | | |
|
|
87
|
+
| Whisper (estimate, range) | | | | | |
|
|
88
|
+
| **Gap: whisper − consensus** | | | | | |
|
|
89
|
+
|
|
90
|
+
Rules of thumb:
|
|
91
|
+
- A **rising consensus** into the print raises the bar: a beat against a number that has already been marked up is a smaller beat than it looks.
|
|
92
|
+
- **Whisper gap > ~2% of revenue or > ~5% of EPS** means a consensus-level beat is likely to be treated as a miss. Say so plainly.
|
|
93
|
+
- The **guide** is the number that moves the stock for most growth companies. If prior guidance exists, the market is asking "raise, hold, or cut?" — not "beat or miss?".
|
|
94
|
+
|
|
95
|
+
### Phase 2 — How this stock treats beats (8-quarter history)
|
|
96
|
+
|
|
97
|
+
| Quarter | Rev vs. consensus | EPS vs. consensus | Guide vs. consensus | Next-day move | Move vs. implied |
|
|
98
|
+
|---------|-------------------|-------------------|---------------------|---------------|------------------|
|
|
99
|
+
| Q-1 | +x.x% | +x.x% | raised / held / cut | ±x.x% | above / within / below |
|
|
100
|
+
| … | | | | | |
|
|
101
|
+
|
|
102
|
+
Then summarize:
|
|
103
|
+
- **Beat rate** (revenue and EPS separately) and the **average / median next-day move**, with the **largest gap-up and gap-down**.
|
|
104
|
+
- **The "beat and drop" count** — quarters in which both lines beat and the stock fell. Three or more in eight is a pattern: this stock is graded on the guide or on a KPI, not on the headline.
|
|
105
|
+
- **Realized vs. implied** — how often the actual move exceeded the options-implied move. This is the input for Phase 4.
|
|
106
|
+
|
|
107
|
+
Fewer than six quarters (recent IPO, spin-off) — say the sample is too thin for a base rate and lean on Phases 3 and 5 instead.
|
|
108
|
+
|
|
109
|
+
### Phase 3 — What is priced in
|
|
110
|
+
|
|
111
|
+
Borrow the reverse-DCF logic from `stock-valuation` in a lighter form:
|
|
112
|
+
|
|
113
|
+
1. Take the current price and a defensible forward multiple (the stock's own 3-year median, or the peer median from `competitor-analysis`).
|
|
114
|
+
2. Back out the **forward revenue / EPS the multiple requires** over the next 12 months.
|
|
115
|
+
3. Compare with consensus: is the price *above* what consensus supports (the market already assumes a beat-and-raise), *at* it, or *below* it (a plain beat is genuine news)?
|
|
116
|
+
4. State the **implied growth rate** the price needs, in one line: *"At $X and 32× forward, the price needs ~Y% EPS growth; consensus is Z%."*
|
|
117
|
+
|
|
118
|
+
Add the **positioning read** where data exists: short interest and days-to-cover (`short-interest`), recent insider and institutional flow (`insider-trading`, `institutional-ownership`), and the stock's move over the last 30 days relative to its sector. A stock up 20% into the print with rising estimates has already had its beat; a stock down 15% with a stable consensus has room for relief.
|
|
119
|
+
|
|
120
|
+
### Phase 4 — The implied move, and whether it is fairly priced
|
|
121
|
+
|
|
122
|
+
| Measure | Value | How |
|
|
123
|
+
|---------|-------|-----|
|
|
124
|
+
| Options-implied move (event only) | ±x.x% | ATM straddle price ÷ stock price for the **first expiry after the print**. If that expiry is more than one session past the print, strip the non-event days so the horizon matches the next-day realized move: event move² ≈ near-straddle move² − (normal daily move)² × extra sessions, where the normal daily move comes from a longer-dated expiry's IV (IV × √(1/252)). State the horizon used |
|
|
125
|
+
| Realized average move (8 quarters) | ±x.x% | from Phase 2 |
|
|
126
|
+
| Realized median move | ±x.x% | robust to one outlier quarter |
|
|
127
|
+
| Ratio: implied ÷ realized median | x.x | > 1.2 the market is paying up for the event; < 0.8 it is complacent |
|
|
128
|
+
|
|
129
|
+
Interpretation for a **stockholder** (not an options trader): the implied move is the market's estimate of the **size** of the reaction, in either direction — it says nothing about direction and is not a downside estimate. Model the miss-side downside separately in the scenario grid (the realized moves on past misses, the distance to the valuation floor from `stock-valuation`, the `bear-case` target). Then compare: if the *larger* of the implied move and the modelled miss-side downside exceeds the distance to the holder's stop or the bottom rung of the `position-ladder`, the position size is too large for the event — that is the finding, and it belongs in the grid's "miss" rule. Options strategy selection goes to `options-analysis`.
|
|
130
|
+
|
|
131
|
+
### Phase 5 — The KPIs that will decide the reaction
|
|
132
|
+
|
|
133
|
+
List 3–5 company-specific numbers the market will read past the headline for — segment growth (data-center, cloud, subscribers), gross margin, unit economics (ARPU, take rate, deliveries), backlog / RPO, free cash flow, and the **guidance range** itself. For each: the consensus or prior value, the threshold that would count as good or bad, and where it will appear (press release vs. call). Then name **the one number** that has driven the stock in the last four prints. If a `thesis-tracker` file exists, its KPIs and thresholds take precedence — the print is that file's scheduled check.
|
|
134
|
+
|
|
135
|
+
### Phase 6 — The scenario grid
|
|
136
|
+
|
|
137
|
+
Fill every cell before the print; leave nothing to be decided in the after-hours session.
|
|
138
|
+
|
|
139
|
+
| Scenario | Probability | Trigger | Expected reaction | Position rule (decided now) |
|
|
140
|
+
|----------|-------------|---------|-------------------|-----------------------------|
|
|
141
|
+
| **Beat & raise** | — | Revenue and EPS ≥ whisper, guide midpoint above consensus | + implied move or more; fades if the stock ran into the print | Hold; add only if a `position-ladder` rung fills *and* the ceiling is not reached; never chase the gap |
|
|
142
|
+
| **Beat & lower** | — | Headline beat, guide midpoint below consensus | Flat to − implied move; the most common "beat and drop" | Trim into any early strength if the guide cut touches the thesis's mechanism; otherwise hold and re-run `thesis-tracker --update` |
|
|
143
|
+
| **Miss** | — | Revenue or EPS below consensus, or guide cut with no offsetting KPI | − implied move or more; larger if positioning was long | Respect the pre-set stop or the `thesis-tracker` exit trigger; do not average down inside the first two sessions |
|
|
144
|
+
| **In line** (state if material) | — | All three within ±1% of consensus, guide held | Drift, then trades on the call's tone | No action; run `earnings-call-analysis` on the transcript |
|
|
145
|
+
|
|
146
|
+
Probabilities are the analyst's stated judgment, must sum to 100%, and must be justified by Phases 1–3 (a rising whisper lowers the "beat & raise" probability; a 15% drawdown into the print raises it). Where the user holds no position, the rules become entry rules: which scenario, at what price, would justify opening one — and which would not, regardless of price.
|
|
147
|
+
|
|
148
|
+
### Phase 7 — What not to do
|
|
149
|
+
|
|
150
|
+
State these every time; they are the errors this skill exists to prevent:
|
|
151
|
+
|
|
152
|
+
- **Do not add size into the print on conviction.** The print is a coin with a known payout distribution (Phase 4) and an unknown outcome; conviction does not change the distribution. Size for the miss case.
|
|
153
|
+
- **Do not hold undefined-risk short options through the event** (short straddles, strangles, naked puts). The implied move is an estimate; the realized move has exceeded it in a measurable share of quarters (Phase 2). `options-analysis` covers defined-risk alternatives.
|
|
154
|
+
- **Do not react to the headline EPS before the guide and the KPI in Phase 5 are out.** Most post-print reversals happen between the press release and the end of the call.
|
|
155
|
+
- **Do not treat a beat against a lowered bar as a beat.** Compare with the 90-day-ago consensus (Phase 1), not only with today's.
|
|
156
|
+
- **Do not confuse the stock's reaction with the quality of the quarter.** A drop on a good quarter is positioning; a rise on a poor one is relief. Log which one it was — `thesis-tracker` needs that distinction.
|
|
157
|
+
|
|
158
|
+
### Phase 8 — Earnings Setup Score (0–10)
|
|
159
|
+
|
|
160
|
+
The headline number. It measures **asymmetry for a holder** — how much good news is already in the price versus how the stock has treated good news — not whether the print will be good.
|
|
161
|
+
|
|
162
|
+
| Component | Weight | 10 looks like | 0 looks like |
|
|
163
|
+
|-----------|--------|---------------|--------------|
|
|
164
|
+
| Expectation bar (Phases 1, 3) | 35% | Consensus flat or falling into the print; price implies less growth than consensus; whisper gap ≈ 0 | Consensus marked up sharply; price needs a beat-and-raise; whisper well above consensus |
|
|
165
|
+
| Beat history vs. reaction (Phase 2) | 25% | High beat rate *and* positive median move on beats (the stock rewards good news) | "Beat and drop" in ≥ 3 of 8 quarters |
|
|
166
|
+
| Event pricing (Phase 4) | 20% | Implied move ≥ 1.2× realized median (downside is over-insured) | Implied move < 0.8× realized median (complacency) |
|
|
167
|
+
| Positioning (Phase 3) | 10% | Stock down and de-rated into the print; short interest elevated; no crowding | Up > 15% in 30 days with estimates rising; crowded long |
|
|
168
|
+
| Plan quality (Phases 5–6) | 10% | A specific KPI threshold and a rule in every cell | Generic KPIs; rules left to "see how it trades" |
|
|
169
|
+
|
|
170
|
+
**A high score is not "buy before earnings."** It means the setup is asymmetric in a holder's favour: the bar is low, the stock rewards beats, the downside is insured by the options market. A low score means the opposite — good news is largely priced and the stock has a habit of falling on beats — which for a holder argues for *smaller* size into the print, not for a short. Read the direction of the business from `stock-eval`; read the odds of the *event* from here.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 3. Output Format
|
|
175
|
+
|
|
176
|
+
1. **Data & Sources** header (above), including the confirmed date/time and the consensus as-of date
|
|
177
|
+
2. **Setup in three lines** — the bar (consensus vs. whisper vs. prior guide), what the price assumes, and how this stock has treated beats
|
|
178
|
+
3. **Expectation stack** table (Phase 1)
|
|
179
|
+
4. **8-quarter history** table and its three summary lines (Phase 2)
|
|
180
|
+
5. **What is priced in** — the implied-growth sentence and the positioning read (Phase 3)
|
|
181
|
+
6. **Implied vs. realized move** table and the position-size finding (Phase 4)
|
|
182
|
+
7. **KPIs to watch**, with the one number that decides the reaction (Phase 5)
|
|
183
|
+
8. **Scenario grid** with probabilities and position rules (Phase 6)
|
|
184
|
+
9. **What not to do** (Phase 7)
|
|
185
|
+
10. **Thesis Invalidation** and the **Investment Signal block** (below), with the Earnings Setup Score
|
|
186
|
+
11. **Hand-off line** — *"After the print: paste the release and transcript into `earnings-call-analysis`; then run `thesis-tracker --update`."*
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Example
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
User: earnings-preview NVDA — reports Aug 27 after the close. I hold 40 shares at $118;
|
|
194
|
+
ladder ceiling is 60. Consensus and the last 8 quarters are pasted below. [pasted]
|
|
195
|
+
|
|
196
|
+
The assistant opens with the Data & Sources header (IR page for the date, pasted
|
|
197
|
+
consensus dated Aug 20, live straddle), then the setup in three lines: consensus has
|
|
198
|
+
been revised up 6% in 90 days and the whisper sits ~3% above it, so a consensus-level
|
|
199
|
+
beat will read as a miss; at the current price and a 3-year median forward multiple the
|
|
200
|
+
stock needs ~35% forward EPS growth against a consensus of ~30%, so the price already
|
|
201
|
+
assumes a beat-and-raise; the stock beat both lines in 8 of 8 quarters but fell the next
|
|
202
|
+
day in 3 of them — every time the guide midpoint was below the whisper.
|
|
203
|
+
|
|
204
|
+
The implied move is ±7.8% against a realized median of ±6.1% (ratio 1.28 — the event is
|
|
205
|
+
over-insured). The KPI that decides the reaction is data-center revenue growth versus
|
|
206
|
+
the ~40% whisper, then the next-quarter guide midpoint; gross margin is the tiebreaker.
|
|
207
|
+
|
|
208
|
+
Scenario grid: beat & raise 45% (hold; no add — the ladder's next rung is $105, far
|
|
209
|
+
below), beat & lower 35% (trim 10 shares into strength only if the guide cut names
|
|
210
|
+
demand, not supply), miss 20% (the exit trigger is the thesis-tracker file's ≥40% DC
|
|
211
|
+
growth KPI, not a price). What not to do: no adding into the print at 40 shares with a
|
|
212
|
+
60 ceiling and an implied move that reaches $112 on the downside.
|
|
213
|
+
|
|
214
|
+
Earnings Setup Score 4.6 / 10 — NEUTRAL: the bar is high and largely priced, but the
|
|
215
|
+
stock has rewarded beats and the downside is over-insured. Signal block, then the
|
|
216
|
+
hand-off to earnings-call-analysis and thesis-tracker --update.
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Notes
|
|
222
|
+
|
|
223
|
+
- **Confirm the date from the company, not a calendar aggregator.** Estimated dates are wrong often enough to matter — an implied move measured on the wrong expiry is meaningless.
|
|
224
|
+
- **Consensus is a moving target.** Restate the as-of date next to every consensus figure; a number from three weeks ago is not the bar the stock will trade against.
|
|
225
|
+
- **Whisper is labeled an estimate every time it appears.** A range with a rationale beats a false-precision point.
|
|
226
|
+
- **The score is about the event, not the company.** A great business can have a poor setup (crowded, fully priced) and a mediocre one a good setup (washed out, low bar). Say which is which; do not blend them.
|
|
227
|
+
- **Position rules must respect `position-ladder`'s ceiling and `thesis-tracker`'s triggers** when those exist. This skill never raises a ceiling or overrides an exit trigger.
|
|
228
|
+
- **After the print, close the loop.** `earnings-call-analysis` on the transcript, then `thesis-tracker --update`, then record in its decision log which scenario occurred and whether the pre-set rule was followed. That log is what makes the next preview better.
|
|
229
|
+
|
|
230
|
+
## Thesis Invalidation
|
|
231
|
+
|
|
232
|
+
After delivering the analysis signal, specify what would reverse it:
|
|
233
|
+
|
|
234
|
+
**If signal is BULLISH (asymmetric setup for a holder) — the read breaks if:**
|
|
235
|
+
- Consensus or the whisper is revised up by more than ~3% (EPS) in the final week — the bar has moved and Phases 1 and 3 must be redone
|
|
236
|
+
- The stock rallies more than the implied move *before* the print (a pre-announcement, a peer's blowout, a sector re-rating) — the relief has been taken in advance
|
|
237
|
+
- A peer reports first and reveals the KPI in Phase 5 is deteriorating industry-wide
|
|
238
|
+
|
|
239
|
+
**If signal is BEARISH (good news fully priced, poor beat history) — the read breaks if:**
|
|
240
|
+
- The stock sells off into the print by more than the implied move on no company news — the bar has been reset lower
|
|
241
|
+
- Consensus is cut ahead of the print (the company or its peers guided down) — a beat against a lowered bar is not the same setup, and Phase 7's warning applies in reverse
|
|
242
|
+
- Short interest rises sharply into the event — positioning has flipped and the reaction distribution with it
|
|
243
|
+
|
|
244
|
+
**Re-run this analysis when:**
|
|
245
|
+
- [ ] The print itself — this analysis expires at the release; run `earnings-call-analysis` on the transcript and `thesis-tracker --update` on the numbers
|
|
246
|
+
- [ ] Consensus, the guide, or the confirmed date changes
|
|
247
|
+
- [ ] The stock moves more than half the implied move before the event
|
|
248
|
+
- [ ] A direct peer reports
|
|
249
|
+
- [ ] The options-implied move changes by more than 20% relative (repricing of the event)
|
|
250
|
+
|
|
251
|
+
## Standard Signal Output
|
|
252
|
+
|
|
253
|
+
This skill measures **the asymmetry of the earnings setup for a holder, not the direction of the business or the likely outcome of the print**, so state the mapping explicitly: `Signal: BULLISH` means the bar is low, the stock rewards beats, and the downside is over-insured — the setup favours holding through the event at the current size; `NEUTRAL` means the setup is balanced or mixed — hold at current size, no adding; `BEARISH` means good news is largely priced and the stock has a habit of falling on beats — for a holder this argues for a smaller position into the print, **not for a short**. `Action: BUY` here means "the setup supports holding, and adding only via a pre-planned `position-ladder` rung"; `Action: SELL` means "reduce size into the event", never "short the print." Read the direction of the stock from `stock-eval` or `bear-case`, not from this block.
|
|
254
|
+
|
|
255
|
+
All analysis concludes with this standardized block:
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
╔══════════════════════════════════════════════╗
|
|
259
|
+
║ INVESTMENT SIGNAL ║
|
|
260
|
+
╠══════════════════════════════════════════════╣
|
|
261
|
+
║ Signal: BULLISH / NEUTRAL / BEARISH ║
|
|
262
|
+
║ Confidence: HIGH / MEDIUM / LOW ║
|
|
263
|
+
║ Horizon: SHORT / MEDIUM / LONG-TERM ║
|
|
264
|
+
║ Score: X.X / 10 ║
|
|
265
|
+
╠══════════════════════════════════════════════╣
|
|
266
|
+
║ Action: BUY / HOLD / SELL ║
|
|
267
|
+
║ Conviction: STRONG / MODERATE / WEAK ║
|
|
268
|
+
╚══════════════════════════════════════════════╝
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Score Guide: 8.0–10.0 Strongly Bullish | 6.0–7.9 Moderately Bullish | 4.0–5.9 Neutral | 2.0–3.9 Moderately Bearish | 0.0–1.9 Strongly Bearish
|
|
272
|
+
Confidence: HIGH (strong data, clear signals) | MEDIUM (mixed signals) | LOW (limited data, conflicting signals)
|
|
273
|
+
Horizon: SHORT-TERM (1 week–3 months) | MEDIUM-TERM (3 months–1 year) | LONG-TERM (1+ years)
|
|
274
|
+
|
|
275
|
+
**Note:** The Score above is the Earnings Setup Score, mapped onto the standard scale for cross-skill comparability. It rates *how asymmetric the event is for a holder* — not how attractive the stock is and not the likelihood of a beat. Horizon is SHORT-TERM by construction: the analysis expires at the print. Confidence is capped at MEDIUM when the earnings date is unconfirmed, the whisper is not estimable, or fewer than six quarters of history exist.
|
|
276
|
+
|
|
277
|
+
**Disclaimer:** Educational analysis only. Not financial advice. Earnings outcomes are unknowable in advance; probabilities and scenario rules are a pre-commitment framework under stated assumptions, not a forecast or a trade instruction.
|
package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/economics-analysis/SKILL.md
ADDED
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: economics-analysis
|
|
3
|
+
description: Analyze US economic indicators and their impact on markets
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# US Economics Analysis
|
|
7
|
+
|
|
8
|
+
## ⚠️ Data Verification — Do This Before Any Analysis
|
|
9
|
+
|
|
10
|
+
Before running any analysis, retrieve the latest release of every indicator you use:
|
|
11
|
+
|
|
12
|
+
1. **Fetch current readings** — get the latest value and release date of each indicator (FRED, BLS, BEA, ISM, the Fed) through the host's own data path; delegate the request in a role-split host. Never assume a reading from training data; indicators are revised and re-released on a schedule.
|
|
13
|
+
2. **Confirm key figures** — the policy rate, the 2s10s spread, the latest CPI/PCE, payrolls and unemployment, and PMI, each with its release date.
|
|
14
|
+
3. **State your data source** — fill in the `Data & Sources` header (next section) so the origin, as-of date, retrieval path, and confidence of every figure are explicit at the top of the output.
|
|
15
|
+
4. **Stop on missing data** — if a figure cannot be retrieved through the host's data path, name what is missing and stop; the analysis does not run on remembered values:
|
|
16
|
+
|
|
17
|
+
> ⚠️ **Data unavailable.** <list the figures this analysis could not retrieve>. Those fields are reported as missing and are not estimated — retrieval is a precondition, not a nicety.
|
|
18
|
+
|
|
19
|
+
Never substitute a remembered value for a retrieved one. Getting the print is the host data path's job — delegate it; asking the user is the last resort only where the host has no retrieval path at all.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📋 Data & Sources Header — Open Every Output With It
|
|
24
|
+
|
|
25
|
+
The first thing in the output is this provenance block, filled in — never left as placeholders. It is the standard documented on the [Data & Accuracy](https://yennanliu.github.io/InvestSkill/data-and-accuracy.html) page and the first thing `result-validator` looks for:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Data & Sources
|
|
29
|
+
As of: <date the figures represent, e.g. 2026-06-30>
|
|
30
|
+
Source: <primary docs — SEC EDGAR 10-K/10-Q, company IR, FRED, exchange data …>
|
|
31
|
+
Retrieval: <delegated retrieval | web/tool retrieval | pasted by user>
|
|
32
|
+
Confidence: <HIGH | MEDIUM | LOW>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- Memory is not a retrieval path. A figure that was neither retrieved nor supplied by the user is reported as missing, never estimated — and never written into this block as if it had been retrieved.
|
|
36
|
+
- Mixed sources: list each with its own as-of date rather than blending them.
|
|
37
|
+
- Data the user pasted is reported as `pasted by user`; do not upgrade its confidence beyond what the user's own source supports.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
Analyze US economic conditions and their implications for investment decisions.
|
|
42
|
+
|
|
43
|
+
## Key Economic Indicators
|
|
44
|
+
|
|
45
|
+
1. **Growth Indicators**
|
|
46
|
+
- GDP growth rate and components
|
|
47
|
+
- Employment data (NFP, unemployment rate, jobless claims)
|
|
48
|
+
- Consumer spending and retail sales
|
|
49
|
+
- Manufacturing and services PMI
|
|
50
|
+
|
|
51
|
+
2. **Inflation Metrics**
|
|
52
|
+
- CPI (Consumer Price Index)
|
|
53
|
+
- PCE (Personal Consumption Expenditures)
|
|
54
|
+
- PPI (Producer Price Index)
|
|
55
|
+
- Wage growth trends
|
|
56
|
+
|
|
57
|
+
3. **Monetary Policy**
|
|
58
|
+
- Federal Reserve policy stance
|
|
59
|
+
- Interest rates (Fed Funds rate, Treasury yields)
|
|
60
|
+
- Money supply and bank lending
|
|
61
|
+
- Fed meeting minutes and forward guidance
|
|
62
|
+
|
|
63
|
+
4. **Market Sentiment**
|
|
64
|
+
- Consumer confidence indices
|
|
65
|
+
- Business sentiment surveys
|
|
66
|
+
- Credit spreads and risk indicators
|
|
67
|
+
- Market volatility (VIX)
|
|
68
|
+
|
|
69
|
+
5. **Fiscal Policy**
|
|
70
|
+
- Government spending and stimulus programs
|
|
71
|
+
- Tax policy changes
|
|
72
|
+
- Budget deficit and debt levels
|
|
73
|
+
|
|
74
|
+
## Analysis Framework
|
|
75
|
+
|
|
76
|
+
- Identify current economic cycle phase
|
|
77
|
+
- Assess policy implications for different sectors
|
|
78
|
+
- Evaluate recession/expansion risks
|
|
79
|
+
- Determine impact on equity, bond, and commodity markets
|
|
80
|
+
- Provide sector rotation recommendations
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Yield Curve Analysis
|
|
85
|
+
|
|
86
|
+
### Key Spreads to Monitor
|
|
87
|
+
|
|
88
|
+
| Spread | Definition | Current | 1-Year Avg | 10-Year Avg | Signal |
|
|
89
|
+
|---------|-------------------------------------|---------|------------|-------------|--------|
|
|
90
|
+
| 2s10s | 10yr Treasury minus 2yr Treasury | | | | |
|
|
91
|
+
| 3M10Y | 10yr Treasury minus 3-Month T-Bill | | | | |
|
|
92
|
+
| 5s30s | 30yr Treasury minus 5yr Treasury | | | | |
|
|
93
|
+
|
|
94
|
+
**3M10Y is the historically strongest recession predictor** (NY Fed model is based on this spread).
|
|
95
|
+
|
|
96
|
+
### Yield Curve Shapes
|
|
97
|
+
|
|
98
|
+
| Shape | Description | Economic Implication |
|
|
99
|
+
|-----------------|-------------------------------------------------|-------------------------------------------------------|
|
|
100
|
+
| Normal (Steep) | Long-term rates well above short-term rates | Healthy growth expectations, bank margins expanding |
|
|
101
|
+
| Flat | Short and long-term rates near parity | Late-cycle signal, growth slowing, Fed near peak |
|
|
102
|
+
| Inverted | Short-term rates above long-term rates | Recession warning — markets pricing in rate cuts ahead|
|
|
103
|
+
| Bear Steepening | Both ends rise, long end rises faster | Inflation concern, term premium expanding |
|
|
104
|
+
| Bull Steepening | Both ends fall, short end falls faster | Cutting cycle underway, growth relief expected |
|
|
105
|
+
|
|
106
|
+
### Inversion Duration and Recession Lead Time
|
|
107
|
+
|
|
108
|
+
Historical precedent for 3M10Y inversion:
|
|
109
|
+
|
|
110
|
+
| Inversion Duration | Historical Recession Lead Time |
|
|
111
|
+
|--------------------|-------------------------------|
|
|
112
|
+
| < 3 months | Unreliable signal |
|
|
113
|
+
| 3–6 months | 12–18 months typically |
|
|
114
|
+
| 6–12 months | 6–15 months typically |
|
|
115
|
+
| > 12 months | High confidence; within 12 months |
|
|
116
|
+
|
|
117
|
+
**Rule of thumb**: Yield curve uninversion (re-steepening after inversion) is often the more immediate warning — recession tends to arrive shortly after the curve re-steepens from inversion.
|
|
118
|
+
|
|
119
|
+
### Fed Rate Cycle Positioning
|
|
120
|
+
|
|
121
|
+
- **Hiking Cycle**: Fed raising rates — short end rises faster, curve flattens/inverts. Growth stocks under pressure.
|
|
122
|
+
- **Pause**: Fed on hold — curve stabilizes. Markets watch for pivot signals.
|
|
123
|
+
- **Cutting Cycle**: Fed reducing rates — short end falls faster, curve steepens. Risk-on environment, cyclicals and growth stocks benefit.
|
|
124
|
+
|
|
125
|
+
### Real Yields (TIPS) Analysis
|
|
126
|
+
|
|
127
|
+
- **Real Yield** = Nominal Treasury Yield − Breakeven Inflation Rate (derived from TIPS)
|
|
128
|
+
- **Rising real yields**: Tighten financial conditions. Negative for long-duration assets (growth stocks, gold, long bonds).
|
|
129
|
+
- **Falling real yields**: Easier financial conditions. Positive for growth stocks, gold, emerging markets, long bonds.
|
|
130
|
+
- **10-Year Real Yield thresholds**: Below 0% is historically accommodative; above 2% is meaningfully restrictive.
|
|
131
|
+
- **Breakeven inflation** (5-year, 5-year forward): Market's long-run inflation expectation. Persistently above 2.5% signals inflation concern.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Credit Market Indicators
|
|
136
|
+
|
|
137
|
+
### Investment Grade (IG) Credit Spreads (OAS — Option-Adjusted Spread)
|
|
138
|
+
|
|
139
|
+
| Spread Level | Condition | Interpretation |
|
|
140
|
+
|----------------|------------|----------------------------------------------------|
|
|
141
|
+
| < 100 bps | Normal | Risk appetite healthy, credit markets functioning |
|
|
142
|
+
| 100–150 bps | Caution | Stress emerging, watch for tightening conditions |
|
|
143
|
+
| > 150 bps | Stress | Credit markets seizing, risk-off, watch equities |
|
|
144
|
+
|
|
145
|
+
### High Yield (HY) Credit Spreads
|
|
146
|
+
|
|
147
|
+
| Spread Level | Condition | Interpretation |
|
|
148
|
+
|----------------|------------|------------------------------------------------------------|
|
|
149
|
+
| < 350 bps | Normal | Benign default environment, strong risk appetite |
|
|
150
|
+
| 350–500 bps | Caution | Elevated risk aversion, avoid lower-quality credits |
|
|
151
|
+
| > 500 bps | Distress | Recession/financial stress scenario, significant HY risk |
|
|
152
|
+
| > 800 bps | Crisis | Systemic credit event risk, similar to 2008/2020 episodes |
|
|
153
|
+
|
|
154
|
+
**Rule**: HY spreads lead equity markets by 2–4 weeks on average. Widening HY spreads while equities hold = warning signal.
|
|
155
|
+
|
|
156
|
+
### TED Spread
|
|
157
|
+
|
|
158
|
+
- **Definition**: 3-Month LIBOR (now SOFR) minus 3-Month T-Bill yield
|
|
159
|
+
- Measures interbank lending stress and counterparty risk appetite in the banking system
|
|
160
|
+
- **Normal**: < 50 bps
|
|
161
|
+
- **Elevated stress**: 50–100 bps
|
|
162
|
+
- **Crisis signal**: > 100 bps (peaked at ~450 bps during 2008 GFC)
|
|
163
|
+
|
|
164
|
+
### MOVE Index (Bond Market Volatility)
|
|
165
|
+
|
|
166
|
+
- Bond market equivalent of VIX — measures implied volatility in US Treasury options
|
|
167
|
+
- **Normal**: 80–100
|
|
168
|
+
- **Elevated**: 100–130 (policy uncertainty, high rate volatility)
|
|
169
|
+
- **Crisis**: > 150 (1994, 2008, 2020, 2023 banking crisis)
|
|
170
|
+
- High MOVE compresses equity valuations by increasing discount rates unpredictably.
|
|
171
|
+
|
|
172
|
+
### Credit as a Leading Indicator
|
|
173
|
+
|
|
174
|
+
- **IG/HY spread widening** before equity weakness is a leading warning (credit sees risk first)
|
|
175
|
+
- **Spread compression** while equities lag = catch-up potential, constructive signal
|
|
176
|
+
- **IG vs. HY divergence**: If HY widens but IG holds, idiosyncratic credit stress — watch lower-quality equities
|
|
177
|
+
- **Leveraged loan market**: CLO issuance and leveraged loan spreads reflect private credit conditions
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Global Macro Comparison
|
|
182
|
+
|
|
183
|
+
### Economic Cycle Positioning (US vs. EU vs. China)
|
|
184
|
+
|
|
185
|
+
| Economy | Current Phase | GDP Growth | Inflation | Policy Stance | Equity Implication |
|
|
186
|
+
|----------------|-----------------------|------------|-----------|---------------|-----------------------------|
|
|
187
|
+
| United States | | | | | |
|
|
188
|
+
| Eurozone | | | | | |
|
|
189
|
+
| China | | | | | |
|
|
190
|
+
| Japan | | | | | |
|
|
191
|
+
| UK | | | | | |
|
|
192
|
+
|
|
193
|
+
Economic cycle phases: Early Expansion → Mid Expansion → Late Expansion → Contraction → Recovery
|
|
194
|
+
|
|
195
|
+
### PMI Comparison Across Major Economies
|
|
196
|
+
|
|
197
|
+
| Country/Region | PMI Index | Last Reading | Trend | Above/Below 50 |
|
|
198
|
+
|----------------|--------------|--------------|-------------|----------------|
|
|
199
|
+
| US | ISM Mfg | | | |
|
|
200
|
+
| US | ISM Services | | | |
|
|
201
|
+
| Eurozone | Markit Mfg | | | |
|
|
202
|
+
| Eurozone | Markit Svcs | | | |
|
|
203
|
+
| China | Caixin Mfg | | | |
|
|
204
|
+
| China | Official PMI | | | |
|
|
205
|
+
|
|
206
|
+
**Rule**: PMI above 50 = expansion; below 50 = contraction. Composite PMI below 48 for 2+ months is recessionary signal.
|
|
207
|
+
|
|
208
|
+
### Central Bank Divergence Analysis
|
|
209
|
+
|
|
210
|
+
| Central Bank | Current Rate | Last Move | Next Expected Move | Cycle Phase |
|
|
211
|
+
|--------------|-------------|-------------|-------------------|-------------|
|
|
212
|
+
| Federal Reserve (Fed) | | | | |
|
|
213
|
+
| European Central Bank (ECB) | | | | |
|
|
214
|
+
| Bank of Japan (BOJ) | | | | |
|
|
215
|
+
| Bank of England (BOE) | | | | |
|
|
216
|
+
| People's Bank of China (PBOC) | | | | |
|
|
217
|
+
|
|
218
|
+
**Divergence signals**:
|
|
219
|
+
- Fed tightening while ECB/BOJ easing → USD strengthens, EM currencies weaken
|
|
220
|
+
- Synchronized easing → Global risk-on, EM outperforms, commodities bid
|
|
221
|
+
- BOJ policy normalization → JPY strengthens, unwinds carry trades
|
|
222
|
+
|
|
223
|
+
### Dollar (DXY) Strength and Sector Impact
|
|
224
|
+
|
|
225
|
+
| DXY Direction | US Multinational Earnings | Commodities | Emerging Markets | Domestic US Small-Caps |
|
|
226
|
+
|---------------|--------------------------|-------------|-----------------|------------------------|
|
|
227
|
+
| Strengthening (rising DXY) | Headwind (FX translation) | Bearish | Bearish (USD-denominated debt stress) | Relative outperform |
|
|
228
|
+
| Weakening (falling DXY) | Tailwind | Bullish | Bullish | Relative underperform |
|
|
229
|
+
|
|
230
|
+
- **DXY above 105**: Meaningful headwind for S&P 500 multinationals (roughly 40% of S&P revenues are foreign)
|
|
231
|
+
- **DXY below 95**: Significant tailwind, boosts international earnings in USD terms
|
|
232
|
+
|
|
233
|
+
### Emerging Market Vulnerability Indicators
|
|
234
|
+
|
|
235
|
+
- **EM FX pressure**: Current account deficits + elevated external USD debt = vulnerable to dollar strength
|
|
236
|
+
- **EM Debt Stress Index**: Sovereign spread widening in EM bonds (EMBI+ spread)
|
|
237
|
+
- **Capital outflow risks**: Rate differential between US and EM narrows during Fed cutting cycles — can reverse
|
|
238
|
+
- **China contagion risk**: Property sector stress, credit impulse, and stimulus effectiveness
|
|
239
|
+
- **Commodity-exporting EMs**: Benefit from commodity supercycles; inversely, hurt by USD strength
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Recession Probability Scoring
|
|
244
|
+
|
|
245
|
+
### New York Fed Recession Model
|
|
246
|
+
|
|
247
|
+
Based on the 3M10Y yield curve spread, the NY Fed publishes a monthly recession probability for the next 12 months.
|
|
248
|
+
|
|
249
|
+
| Probability Range | Interpretation |
|
|
250
|
+
|-------------------|-----------------------------------------------|
|
|
251
|
+
| 0–10% | Expansion — very low recession risk |
|
|
252
|
+
| 10–25% | Low risk — monitor indicators |
|
|
253
|
+
| 25–50% | Elevated — caution warranted |
|
|
254
|
+
| 50–75% | High risk — recession likely within 12 months |
|
|
255
|
+
| > 75% | Near-certain — defensive positioning required |
|
|
256
|
+
|
|
257
|
+
**Current NY Fed reading**: ____%
|
|
258
|
+
|
|
259
|
+
### Conference Board Leading Economic Index (LEI)
|
|
260
|
+
|
|
261
|
+
The LEI composite combines 10 leading indicators across financial markets, labor, manufacturing, and consumer expectations.
|
|
262
|
+
|
|
263
|
+
- **Consecutive monthly declines (3+)**: Strong recession warning
|
|
264
|
+
- **Year-over-year decline > 4%**: Historically aligned with recessions
|
|
265
|
+
- **LEI component breakdown**: Manufacturing hours, building permits, consumer expectations, credit spread, yield curve, stock prices, initial jobless claims
|
|
266
|
+
|
|
267
|
+
**Current LEI trend**: Rising / Flat / Declining
|
|
268
|
+
|
|
269
|
+
### Sahm Rule
|
|
270
|
+
|
|
271
|
+
**Sahm Rule Indicator** = Current 3-month average unemployment rate minus the minimum of the 3-month average unemployment rate over the prior 12 months.
|
|
272
|
+
|
|
273
|
+
- **Threshold: ≥ 0.5 percentage points** = Real-time recession signal with high historical accuracy
|
|
274
|
+
- Triggered in every US recession since 1970
|
|
275
|
+
- Works in real-time without revision lag that affects other indicators
|
|
276
|
+
|
|
277
|
+
**Current Sahm Indicator reading**: ____
|
|
278
|
+
|
|
279
|
+
### Custom Composite Recession Probability
|
|
280
|
+
|
|
281
|
+
Scoring model combining: Yield curve signal + LEI trend + Sahm Rule + Credit spreads + PMI momentum
|
|
282
|
+
|
|
283
|
+
| Zone | Score Range | Interpretation |
|
|
284
|
+
|----------------|--------------|-------------------------------------------------------|
|
|
285
|
+
| Expansion | 0–25% | Risk-on appropriate; cyclicals, growth outperform |
|
|
286
|
+
| Caution | 25–50% | Balanced positioning; reduce cyclical overweights |
|
|
287
|
+
| High Risk | 50–75% | Defensive rotation; increase quality, reduce leverage |
|
|
288
|
+
| Near-Certain | 75–100% | Full defensive posture; cash, defensives, short vol |
|
|
289
|
+
|
|
290
|
+
**Historical recession episodes and leading indicators:**
|
|
291
|
+
|
|
292
|
+
| Recession | Yield Curve Inversion | LEI Decline | Sahm Trigger | S&P 500 Peak-to-Trough |
|
|
293
|
+
|---------------|-----------------------|-------------|--------------|------------------------|
|
|
294
|
+
| 2001 (Dot-com) | 2000 | Yes | Yes | −49% |
|
|
295
|
+
| 2008 (GFC) | 2006–2007 | Yes | Yes | −57% |
|
|
296
|
+
| 2020 (COVID) | 2019 | Yes | Yes | −34% |
|
|
297
|
+
| 2022–2023 | 2022–2023 | Yes | No (so far) | −25% (bear market) |
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Output
|
|
302
|
+
|
|
303
|
+
Deliver concise economic assessment with:
|
|
304
|
+
- Current economic state summary
|
|
305
|
+
- Key risks and opportunities
|
|
306
|
+
- Sector and asset class implications
|
|
307
|
+
- Investment positioning recommendations
|
|
308
|
+
|
|
309
|
+
## Standard Signal Output
|
|
310
|
+
|
|
311
|
+
All analysis concludes with this standardized block:
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
## Thesis Invalidation
|
|
315
|
+
|
|
316
|
+
After delivering the analysis signal, specify what would reverse it:
|
|
317
|
+
|
|
318
|
+
**If signal is BULLISH — thesis breaks if:**
|
|
319
|
+
- yield curve inverts >50bps AND leading indicators fall for 3 consecutive months
|
|
320
|
+
- [One or two more triggers drawn from this analysis's own drivers, each with a threshold]
|
|
321
|
+
|
|
322
|
+
**If signal is BEARISH — thesis breaks if:**
|
|
323
|
+
- yield curve normalizes AND PMI recovers above 52 for 2+ months
|
|
324
|
+
- [One or two more triggers drawn from this analysis's own drivers, each with a threshold]
|
|
325
|
+
|
|
326
|
+
**Re-run this analysis when:**
|
|
327
|
+
- [ ] Next earnings release
|
|
328
|
+
- [ ] Price moves ±15% from current level
|
|
329
|
+
- [ ] 60 days have elapsed
|
|
330
|
+
- [ ] Material news event (acquisition, leadership change, regulatory decision)
|
|
331
|
+
|
|
332
|
+
╔══════════════════════════════════════════════╗
|
|
333
|
+
║ INVESTMENT SIGNAL ║
|
|
334
|
+
╠══════════════════════════════════════════════╣
|
|
335
|
+
║ Signal: BULLISH / NEUTRAL / BEARISH ║
|
|
336
|
+
║ Confidence: HIGH / MEDIUM / LOW ║
|
|
337
|
+
║ Horizon: SHORT / MEDIUM / LONG-TERM ║
|
|
338
|
+
║ Score: X.X / 10 ║
|
|
339
|
+
╠══════════════════════════════════════════════╣
|
|
340
|
+
║ Action: BUY / HOLD / SELL ║
|
|
341
|
+
║ Conviction: STRONG / MODERATE / WEAK ║
|
|
342
|
+
╚══════════════════════════════════════════════╝
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
Score Guide: 8.0–10.0 Strongly Bullish | 6.0–7.9 Moderately Bullish | 4.0–5.9 Neutral | 2.0–3.9 Moderately Bearish | 0.0–1.9 Strongly Bearish
|
|
346
|
+
Confidence: HIGH (strong data, clear signals) | MEDIUM (mixed signals) | LOW (limited data, conflicting signals)
|
|
347
|
+
Horizon: SHORT-TERM (1 week–3 months) | MEDIUM-TERM (3 months–1 year) | LONG-TERM (1+ years)
|
|
348
|
+
|
|
349
|
+
**Disclaimer:** Educational analysis only. Not financial advice.
|