{
  "schemaVersion": "protove-public-sql-evidence/v1",
  "experimentDate": "2026-08-20",
  "articleDate": "2026-09-21",
  "repository": "https://github.com/protove/KDT_TravelPlanner",
  "repositoryVisibility": "public",
  "personalContributionPullRequest": "https://github.com/protove/KDT_TravelPlanner/pull/366",
  "finalMeasuredSourceCommit": "1500d31294239f699923119a064b008300471800",
  "scope": "Local Compose synthetic fixtures, PostgreSQL and Redis. Not an AWS performance or production SLO result.",
  "sourceFiles": [
    {
      "path": "evidence/load-tests/scrum41-pr-full-20260820t1159-sql-round-trip-diagnostic/comparison.json",
      "sha256": "9284125b413032638d558a3c8b747d5f430962504620b3bd80995f6c4bdf014e",
      "kind": "local-evidence-snapshot"
    },
    {
      "path": "evidence/load-tests/scrum41-pr-full-20260820t1159-sql-round-trip-diagnostic/verdict.json",
      "sha256": "18ee6d81c0224281594ebae962e9474c2aac7c6ea580f240448ba3ade1a5b6f1",
      "kind": "local-evidence-snapshot"
    },
    {
      "path": "evidence/load-tests/scrum41-pr-full-20260820t1159-sql-round-trip-diagnostic/OPTIMIZATION_REPORT.md",
      "sha256": "a8f8eb3830800c17aeb38a87910a21bf79b29c4dc48e7ff82a31af88e6b80098",
      "kind": "local-evidence-snapshot"
    },
    {
      "path": "reference/observability/SCRUM-41_COMPOSE_DEPENDENCY_DIAGNOSTIC.md",
      "sha256": "3c57ad851b1d4f1e6e4f4a63339aefa585e3d29aec5ce360f175e215fd58bc62",
      "kind": "local-evidence-snapshot"
    },
    {
      "path": "reference/observability/SCRUM-41_TIMELINE_ORDER_BULK_UPDATE.md",
      "sha256": "a77d13bb8b8ae2354bd57926c23724f848ce6885dfcf5300bef95f8dc7df7dde",
      "kind": "local-evidence-snapshot"
    }
  ],
  "diagnosticSweep": {
    "itemCounts": [
      3,
      10,
      25,
      50,
      100,
      200
    ],
    "baselineReverseUpdateCallsPerRequest": [
      3,
      15,
      36,
      75,
      150,
      300
    ],
    "optimizedReverseUpdateCallsPerRequest": [
      1,
      1,
      1,
      1,
      1,
      1
    ],
    "replicates": 3,
    "modes": [
      "noop",
      "reverse"
    ],
    "validStages": 36
  },
  "initialDiagnosis": {
    "growingReorderLastToFirstQuartileP95Ratios": [
      3.073,
      3.033,
      3.773
    ],
    "growingReorderItemCountDurationSpearman": [
      0.996,
      0.978,
      0.996
    ],
    "fixedReorderLastToFirstQuartileP95Ratios": [
      0.834,
      1.134,
      0.96
    ],
    "maximumIndividualTimelineUpdateMeanExecutionMs": 0.098
  },
  "publicationPolicy": "Only aggregate results, repository-relative source paths and digests are published. Runtime inventory, user data and credentials are excluded. Evidence document hashes identify local snapshots; code hashes are recorded by the final comparison source seal.",
  "editorialAssets": [
    {
      "path": "apps/blog/public/images/posts/travelplanner-sql-round-trips/cover.png",
      "sha256": "de55958f0c18640a824ab3cbc312391e965d3821f9d07d71a1c5e89fead7fc7e",
      "type": "generated-from-verified-aggregate-data"
    },
    {
      "path": "apps/blog/public/images/posts/travelplanner-sql-round-trips/latency.svg",
      "sha256": "e7a7cf16cd9da4d4e4597ba1b0433320c4d5ce368eb81c30723cd83a02672e07",
      "type": "generated-from-verified-aggregate-data"
    },
    {
      "path": "apps/blog/public/images/posts/travelplanner-sql-round-trips/update-calls.svg",
      "sha256": "ac619634c97e1efa4dd66828d9512b66b6b637ae8b36eed6f62722f04fc0f56d",
      "type": "generated-from-verified-aggregate-data"
    }
  ]
}
