{
 "backend_kind": "local",
 "baseline": {
  "checkpoint_id": "local-ckpt-b020dbc10b6a8a9c",
  "cleanup_error": null,
  "cleanup_status": "ok",
  "cost_per_query_usd": 0.0,
  "p50_ms": 602.915,
  "p95_ms": 748.978,
  "p99_ms": 748.978,
  "sandbox_id": "local-fork-cd2086339006"
 },
 "ended_at_utc": "2026-10-26T08:05:21.545939Z",
 "environment": {
  "cpu_count": 2,
  "machine": "x86_64",
  "package_versions": {
   "duckdb": "1.5.6",
   "numpy": "2.5.3",
   "pydantic": "2.13.5",
   "scipy": "1.18.1"
  },
  "platform": "Linux-6.18.44-fc-v153-x86_64-with-glibc2.39",
  "python_implementation": "CPython",
  "python_version": "3.13.16"
 },
 "evaluation": {
  "alpha_family": 0.01,
  "baseline_held_out_sha256": "cbb7fca2aaac862a16950a7f48f30627edc28c00cc3bf87e444872e049f49e25",
  "baseline_primary_sha256": "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
  "baseline_timed_trial_sha256": [
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
   "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b"
  ],
  "digest_rounding_decimals": 2,
  "effect_bands": {
   "H1": {
    "high": null,
    "low": 2.0
   },
   "H2": {
    "high": null,
    "low": 2.0
   },
   "H3": {
    "high": null,
    "low": 2.0
   },
   "H4": {
    "high": null,
    "low": 2.0
   }
  },
  "experiment_spec_sha256": "42cd853954758b1f3a81ab4651f087833e8d544adca6359121b78202f3fb5eb2",
  "held_out_customer_limit": 250,
  "holm_family": [
   "H1",
   "H2",
   "H3"
  ],
  "ledger_id": "rootrace-production-h1-h4",
  "ledger_sha256": "6b84c035482a10ce00b539a8928b8addb8ea3259eb7e6575d21de8acff0e8400",
  "n_resamples": 10000,
  "practical_threshold": 2.0,
  "primary_customer_limit": 500,
  "process_isolation": "fresh_process",
  "race_seed": 20261026,
  "seed_derivation": "candidate_seed = big-endian unsigned integer of the first 8 bytes of SHA-256(canonical_json({\"hypothesis_id\": <id>, \"purpose\": \"rootrace.bootstrap-seed.v1\", \"race_seed\": <race_seed>})); canonical_json per agents/canonical.py"
 },
 "evaluator_version": "evaluator-v2.0",
 "forks": [
  {
   "backend_kind": "local",
   "checkpoint_id": "local-ckpt-b020dbc10b6a8a9c",
   "cleanup_error": null,
   "cleanup_status": "ok",
   "hypothesis_id": "H1",
   "sandbox_id": "local-fork-eee7344029d0",
   "status": "complete"
  },
  {
   "backend_kind": "local",
   "checkpoint_id": "local-ckpt-b020dbc10b6a8a9c",
   "cleanup_error": null,
   "cleanup_status": "ok",
   "hypothesis_id": "H2",
   "sandbox_id": "local-fork-dffe9fa4301c",
   "status": "complete"
  },
  {
   "backend_kind": "local",
   "checkpoint_id": "local-ckpt-b020dbc10b6a8a9c",
   "cleanup_error": null,
   "cleanup_status": "ok",
   "hypothesis_id": "H3",
   "sandbox_id": "local-fork-a53e6f0b1498",
   "status": "complete"
  },
  {
   "backend_kind": "local",
   "checkpoint_id": null,
   "cleanup_error": null,
   "cleanup_status": null,
   "hypothesis_id": "H4",
   "sandbox_id": null,
   "status": "not_applicable"
  }
 ],
 "hypotheses": [
  {
   "claim": "Excessive per-call query fanout due to per-customer fetches",
   "expected_effect": "improve",
   "id": "H1",
   "mechanism": "customer_summary_slow issues a separate query for each of the 501 customers, resulting in 501 queries per call and heavy client-side loop overhead",
   "patch_diff": null
  },
  {
   "claim": "High JSON serialization and network overhead per query",
   "expected_effect": "improve",
   "id": "H2",
   "mechanism": "each of the 501 queries returns a small JSON response that must be serialized and transmitted, inflating total latency",
   "patch_diff": null
  },
  {
   "claim": "Missing index causing slow query execution on the database side",
   "expected_effect": "improve",
   "id": "H3",
   "mechanism": "the individual per-customer queries likely scan large portions of the underlying table repeatedly, leading to high execution time per query",
   "patch_diff": null
  },
  {
   "claim": "Thread pool saturation from launching many concurrent queries",
   "expected_effect": "improve",
   "id": "H4",
   "mechanism": "spawning 501 queries per call may saturate the application's thread pool or executor, causing context\u2011switch overhead and higher latency",
   "patch_diff": null
  }
 ],
 "metrics": {
  "H1": {
   "confidence_interval_95": [
    262.03,
    304.813
   ],
   "cost_per_query_usd": 0.0,
   "n_trials": 15,
   "p50_ms": 275.132,
   "p95_ms": 382.819,
   "p99_ms": 382.819,
   "throughput_qps": 3.528
  },
  "H2": {
   "confidence_interval_95": [
    596.631,
    662.487
   ],
   "cost_per_query_usd": 0.0,
   "n_trials": 15,
   "p50_ms": 613.181,
   "p95_ms": 782.419,
   "p99_ms": 782.419,
   "throughput_qps": 1.588
  },
  "H3": {
   "confidence_interval_95": [
    601.549,
    665.899
   ],
   "cost_per_query_usd": 0.0,
   "n_trials": 15,
   "p50_ms": 627.387,
   "p95_ms": 743.691,
   "p99_ms": 743.691,
   "throughput_qps": 1.578
  }
 },
 "raw_samples": {
  "baseline_ms": [
   711.9950909999488,
   682.9295919999367,
   551.2238750000051,
   748.9783519999946,
   592.2268640000539,
   570.3595090000135,
   577.6355680000052,
   651.126473999966,
   623.7203659999295,
   568.3908800000381,
   594.5761379999794,
   602.915060999976,
   570.5894049999642,
   651.5859550000869,
   620.723736000059
  ],
  "candidates_ms": {
   "H1": [
    382.81898799993996,
    328.6774030000288,
    272.5085270000136,
    339.9509979999493,
    275.13205499997184,
    253.81016300002557,
    230.01596899996457,
    278.1023219999952,
    317.37904899989644,
    260.16703200002667,
    247.51590799996848,
    238.05077099996197,
    284.58704399997714,
    288.74657899996237,
    253.85413699996207
   ],
   "H2": [
    782.4193330000071,
    607.1283730000232,
    587.9635589999452,
    656.1425789999475,
    610.1773369999819,
    557.2574669999995,
    526.4283870000099,
    575.4211570000507,
    691.4873790000229,
    689.3052140000009,
    579.0823529999898,
    643.5612839999294,
    636.5842350001003,
    687.2410530000934,
    613.1813660000489
   ],
   "H3": [
    675.9151989999737,
    709.2339949999769,
    730.0648109999202,
    650.216511999929,
    608.9134240000931,
    627.3870630000147,
    550.5415549999952,
    588.4815489999937,
    661.2246280000136,
    567.3587759999918,
    602.5514749999274,
    605.5579369999577,
    743.6914250000655,
    531.1515500000041,
    653.5639250000713
   ]
  },
  "unit": "ms",
  "warmup_samples_included": false,
  "warmup_trials": 3
 },
 "run_id": "incident1-v2-container-001",
 "started_at_utc": "2026-10-26T08:04:04.006903Z",
 "translations": {
  "H1": {
   "original_claim": "Excessive per-call query fanout due to per-customer fetches -- customer_summary_slow issues a separate query for each of the 501 customers, resulting in 501 queries per call and heavy client-side loop overhead",
   "precondition": null,
   "tested_mechanism": "query fanout eliminated via a single GROUP BY query (customer_summary_fast)",
   "translation_note": "Direct translation: H1's claimed mechanism (per-customer query fanout) is exactly what this variant removes. No substitution needed.",
   "translation_type": "direct"
  },
  "H2": {
   "original_claim": "High JSON serialization and network overhead per query -- each of the 501 queries returns a small JSON response that must be serialized and transmitted, inflating total latency",
   "precondition": null,
   "tested_mechanism": "per-row Python object construction cost, with query count held fixed at the observed 501 queries per call",
   "translation_note": "H2 claims per-query JSON serialization and network overhead. This system executes DuckDB queries in-process via the Python API -- there is no per-query network hop or JSON encode to measure directly. This variant keeps the exact same query fanout as the observed incident and isolates the closest real, measurable analogue (per-row Python object construction) as a PROXY for the claimed overhead. A significant result here supports the proxy mechanism only -- it does not conclusively confirm or rule out the original network/serialization claim.",
   "translation_type": "proxy"
  },
  "H3": {
   "original_claim": "Missing index causing slow query execution on the database side -- the individual per-customer queries likely scan large portions of the underlying table repeatedly, leading to high execution time per query",
   "precondition": null,
   "tested_mechanism": "per-query execution cost with an index on orders.customer_id, fanout unchanged",
   "translation_note": "Direct translation: DuckDB supports real indexes, so H3's claimed mechanism (missing index) is directly testable. Fanout is held constant so this isolates per-query execution cost from H1's fanout-elimination mechanism -- a genuinely different variable.",
   "translation_type": "direct"
  },
  "H4": {
   "original_claim": "Thread pool saturation from launching many concurrent queries -- spawning 501 queries per call may saturate the application's thread pool or executor, causing context\u2011switch overhead and higher latency",
   "precondition": {
    "applicable": false,
    "checked_against": "<local path redacted> (static AST scan) + <local path redacted> (measured query_count_per_call)",
    "evidence": "Static scan of <local path redacted> found no thread-pool or async concurrency primitives (concurrency_primitives_detected=[]); customer_summary_slow issues all 501 queries synchronously via single_connection_per_call.",
    "required_mechanism": "concurrent/thread-pooled query dispatch"
   },
   "tested_mechanism": "concurrent/thread-pooled query dispatch",
   "translation_note": "H4 presupposes a thread pool or concurrent executor dispatching the per-customer queries. The precondition check found no such mechanism in the observed incident. Per design policy, this hypothesis is NOT made executable by adding a thread pool that did not exist in the incident -- doing so would measure a different system than the one being diagnosed. It is classified not_applicable instead, before any fork is allocated for it.",
   "translation_type": "precondition"
  }
 },
 "verdict": {
  "H1": {
   "correctness": {
    "checks": [
     {
      "baseline_row_count": 500,
      "baseline_sha256": "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
      "candidate_row_count": 500,
      "candidate_sha256": "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
      "customer_limit": 500,
      "match": true,
      "role": "primary"
     },
     {
      "baseline_row_count": 250,
      "baseline_sha256": "cbb7fca2aaac862a16950a7f48f30627edc28c00cc3bf87e444872e049f49e25",
      "candidate_row_count": 250,
      "candidate_sha256": "cbb7fca2aaac862a16950a7f48f30627edc28c00cc3bf87e444872e049f49e25",
      "customer_limit": 250,
      "match": true,
      "role": "held_out"
     }
    ],
    "digest_rounding_decimals": 2,
    "first_timed_trial_mismatch_index": null,
    "timed_trial_sha256": [
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b"
    ]
   },
   "effect_size_pct": 54.36636554680747,
   "narrative": "H1 ('Excessive per-call query fanout due to per-customer fetches -- customer_summary_slow issues a separate query for each of the 501 customers, resulting in 501 queries per call and heavy client-side loop overhead'): tested mechanism was query fanout eliminated via a single GROUP BY query (customer_summary_fast). Verdict SUPPORTED. Ratio of medians 2.191 (baseline median 602.9ms, candidate median 275.1ms), 95% percentile-bootstrap CI [2, 2.457]; committed band [2, open-ended]. Mann-Whitney raw p=3.392e-06, Holm-adjusted p=1.018e-05 over 3 tested hypotheses at alpha 0.01. Practical threshold 2.0x met. This narrative is a plain string template computed from measured statistics, not an LLM output.",
   "output_matches_baseline": true,
   "significant": true,
   "statistics": {
    "all_values_identical": false,
    "alpha_family": 0.01,
    "baseline_median_ms": 602.915060999976,
    "bootstrap_seed": 10007670013877724701,
    "candidate_median_ms": 275.13205499997184,
    "ci_band_position": "overlap",
    "ci_level": 0.95,
    "ci_lower": 2.0004932006487266,
    "ci_method": "percentile",
    "ci_overlaps_band": true,
    "ci_upper": 2.457002959932155,
    "effect_band": {
     "high": null,
     "low": 2.0
    },
    "holm_family_size": 3,
    "holm_reject": true,
    "mann_whitney_alternative": "two-sided",
    "mann_whitney_method": "asymptotic",
    "mann_whitney_u": 225.0,
    "mann_whitney_use_continuity": true,
    "median_percent_reduction": 54.36636554680747,
    "meets_practical_threshold": true,
    "n_baseline": 15,
    "n_candidate": 15,
    "n_resamples": 10000,
    "n_undefined_resamples": 0,
    "numpy_version": "2.5.3",
    "p_value_holm_adjusted": 1.0175464172475284e-05,
    "p_value_raw": 3.3918213908250945e-06,
    "practical_threshold": 2.0,
    "ratio_of_medians": 2.1913661096306565,
    "scipy_version": "1.18.1"
   },
   "verdict_status": "SUPPORTED",
   "winner_eligible": true
  },
  "H2": {
   "correctness": {
    "checks": [
     {
      "baseline_row_count": 500,
      "baseline_sha256": "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
      "candidate_row_count": 500,
      "candidate_sha256": "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
      "customer_limit": 500,
      "match": true,
      "role": "primary"
     },
     {
      "baseline_row_count": 250,
      "baseline_sha256": "cbb7fca2aaac862a16950a7f48f30627edc28c00cc3bf87e444872e049f49e25",
      "candidate_row_count": 250,
      "candidate_sha256": "cbb7fca2aaac862a16950a7f48f30627edc28c00cc3bf87e444872e049f49e25",
      "customer_limit": 250,
      "match": true,
      "role": "held_out"
     }
    ],
    "digest_rounding_decimals": 2,
    "first_timed_trial_mismatch_index": null,
    "timed_trial_sha256": [
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b"
    ]
   },
   "effect_size_pct": -1.7027779971270807,
   "narrative": "H2 ('High JSON serialization and network overhead per query -- each of the 501 queries returns a small JSON response that must be serialized and transmitted, inflating total latency'): tested mechanism was per-row Python object construction cost, with query count held fixed at the observed 501 queries per call. Verdict FALSIFIED. Ratio of medians 0.9833 (baseline median 602.9ms, candidate median 613.2ms), 95% percentile-bootstrap CI [0.8963, 1.072]; committed band [2, open-ended]. Mann-Whitney raw p=0.6187, Holm-adjusted p=1 over 3 tested hypotheses at alpha 0.01. Practical threshold 2.0x not met. This result characterizes only the proxy mechanism; it does not conclusively confirm or rule out the original claim. This narrative is a plain string template computed from measured statistics, not an LLM output.",
   "output_matches_baseline": true,
   "significant": false,
   "statistics": {
    "all_values_identical": false,
    "alpha_family": 0.01,
    "baseline_median_ms": 602.915060999976,
    "bootstrap_seed": 3048407013034492290,
    "candidate_median_ms": 613.1813660000489,
    "ci_band_position": "below",
    "ci_level": 0.95,
    "ci_lower": 0.8963297763726027,
    "ci_method": "percentile",
    "ci_overlaps_band": false,
    "ci_upper": 1.072469189312523,
    "effect_band": {
     "high": null,
     "low": 2.0
    },
    "holm_family_size": 3,
    "holm_reject": false,
    "mann_whitney_alternative": "two-sided",
    "mann_whitney_method": "asymptotic",
    "mann_whitney_u": 100.0,
    "mann_whitney_use_continuity": true,
    "median_percent_reduction": -1.7027779971270807,
    "meets_practical_threshold": false,
    "n_baseline": 15,
    "n_candidate": 15,
    "n_resamples": 10000,
    "n_undefined_resamples": 0,
    "numpy_version": "2.5.3",
    "p_value_holm_adjusted": 1.0,
    "p_value_raw": 0.6186695570822622,
    "practical_threshold": 2.0,
    "ratio_of_medians": 0.9832573108556074,
    "scipy_version": "1.18.1"
   },
   "verdict_status": "FALSIFIED",
   "winner_eligible": false
  },
  "H3": {
   "correctness": {
    "checks": [
     {
      "baseline_row_count": 500,
      "baseline_sha256": "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
      "candidate_row_count": 500,
      "candidate_sha256": "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
      "customer_limit": 500,
      "match": true,
      "role": "primary"
     },
     {
      "baseline_row_count": 250,
      "baseline_sha256": "cbb7fca2aaac862a16950a7f48f30627edc28c00cc3bf87e444872e049f49e25",
      "candidate_row_count": 250,
      "candidate_sha256": "cbb7fca2aaac862a16950a7f48f30627edc28c00cc3bf87e444872e049f49e25",
      "customer_limit": 250,
      "match": true,
      "role": "held_out"
     }
    ],
    "digest_rounding_decimals": 2,
    "first_timed_trial_mismatch_index": null,
    "timed_trial_sha256": [
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b",
     "62001941066e399d3de05f9e625768845adff08838ec13c71204f2c9bc4b370b"
    ]
   },
   "effect_size_pct": -4.058946870467972,
   "narrative": "H3 ('Missing index causing slow query execution on the database side -- the individual per-customer queries likely scan large portions of the underlying table repeatedly, leading to high execution time per query'): tested mechanism was per-query execution cost with an index on orders.customer_id, fanout unchanged. Verdict FALSIFIED. Ratio of medians 0.961 (baseline median 602.9ms, candidate median 627.4ms), 95% percentile-bootstrap CI [0.8797, 1.069]; committed band [2, open-ended]. Mann-Whitney raw p=0.5897, Holm-adjusted p=1 over 3 tested hypotheses at alpha 0.01. Practical threshold 2.0x not met. This narrative is a plain string template computed from measured statistics, not an LLM output.",
   "output_matches_baseline": true,
   "significant": false,
   "statistics": {
    "all_values_identical": false,
    "alpha_family": 0.01,
    "baseline_median_ms": 602.915060999976,
    "bootstrap_seed": 14944923662858586390,
    "candidate_median_ms": 627.3870630000147,
    "ci_band_position": "below",
    "ci_level": 0.95,
    "ci_lower": 0.8796608492894722,
    "ci_method": "percentile",
    "ci_overlaps_band": false,
    "ci_upper": 1.0693252083729172,
    "effect_band": {
     "high": null,
     "low": 2.0
    },
    "holm_family_size": 3,
    "holm_reject": false,
    "mann_whitney_alternative": "two-sided",
    "mann_whitney_method": "asymptotic",
    "mann_whitney_u": 99.0,
    "mann_whitney_use_continuity": true,
    "median_percent_reduction": -4.058946870467972,
    "meets_practical_threshold": false,
    "n_baseline": 15,
    "n_candidate": 15,
    "n_resamples": 10000,
    "n_undefined_resamples": 0,
    "numpy_version": "2.5.3",
    "p_value_holm_adjusted": 1.0,
    "p_value_raw": 0.5897385933186072,
    "practical_threshold": 2.0,
    "ratio_of_medians": 0.9609937733127307,
    "scipy_version": "1.18.1"
   },
   "verdict_status": "FALSIFIED",
   "winner_eligible": false
  },
  "H4": {
   "correctness": null,
   "effect_size_pct": null,
   "narrative": "H4 ('Thread pool saturation from launching many concurrent queries -- spawning 501 queries per call may saturate the application's thread pool or executor, causing context\u2011switch overhead and higher latency') was not executed. Precondition check: Static scan of <local path redacted> found no thread-pool or async concurrency primitives (concurrency_primitives_detected=[]); customer_summary_slow issues all 501 queries synchronously via single_connection_per_call. The causal mechanism this hypothesis requires ('concurrent/thread-pooled query dispatch') is absent from the observed incident, so it is classified not_applicable rather than measured true or false. This narrative is a plain string template, not an LLM output.",
   "output_matches_baseline": null,
   "significant": false,
   "statistics": null,
   "verdict_status": "NOT_APPLICABLE",
   "winner_eligible": null
  }
 },
 "winner": "H1"
}
