=== RESEARCH ===
{'issue': 280, 'kind': 'docs', 'defect_status': 'confirmed', 'category': 'prose-fix', 'target_files': ['docs/src/volatility.md'], 'summary': 'Rename the S&P 500 / equity narration to the INDPRO industrial-production growth series the @setup actually loads, and delete the fabricated "half-life of 13 periods" equity figure.', 'current_state': 'Defect still present at current tree (release/v0.6.6 @ cb4f048). docs/src/volatility.md:17 `@setup` loads `ip = filter(isfinite, to_vector(apply_tcode(fred[:, ["INDPRO"]])))[end-99:end]` — INDPRO with FRED-MD tcode 5 (Δlog) is monthly industrial-production log-growth, NOT equity returns. Contradicting prose survives at three sites: (1) :630 "This example estimates all four GARCH-family models on S&P 500 returns"; (2) :705 "The S&P 500 returns exhibit strong ARCH effects... persistence is typically close to 0.95 for monthly equity returns, meaning volatility shocks take roughly 13 periods to dissipate to half their initial impact"; (3) :187 "The persistence α1+β1 for equity returns typically falls between 0.9 and 0.99... A half-life of 13 periods means that half the impact of a volatility shock dissipates after 13 time units." The "0.95 persistence" and "13 periods" figures are not derived from any rendered output (Complete Example only prints round(persistence(garch),digits=4) at :658 — an actual value that could be cited instead). Draft mode is OFF (docs/make.jl:10 `draft = get(ENV,"DOCS_DRAFT","false")=="true"`), so example blocks execute and T008 is already satisfied. Line 225 ("stock price declines increase financial leverage... equity volatility") is general Black (1976) leverage-effect theory, not data narration; leave unless a stricter reading is preferred.', 'proposed_change': 'Do NOT change the data source (INDPRO stays); rewrite prose to match it, per audit §4.1 recommendation. (1) :630 — replace "on S&P 500 returns" with "on monthly industrial production growth (FRED-MD INDPRO, tcode-transformed to log-growth)". (2) :705 — replace "The S&P 500 returns exhibit strong ARCH effects" with "The industrial production growth series exhibits ARCH effects"; DELETE the fabricated clause "The GARCH(1,1) persistence is typically close to 0.95 for monthly equity returns, meaning volatility shocks take roughly 13 periods to dissipate to half their initial impact." — either drop it entirely (default) or replace with a statement citing the value actually rendered at :658 (round(persistence(garch),digits=4)) and, if a half-life is wanted, log(0.5)/log(that persistence); do not invent 0.95/13. Keep the remaining EGARCH/GJR/SV sentences (they are qualitative and dataset-agnostic). (3) :187 — remove the "for equity returns" qualifier (state the persistence range as a general GARCH property or tie it to the page\'s series) and DELETE the sentence "A half-life of 13 periods means that half the impact of a volatility shock dissipates after 13 time units." (fabricated); the half-life is already correctly defined generally at :516-:519 as log(0.5)/log(persistence), so no replacement number is needed. Source-of-truth for the loaded series: docs/src/volatility.md:16-18 (INDPRO + apply_tcode). Optional adjacent nit (out of this issue\'s scope, flag only): the Complete Example estimates 3 GARCH-family models (garch/egarch/gjr) plus SV, so ":630 all four GARCH-family models" overcounts — leave to T187 unless trivially co-fixed. No make.jl `pages=` or cross-reference moves (prose-only edit; volatility.md stays at make.jl:32).', 'verify': 'julia --project=docs docs/verify_examples.jl docs/src/volatility.md  (prose-only change; page must still build/verify OK. Optionally grep to confirm no "S&P"/"half-life of 13"/"equity returns" narration remains: grep -nE "S&P|SP500|half-life of 13|equity returns" docs/src/volatility.md)', 'dependencies': [107], 'collisions': ["docs/src/volatility.md — #286 (T187 MED sweep) Depends on [T181] and rewrites 'produced-value interpretations' on univariate pages, overlapping the :187/:705 interpretation paragraphs; must land AFTER #280"], 'effort': 'S', 'risk': 'low'}

=== VERIFY ===
{'issue': 280, 'verdict': 'CONFIRMED', 'assessment': 'Defect is real and still present at cb4f048 (release/v0.6.6). Independently verified: docs/src/volatility.md:16-18 loads FRED-MD INDPRO through apply_tcode and keeps ip[end-99:end] (industrial-production log-growth, not equity), while contradicting equity narration survives at three sites — :630 "estimates all four GARCH-family models on S&P 500 returns", :705 "The S&P 500 returns exhibit strong ARCH effects ... persistence is typically close to 0.95 for monthly equity returns ... roughly 13 periods to dissipate to half their initial impact", and :187 "for equity returns ... A half-life of 13 periods means ...". The 0.95/13 figures are not derived from rendered output; the only rendered persistence is round(persistence(garch),digits=4) at :658, and the half-life is already defined generally at :516-519 as log(0.5)/log(persistence), so the spec\'s "no replacement number needed" is correct. :225 (Black 1976 leverage theory) is correctly left in scope. Research line citations are accurate to the current tree (issue #280/T181\'s stale :179/:622/:697 correctly re-mapped). Issue body confirms the exact fix: rewrite equity framing to industrial-production growth, delete the unverifiable half-life figure (deletion is the default), keep INDPRO as the data source. docrule compliance: removing fabricated numbers improves §73 precision and anti-pattern #9; dropping the clause is acceptable and the offered "cite :658 rendered value" is the docrule-preferred alternative. Draft mode off at make.jl:10, so examples render/verify (T008 satisfied). Spec is correct and complete for #280\'s scope. Non-blocking observation: :630 "all four GARCH-family models" also overcounts (only garch/egarch/gjr = 3 are estimated), but the spec and the issue both explicitly defer this count nit to T187, so it is out of #280\'s scope; co-fixing it while touching that line would be trivial and cleaner but is not required.', 'corrections': '', 'collision_issues': [286], 'discriminating_power': 'n/a (docs prose-only change; no test assertion involved)', 'final_effort': 'S'}