{
  "schema": "sb.reproducibility.v1",
  "title": "Flagged vs control — the repricing regression, reproducibility bundle",
  "generatedFrom": {
    "resultObject": "The committed result object 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"
  },
  "asOf": "2026-10-20T08:05:06.360734+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.4635869833551323,
    "ci95": [
      1.3245203908323218,
      1.6118782366752131
    ],
    "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-10-20"
    ],
    "treatmentN": 2891,
    "controlN": 124273
  },
  "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-10-20T08:05:06.360734+00:00",
    "panel_window": [
      "2026-03-29",
      "2026-10-20"
    ],
    "treatment_n": 2891,
    "control_n": 124273,
    "report": {
      "raw": {
        "treatment_rate": 0.48702870978900037,
        "control_rate": 0.30906150169385144,
        "crude_ratio": 1.5758310469591867,
        "crude_ci": [
          1.3949925900927531,
          1.792297040561112
        ],
        "adj_control_rate": 0.33997306273642214,
        "adj_ratio": 1.432550878792974,
        "adj_ci": [
          1.3239291680882839,
          1.578973434870154
        ],
        "stratum_coverage": 1.0,
        "liq_adj_ratio": 1.2784420895397361,
        "liq_adj_ci": [
          1.1602644485987765,
          1.373124058764473
        ],
        "median_days_to": [
          6.5,
          8.0
        ]
      },
      "noshock": {
        "treatment_rate": 0.19854721549636803,
        "control_rate": 0.12767053181302454,
        "crude_ratio": 1.555153038660037,
        "crude_ci": [
          1.3659121097705857,
          1.761569598949201
        ],
        "adj_control_rate": 0.13565795388615554,
        "adj_ratio": 1.4635869833551323,
        "adj_ci": [
          1.3245203908323218,
          1.6118782366752131
        ],
        "stratum_coverage": 1.0,
        "liq_adj_ratio": 1.407727087110722,
        "liq_adj_ci": [
          1.2576289384461143,
          1.5471412937050735
        ],
        "median_days_to": [
          9.5,
          11.0
        ]
      }
    }
  },
  "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 (the dated retirement object rides https://signalbureau.ai/api/record-data) and is not part of this bundle."
  ],
  "license": "Informational only — never financial, legal, or investment advice. Cite 'Signal Bureau' with https://signalbureau.ai/record/methodology/ so readers can verify."
}
