Back to prompt library
Build a Recession Signal Research and Disagreement Console — Implementation planning and evidence-linked development
Linked challenge: Build a Recession Signal Research and Disagreement Console
Prompt source
Implementation planning and evidence-linked development51 lines16 sectionsNo variables28 checklist items
## User A macro risk researcher maintaining an early-warning model. ## Build Compare economic slowdown signals on historical decision dates. Show disagreement, calibration, and uncertainty instead of converting one threshold into an official recession declaration. ## Input Contract - Key: decision_date + signal_version. - Fields: available_features, forecast_horizon, probability, label, label_available_at. - Keep overlapping forecast windows and delayed labels out of random row splits. ## Workflow 1. Freeze features at each decision date. 2. Fit a simple baseline before a multivariate model. 3. Compare calibration and signal disagreement on chronological holdouts. 4. Export an evidence packet with uncertainty and abstentions. ## Interface A probability history, model disagreement matrix, calibration plot, and dated case review panel. ## Deliverables - A vintage-aware forecasting pipeline. - A model comparison report with chronological splits and label availability rules. - Runnable local application, setup commands, and a dependency lockfile. - Versioned input data, data dictionary, acquisition instructions, and rights notes. - Calculation traces, source references, assumption records, and exported review artifacts. - A deterministic baseline and tests for normal, incomplete, contradictory, and failure-recovery cases. - A recorded complete workflow with a reproducible manifest and explicit limitations. ## Acceptance Criteria - No feature or label arrives after its permitted training cutoff. - Report Brier score, calibration, and coverage rather than accuracy alone. - Bootstrap intervals account for dependent time observations. - No threshold is presented as an official recession determination. ## Contrast Case Two equally confident forecasts face opposite outcomes. Their proper scoring losses must differ without changing the forecast record. ## Dataset Scope The attached starter files are prototype inputs. Expected starter answers are visible. They are not independent holdouts. Full target: Acquire archived activity series and separately dated outcome labels with documented provenance. Use synthetic labels until licensed or public labels are verified. Complete target contracts and expert review remain pending. Public observations are not historical release vintages. ## Tools statsmodels, scikit-learn, DuckDB Use an available model appropriate to the task. Record provider, model identifier, version or retrieval date, settings, cost, and latency. Use deterministic code for calculations. Models may extract, retrieve, or explain evidence. They must not invent missing records, override approval rules, or claim professional authority. ## Constraints Research signals are not official dates or investment recommendations. - No fabricated records, source citations, professional endorsements, or expert-adjudication claims. - No future-data leakage into dated decisions, model fitting, or historical valuation inputs. - No unauthorized payments, account restrictions, regulatory filings, or production changes. - No automated appraisal certification, tax-compliance determination, or unsupported fraud accusation. - No concealed uncertainty or silently invented inputs required for a numerical conclusion. ## Scoring - Correct domain calculations and justified methods with documented assumptions. Weight: 30. - Source lineage, temporal integrity, rights checks, and explicit synthetic-data labels. Weight: 25. - A working application with review, export, error handling, and reproducible state. Weight: 20. - Adversarial cases, uncertainty, missing-data behavior, and sensitivity analysis. Weight: 15. - Evidence-linked conclusions that distinguish facts, assumptions, and unresolved judgments. Weight: 10. Score each dimension from zero to two. Weighted score = sum(weight * score / 2). A failed safety gate blocks acceptance.