What (One-liner)
How restrictive or accommodative is policy? Real policy rate (fed funds minus core PCE) versus a market proxy for neutral (the 10-year TIPS real yield), labeled restrictive / accommodative / neutral. A market read — explicitly NOT the Holston-Laubach-Williams model r*.
How to use
Drag neutral_rate_v1 into Canvas and run — it self-fetches fed funds (FEDFUNDS), core PCE (PCEPILFE), and the 10-year TIPS real yield (DFII10) from FRED. No input parameters. Wire it upstream of an institution institution_composite so the neutral-rate / duration seats read a real policy-stance gauge.
Core formula
real_policy_rate = fed_funds − core_PCE_YoY # ex-post real rate
r_star_proxy = DFII10[-1] # 10Y TIPS real yield (market proxy)
gap = real_policy_rate − r_star_proxy
stance = restrictive (gap > 0.5) / accommodative (gap < −0.5) / neutralAssumptions & applicability
Assumptions: ex-post real rate (realized core PCE); neutral proxy = 10Y TIPS real yield (NOT the HLW model); stance band ±0.5.
Applicable: US policy-stance read.
Not applicable: a structural r* estimate (HLW), non-US, forward r* paths.
Input / Output contract
No inputs (self-fetching). Output: {fed_funds, real_policy_rate, r_star_proxy, gap, stance, as_of}. On FRED unavailability (no fed funds / <13 core-PCE points) it returns {status: error, _error_kind: fetch_failed}; r_star_proxy and gap are null when the TIPS series is absent — it never fabricates a number.
Known limitations
- r* proxy is the 10Y TIPS real yield, not the HLW model r* — a market read, not a structural estimate (HLW is logged as R&D).
- Real policy rate is ex-post (realized inflation, not expected).
- Stance band ±0.5 is a fixed heuristic.
r_star_proxy/gapnull when TIPS absent.- Needs fed funds + ≥13 monthly core-PCE observations; otherwise an honest fetch_failed error.

