{
  "schema": 1,
  "measured_source_commit": "f85d1f15d241821bb522d35c077db993cee4f5c2",
  "phase": {
    "id": 2,
    "title": "Bounded batch pipelines",
    "status": "Kept \u00b7 faster and smaller",
    "state": "kept",
    "detail": "Same three SF1 plans:24\u201327% less command time and96% less peak memory. All2,880,404 sales rows processed in44fact batches; two join builds reused. CSV control passed. Explicit supported batch mode.",
    "timed_calls": 16,
    "preflight_calls": 2,
    "cases": [
      {
        "case": "q03.json",
        "pairs": [
          {
            "wall_seconds": 0.7419073868745726,
            "rss_gib": 0.03984695547109019
          },
          {
            "wall_seconds": 0.7445808506303462,
            "rss_gib": 0.03969692392891305
          }
        ],
        "ratios": {
          "wall_seconds": 0.7432441187524594,
          "rss_gib": 0.03977193970000162
        },
        "passed": true
      },
      {
        "case": "q52.json",
        "pairs": [
          {
            "wall_seconds": 0.7629536020251502,
            "rss_gib": 0.03833664762000655
          },
          {
            "wall_seconds": 0.7494008215876657,
            "rss_gib": 0.03863968182047022
          }
        ],
        "ratios": {
          "wall_seconds": 0.756177211806408,
          "rss_gib": 0.03848816472023839
        },
        "passed": true
      },
      {
        "case": "q55.json",
        "pairs": [
          {
            "wall_seconds": 0.7260391206318824,
            "rss_gib": 0.03865038398589953
          },
          {
            "wall_seconds": 0.7306401764165623,
            "rss_gib": 0.038675563389147675
          }
        ],
        "ratios": {
          "wall_seconds": 0.7283396485242224,
          "rss_gib": 0.038662973687523604
        },
        "passed": true
      },
      {
        "case": "control.json",
        "pairs": [
          {
            "wall_seconds": 1.0279414379704812,
            "rss_gib": 1.0038698977241316
          },
          {
            "wall_seconds": 0.9686237168791231,
            "rss_gib": 0.9921601964673656
          }
        ],
        "ratios": {
          "wall_seconds": 0.9982825774248021,
          "rss_gib": 0.9980150470957486
        },
        "passed": true
      }
    ],
    "samples": [
      {
        "case": "q03.json",
        "round": 1,
        "version": "baseline",
        "wall_seconds": 1.2552162500000001,
        "rss_gib": 0.6061859130859375,
        "parse_ms": 567.4932090000001,
        "operator_ms": 142.40262499999997,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "q03.json",
        "round": 1,
        "version": "candidate",
        "wall_seconds": 0.9312542080000004,
        "rss_gib": 0.0241546630859375,
        "parse_ms": 787.127832,
        "operator_ms": 134.01142199999992,
        "difference": null,
        "batch_stats": {
          "fact_rows": 2880404,
          "fact_bytes": 229128566,
          "fact_batches": 44,
          "peak_batch_rows": 65536,
          "peak_batch_bytes": 3868634,
          "right_builds": 2,
          "right_rows": 91049,
          "right_encoded_input_bytes": 5310164,
          "join_stage_output_rows_total": 439368,
          "groups": 89,
          "peak_tracked_bytes": 67249766,
          "configured_budget_bytes": 536870912,
          "memory_scope": "Tracked operator capacities/admission, not an allocator or process RSS ceiling",
          "parse_clock": "Source file reads, bounded JSON scanning/decoding/projection and dimension appends; table-mode text parse_ms excludes file reads",
          "operator_clock": "Dimension filters, reusable hash builds, every batch probe/gather/group update, aggregate finalization and suffix processors"
        }
      },
      {
        "case": "q52.json",
        "round": 1,
        "version": "baseline",
        "wall_seconds": 1.223638083,
        "rss_gib": 0.6061859130859375,
        "parse_ms": 565.603709,
        "operator_ms": 124.263833,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "q52.json",
        "round": 1,
        "version": "candidate",
        "wall_seconds": 0.9335790829999997,
        "rss_gib": 0.0232391357421875,
        "parse_ms": 812.6881249999998,
        "operator_ms": 110.31278999999996,
        "difference": null,
        "batch_stats": {
          "fact_rows": 2880404,
          "fact_bytes": 229128566,
          "fact_batches": 44,
          "peak_batch_rows": 65536,
          "peak_batch_bytes": 3868634,
          "right_builds": 2,
          "right_rows": 91049,
          "right_encoded_input_bytes": 5310164,
          "join_stage_output_rows_total": 90253,
          "groups": 109,
          "peak_tracked_bytes": 66300899,
          "configured_budget_bytes": 536870912,
          "memory_scope": "Tracked operator capacities/admission, not an allocator or process RSS ceiling",
          "parse_clock": "Source file reads, bounded JSON scanning/decoding/projection and dimension appends; table-mode text parse_ms excludes file reads",
          "operator_clock": "Dimension filters, reusable hash builds, every batch probe/gather/group update, aggregate finalization and suffix processors"
        }
      },
      {
        "case": "q55.json",
        "round": 1,
        "version": "baseline",
        "wall_seconds": 1.2548753340000003,
        "rss_gib": 0.6060028076171875,
        "parse_ms": 575.087167,
        "operator_ms": 119.22137500000001,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "q55.json",
        "round": 1,
        "version": "candidate",
        "wall_seconds": 0.9110885839999998,
        "rss_gib": 0.0234222412109375,
        "parse_ms": 795.42425,
        "operator_ms": 106.3458,
        "difference": null,
        "batch_stats": {
          "fact_rows": 2880404,
          "fact_bytes": 229128566,
          "fact_batches": 44,
          "peak_batch_rows": 65536,
          "peak_batch_bytes": 3868634,
          "right_builds": 2,
          "right_rows": 91049,
          "right_encoded_input_bytes": 5310164,
          "join_stage_output_rows_total": 88026,
          "groups": 104,
          "peak_tracked_bytes": 66288967,
          "configured_budget_bytes": 536870912,
          "memory_scope": "Tracked operator capacities/admission, not an allocator or process RSS ceiling",
          "parse_clock": "Source file reads, bounded JSON scanning/decoding/projection and dimension appends; table-mode text parse_ms excludes file reads",
          "operator_clock": "Dimension filters, reusable hash builds, every batch probe/gather/group update, aggregate finalization and suffix processors"
        }
      },
      {
        "case": "control.json",
        "round": 1,
        "version": "baseline",
        "wall_seconds": 0.12653249999999971,
        "rss_gib": 0.1656036376953125,
        "parse_ms": 6.259833,
        "operator_ms": 11.540458000000001,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "control.json",
        "round": 1,
        "version": "candidate",
        "wall_seconds": 0.13006799999999963,
        "rss_gib": 0.1662445068359375,
        "parse_ms": 7.083625,
        "operator_ms": 12.257917,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "control.json",
        "round": 2,
        "version": "candidate",
        "wall_seconds": 0.12690124999999952,
        "rss_gib": 0.1602783203125,
        "parse_ms": 6.91575,
        "operator_ms": 11.709999,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "control.json",
        "round": 2,
        "version": "baseline",
        "wall_seconds": 0.13101191700000037,
        "rss_gib": 0.1615447998046875,
        "parse_ms": 7.263542,
        "operator_ms": 13.189457999999998,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "q55.json",
        "round": 2,
        "version": "candidate",
        "wall_seconds": 0.9092514999999999,
        "rss_gib": 0.0234375,
        "parse_ms": 790.524625,
        "operator_ms": 109.28908299999999,
        "difference": null,
        "batch_stats": {
          "fact_rows": 2880404,
          "fact_bytes": 229128566,
          "fact_batches": 44,
          "peak_batch_rows": 65536,
          "peak_batch_bytes": 3868634,
          "right_builds": 2,
          "right_rows": 91049,
          "right_encoded_input_bytes": 5310164,
          "join_stage_output_rows_total": 88026,
          "groups": 104,
          "peak_tracked_bytes": 66288967,
          "configured_budget_bytes": 536870912,
          "memory_scope": "Tracked operator capacities/admission, not an allocator or process RSS ceiling",
          "parse_clock": "Source file reads, bounded JSON scanning/decoding/projection and dimension appends; table-mode text parse_ms excludes file reads",
          "operator_clock": "Dimension filters, reusable hash builds, every batch probe/gather/group update, aggregate finalization and suffix processors"
        }
      },
      {
        "case": "q55.json",
        "round": 2,
        "version": "baseline",
        "wall_seconds": 1.244458667,
        "rss_gib": 0.6060028076171875,
        "parse_ms": 579.332124,
        "operator_ms": 124.66404,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "q52.json",
        "round": 2,
        "version": "candidate",
        "wall_seconds": 0.9155354590000009,
        "rss_gib": 0.0234222412109375,
        "parse_ms": 794.4705430000001,
        "operator_ms": 111.11033099999997,
        "difference": null,
        "batch_stats": {
          "fact_rows": 2880404,
          "fact_bytes": 229128566,
          "fact_batches": 44,
          "peak_batch_rows": 65536,
          "peak_batch_bytes": 3868634,
          "right_builds": 2,
          "right_rows": 91049,
          "right_encoded_input_bytes": 5310164,
          "join_stage_output_rows_total": 90253,
          "groups": 109,
          "peak_tracked_bytes": 66300899,
          "configured_budget_bytes": 536870912,
          "memory_scope": "Tracked operator capacities/admission, not an allocator or process RSS ceiling",
          "parse_clock": "Source file reads, bounded JSON scanning/decoding/projection and dimension appends; table-mode text parse_ms excludes file reads",
          "operator_clock": "Dimension filters, reusable hash builds, every batch probe/gather/group update, aggregate finalization and suffix processors"
        }
      },
      {
        "case": "q52.json",
        "round": 2,
        "version": "baseline",
        "wall_seconds": 1.221689958999999,
        "rss_gib": 0.606170654296875,
        "parse_ms": 564.011499,
        "operator_ms": 118.937793,
        "difference": null,
        "batch_stats": null
      },
      {
        "case": "q03.json",
        "round": 2,
        "version": "candidate",
        "wall_seconds": 0.9413300419999988,
        "rss_gib": 0.0240631103515625,
        "parse_ms": 794.4098770000002,
        "operator_ms": 136.506412,
        "difference": null,
        "batch_stats": {
          "fact_rows": 2880404,
          "fact_bytes": 229128566,
          "fact_batches": 44,
          "peak_batch_rows": 65536,
          "peak_batch_bytes": 3868634,
          "right_builds": 2,
          "right_rows": 91049,
          "right_encoded_input_bytes": 5310164,
          "join_stage_output_rows_total": 439368,
          "groups": 89,
          "peak_tracked_bytes": 67249766,
          "configured_budget_bytes": 536870912,
          "memory_scope": "Tracked operator capacities/admission, not an allocator or process RSS ceiling",
          "parse_clock": "Source file reads, bounded JSON scanning/decoding/projection and dimension appends; table-mode text parse_ms excludes file reads",
          "operator_clock": "Dimension filters, reusable hash builds, every batch probe/gather/group update, aggregate finalization and suffix processors"
        }
      },
      {
        "case": "q03.json",
        "round": 2,
        "version": "baseline",
        "wall_seconds": 1.2642415409999987,
        "rss_gib": 0.606170654296875,
        "parse_ms": 575.455291,
        "operator_ms": 145.095625,
        "difference": null,
        "batch_stats": null
      }
    ],
    "scope": "Phase1 winner versus bounded batch execution. Full command is comparable; decode clocks differ. Fixed legacy million-row CSV control is not a TPC scale-factor dataset.",
    "evidence": "/evidence/bounded-engine-20261029-phase2.json"
  }
}
