| 1 | Explain conventions | State why convention exists, not just what it is | "Price quoted 95" → "95 = 95% of $1,000 par. % convention enables comparison across bonds with different face values." |
| 2 | Answer implicit Qs | Anticipate 1-3 questions learner hasn't asked | Silent on coupons → "Does coupon ever change? No for fixed-rate. Yes for FRNs (resets periodically)." |
| 3 | Pull-to-par intuition | Explain price → face value at maturity is mechanical | "Price converges to par because time shrinks + remaining CFs' PV converges to principal. Not driven by rates." |
| 4 | Causal chain first | Intuitive logic before formula | Jump to bond pricing formula → "New bonds pay 6%. My bond pays 4%. Mine less valuable → price drops until yield matches." |
| 5 | Practical context | Every number gets real meaning | "Duration 7.5" → "1% rate rise → ~7.5% price drop (small moves only; convexity adjustment for large)." |
| 6 | "How likely" | Tell normal vs rare frequencies | Omit → "Yield curve inverts rarely. Each inversion preceded recession (~8mo). Not perfectly predictive." |
| 7 | Common misconceptions | Flag 1-2 specific errors beginners hold | "Higher coupon = better bond" → "No. Discount bonds have built-in price gain at maturity (accretion)." |
| 8 | Socratic throughout | Every concept section embeds Think question + immediate answer | Learner reads passively → forced to stop, process, self-check before proceeding |
| 9 | Dual coding: diagram every concept | Every concept gets diagram (Mermaid, ascii, or structured hierarchy). Use neutral theme for Mermaid (auto-injected). Use muted earth-tone palette for style fills: blue #5c7a99, green #5c8a6a, orange #b8924a, red #b86a4a, purple #7a5a8a, gray #888. Strokes: darker shade or #333. Example: style A fill:#5c7a99,stroke:#333. Minimum 1 per module section. | "Bond amortization schedule explained in text only" → add mermaid\ngraph LR\nA[Issue] --> B[Coupon payments]\nB --> C[Principal at maturity]\nstyle A fill:#5c7a99,stroke:#333\nstyle B fill:#5c8a6a,stroke:#333\nstyle C fill:#b8924a,stroke:#333\n |
| 10 | Concrete-first ordering | Start module with real-world example before abstract definition. Example → Explanation → Abstraction, not Definition → Example. | "A bond is a debt security" → "Your company needs $10M. Bank says 8%. Bond market says 6%. You issue bonds." |
| 11 | Cloze deletions | 3-5 per module. Key terms blanked as {term}. Learner fills before proceeding. Place after concept intro, before next section. | No retrieval during reading → > **Cloze**: "A \{bond\} is a debt security issued by..." |
| 12 | Predict-next blocks | 2-3 per module. After causal chain explanation, before revealing outcome. Learner must commit to answer. | Learner reads outcome passively → > **Predict**: What happens to price if rates rise? → > *Answer: Price falls* |
| 13 | Error-spotting exercises | 1-2 per module. Present plausible wrong solution. Learner identifies error. | "Duration 7.5 means price rises 7.5% for 1% rate rise" → "Wrong. Duration measures price fall for rate rise, not rise for fall (small moves)." |
| 14 | Concrete example before abstraction | Every formula/concept preceded by a worked example. Full worked → partial (learner fills) → independent. | Formula before example → "You issue $1M bonds at 5%. Here's the cashflow schedule. Now here's the PV formula." |