Cleaner OOS validation of the §9.6 negative verdict:
- --source {B,A,both}: Source A = objective_corpus_room_month SUM(deals) monthly
aggregate (survivorship-FREE, ~13mo); Source B path unchanged.
- --detrend: linearly detrend ln(units) before differencing so a spurious
survivorship trend can't drive β (_detrend_log helper).
- cross-source verdict compares B-raw / B-detrended / A.
DEFINITIVE RESULT (run vs prod 2026-06-03): NO variant beats coin-flip OOS —
B-raw 0.148, B-detrended 0.148, A too thin (13mo<18). The §9.6 negative verdict
is a REAL 'no signal', NOT a survivorship artifact (detrend + clean Source A
agree). monthly key_rate→sales is not OOS-predictive on available EKB data →
§9.6 stays advisory; forecast should lean on measured signals (supply/absorption).
Tests 38→60.