---
session_id: 2026-09-09-block-031-open
date: 2026-09-09
block: 031
block_name: Credit HY/IG spreads
phase: Phase 1 (Credit)
status: ◐ in-progress
session_paused: true
session_closed_clean: false
resume_point: Main material Target 2 (OAS mechanics / callable negative convexity)
---

# 2026-09-09 — Block 031 open + pre-read teach — PAUSED mid-block

## Session shape so far

1. **Pre-read teach delivered (teach-first substitute, user opted out of read).** Three sources covered in teach-form per `references/teach-pre-reads.md`: Hull 10e Ch. 24 (risk-neutral vs physical PD, spread ≈ (1−R)×intensity, pro-cyclical recoveries), FRED/BAML OAS series construction (model-dependence, composition drift, duration asymmetry), BIS QR Dec 2024 threshold framework (tail-not-mean pricing, vulnerability parameter, BBB hinge, reflexivity). Crouzet & Gourley explicitly skipped (optional Block 033 side-read). Logged here per convention so next session's gate asks "did you get the teach?" not "did you read?".
2. **Cold-recall re-drill pass (Block 030 queue) — complete.** Carry-trader-MTM → dealer-warehousing second-order chain: user recalled margin-call/forced-seller loop but missed the warehousing link on first pass; locked on teach + March-2020 applied re-probe. **Working → Working+.**
3. **Teach-landing probe pass (6 probes) — complete, 2 at Working with cards pushed.**
4. **Main material Target 1 delivered** (spread composition: component cycle-behaviour, issuer-level drivers incl. maturity wall, IG/HY relative-value frame). User then requested break + card push.
5. **17 Anki cards pushed and synced** (details below).

## Probe scorecard

| # | Probe | Outcome |
|---|---|---|
| Q1 | Warehousing chain (Block 030 carry) | **Working+** — re-drill complete |
| 1 | Risk-neutral vs physical PD | Working+ (correction: risk-premium mechanism, not disagreement) |
| 2 | OAS vol-sensitivity IG vs HY | Working+ (correction: model-side wedge channel; CDS cross-check clean) |
| 3 | Composition masking | **Working** (honest blank → taught; first-discriminator call missed → card #8 pushed) |
| 4 | Spreads price tail not mean | Working+ |
| 5 | Signal vs cause attribution | **Working** (BBB-skew reasoning inverted on first pass; refi-wall chain taught → cards #13/#14 pushed) |
| 6 | OAS 3-component decomposition | **Partial — deferred to live-data walk** (verification happens during Target 4 live-data probe, not as cold recital) |

## Anki cards pushed (17/17, sync confirmed)

Deck: `Macro Study::Phase 1 — Components::Credit` (new subdeck). Model: Basic (all — no cloze). Tags: `block-031 credit pre-read-teach 2026-09-09`.

Cards: (1) risk-neutral>physical PD mechanism, (2) spread≈(1−R)×intensity, (3) pro-cyclical recoveries, (4) CDS-intensity jump → rich cash/negative basis, (5) IG OAS vol wedge channel, (6) HY OAS cleaner, (7) bonds-rally vs rates-rally terminology, (8) tier-weights-first discriminator, (9) "HY at tights" composition trap, (10) late-cycle HY duration/refinancing channel, (11) tail-not-mean two-step, (12) BBB hinge three reasons, (13) BBB-leads tier skew → world (ii), (14) fallen-angel refi-wall chain, (15) OAS 3-component decomposition + observables, (16) cross-tier discriminator (generalizable), (17) dealer-warehousing second-order chain + March 2020.

**AnkiConnect note:** was down at session start (port 6565 empty). Fixed: AnkiConnect config (`~/.local/share/Anki2/addons21/2055492159/config.json`) had `webBindPort: 8765` — collision with unrelated python3 server. Set to 6565 per standing convention; launched Anki headless (`anki --no-splash`, Popen). Working as of this session. Caveat: `findNotes deck:` queries return 0 anomalously on this Anki version — use `tag:` queries or direct DB check (`collection.anki2` decks table + cards.did) for verification.

## Terminology ruling (user pushback, external-source verified)

**"Bonds rally"** = prices up / yields down. **"Rates rally"** = yields UP / prices down. User's framing confirmed against web sources; wild usage is inconsistent (ING uses it inverted), so program convention = the user's two-term split, and probes use explicit yield-anchored verbs. Card #7 locks it.

## Resume point

**Main material Target 2 (OAS mechanics, callable negative convexity — Block 011 MBS parallel) is next, then Target 3 (BBB threshold / fallen-angel transmission — substrate already partially taught via probes 5 & 14), then Target 4 (PM read) closing with the live-data decomposition walk** (pull BAML OAS + CDS, run Cash OAS = CDS + basis = EL + RP + LP split, classify cycle position). The live-data walk doubles as probe 6 verification.

## Carry-forwards

to_target_2:
  - Callable negative convexity: mirror Block 011 MBS mechanism, option-holder = issuer
  - IG OAS widening in rate rallies already substrate-locked (probe 2 / card #5) — build, don't reteach
to_target_3:
  - BBB hinge + refi-wall chains already taught (cards #12/#14) — Target 3 teaches mandate mechanics + downgrade flow around them
to_target_4:
  - Probe 6 verification via live walk
  - Fade-vs-ride discriminator now has mechanical basis (component cycle-behaviour) — test applied
process_notes:
  - Teach-first substitute for Block 031 pre-reads — user requested at session open ("Let's start with you teaching the pre-reads")
  - User requested pause after Target 1: "heavy and I feel important teach session and not very well internalised yet" — honour pacing, no pressure to resume targets next session
  - Numeric decomposition walk skipped at probe stage at user request ("Skip calculations for now") — lands in Target 4 live walk
  - AnkiConnect port fix (8765→6565) is a persistent environment change, not session-scoped
