{
  "schema": "sb.reproducibility.v1",
  "title": "Flagged vs control — the repricing regression, reproducibility bundle",
  "generatedFrom": {
    "resultObject": "web/signal-bureau/lib/signal_bureau_snapshot.json → record.regression (the committed copy every public surface renders)",
    "canonicalResultFile": "cross_domain/analysis/flagged_vs_control_results.json (refreshed nightly by the memory-bus workflow; may run ahead of this bundle's committed copy)",
    "analysisScript": "cross_domain/analysis/flagged_vs_control.py",
    "methodologyDoc": "docs/analysis/20260706 Does the Attention Signal Predict Repricing — Flagged vs Control.md"
  },
  "asOf": "2026-07-22T06:58:31.103473+00:00",
  "question": "Do Polymarket markets joined to a cross-domain attention flag reprice materially more often than comparable markets that were never flagged, over the same calendar dates, price band, and market-class universe?",
  "headline": {
    "estimand": "material-repricing rate of flagged markets vs matched unflagged controls, shock-days excluded, control rate directly standardized (reweighted) to the flagged cohort's start-price × volume strata",
    "variant": "report.noshock (the variant every public surface cites)",
    "adjustedRatio": 1.8959135751671676,
    "ci95": [
      1.643530697641261,
      2.262217799472598
    ],
    "caveat": "An attention-leads-movement association — never a directional claim. It says flagged markets MOVE more often than controls; it says nothing about which way."
  },
  "inputs": {
    "panel": "cross_domain/db_panel/pm_markets/*.jsonl.gz — daily last-snapshot-per-UTC-day price series per market slug (committed memory-bus shards; ride the repo)",
    "treatment": "cross_domain/evidence_portfolio.jsonl — (slug, flag_date) pairs, last row per case_id; rows rejected for OUTCOME reasons retained, rows rejected for STRUCTURAL reasons excluded (same class filter applied to controls)",
    "panelWindow": [
      "2026-03-29",
      "2026-07-22"
    ],
    "treatmentN": 1523,
    "controlN": 45864
  },
  "definitions": {
    "materialReprice": "max |p(d) − p(start)| ≥ 20.0 percentage points over start < d ≤ start + 30 days, using only days at least 1 full day(s) before the series' last observation",
    "shockDayExclusion": "shock-excluded variant: the first crossing day's single-day step must be < 0.6 of the total move from start; a crossing delivered in one jump is excluded",
    "flaggedCohort": "(slug, flag_date) pairs from the evidence portfolio; start price may be quoted up to 2 days before the flag (mirrors the pipeline's flag-to-price rule)",
    "controls": "for each calendar date with ≥1 treatment: ALL panel slugs with a same-day price in [10.0, 90.0], class-eligible under the same ineligibility filter as the portfolio pipeline, and no flag on that slug within ±30 days of the date; no sampling — the full eligible control universe per date",
    "priceBand": "both arms require a start price in [10.0, 90.0] (the undecided band) and at least 3 observed days inside the measurement window",
    "reweighting": "direct standardization: control rates reweighted to the treatment arm's start-price × volume-stratum distribution; the adjusted ratio is treatment_rate / adjusted control_rate by construction, and the crude (unadjusted) ratio is also reported so readers can see what the adjustment did",
    "inference": "95% CI by bootstrap over calendar-date clusters (2000 replicates, fixed seed 20260706) — one news day moves many markets, so the date is the natural exchangeable unit"
  },
  "result": {
    "generated_at": "2026-07-22T06:58:31.103473+00:00",
    "panel_window": [
      "2026-03-29",
      "2026-07-22"
    ],
    "treatment_n": 1523,
    "control_n": 45864,
    "report": {
      "raw": {
        "treatment_rate": 0.5686145764937623,
        "control_rate": 0.29142682714111284,
        "crude_ratio": 1.9511401269123088,
        "crude_ci": [
          1.777038413858655,
          2.296259005531728
        ],
        "adj_control_rate": 0.33799562961452484,
        "adj_ratio": 1.6823133989698398,
        "adj_ci": [
          1.5195276528106612,
          1.97522810254814
        ],
        "stratum_coverage": 1.0,
        "liq_adj_ratio": 1.4401678329380956,
        "liq_adj_ci": [
          1.2955599236888662,
          1.5665768544263827
        ],
        "median_days_to": [
          5.0,
          6.0
        ]
      },
      "noshock": {
        "treatment_rate": 0.2330925804333552,
        "control_rate": 0.10816762602476888,
        "crude_ratio": 2.1549199977817786,
        "crude_ci": [
          1.873677454269988,
          2.66062155332623
        ],
        "adj_control_rate": 0.1229447288560096,
        "adj_ratio": 1.8959135751671676,
        "adj_ci": [
          1.643530697641261,
          2.262217799472598
        ],
        "stratum_coverage": 1.0,
        "liq_adj_ratio": 1.8165567482488538,
        "liq_adj_ci": [
          1.5791203008663508,
          2.159735751537994
        ],
        "median_days_to": [
          7,
          10
        ]
      }
    }
  },
  "reproduce": [
    "Clone the repository (the panel shards and the evidence portfolio ride it — the memory bus).",
    "Run: python3 -m cross_domain.analysis.flagged_vs_control",
    "The run is deterministic (fixed RNG seed, pure stdlib) and writes cross_domain/analysis/flagged_vs_control_results.json."
  ],
  "limitations": [
    "Per-stratum rows are NOT in the committed result object — it carries the aggregate rates, the crude and adjusted ratios, CIs, stratum_coverage, and median days-to-reprice, but not the individual start-price × volume stratum cells. We ship what exists rather than fabricate strata; re-running the analysis script recomputes the strata internally from the committed shards.",
    "This bundle is a point-in-time exhibit of the committed result (see asOf). The nightly analysis refresh can run ahead of it; the current estimate is always at https://signalbureau.ai/api/record-data.",
    "Because the panel accrues daily, a later re-run over a longer window will not reproduce these exact numbers — reproduce against shards as of the panel window above, or expect the estimate to move within its CI.",
    "The measurement is an association, not a direction and not advice. The case-study dataset that once accompanied it was withdrawn (see https://signalbureau.ai/record/retirement/) and is not part of this bundle."
  ],
  "license": "Informational only — never financial, legal, or investment advice. Cite 'Signal Bureau' with https://signalbureau.ai/record/retirement/ so readers can verify."
}
