{
  "schemaVersion": "scrum41-timeline-order-optimization-comparison/v1",
  "jiraKey": "SCRUM-41",
  "generatedAtUtc": "2026-08-20T12:15:46.812138Z",
  "baselineCampaignId": "scrum41-sql-full-20260820",
  "optimizedCampaignId": "scrum41-pr-full-20260820t1159",
  "smoke": false,
  "thresholds": {
    "reverseUpdateCallsTolerance": 0.05,
    "reverseUpdateRowsTolerance": 0.05,
    "totalSqlCallsRatioMax": 1.25,
    "updateReductionMin": 0.99,
    "apiP95MedianFactorMax": 0.7,
    "dbExecMedianFactorMax": 0.5,
    "p95RatioMax": 2.0,
    "agreementMin": 2
  },
  "baselineMetrics": {
    "n200ReverseApiP95MedianMs": 83.106,
    "n200ReverseDbExecMedianMs": 13.3254025,
    "n200ReverseUpdateCallsPerRequest": 300.0,
    "observedApiP95MedianMs": 83.10589595,
    "observedDbExecMedianMs": 13.325402500000047,
    "fixedMetricsMatch": true
  },
  "optimizedMetrics": {
    "n200ReverseApiP95MedianMs": 24.330378949999975,
    "n200ReverseDbExecMedianMs": 2.2868167666666666
  },
  "hardChecks": {
    "stageCount": {
      "actual": 36,
      "expected": 36,
      "pass": true
    },
    "stageMatrixExact": {
      "pass": true,
      "errors": []
    },
    "validEvidence": {
      "actual": true,
      "pass": true
    },
    "noopUpdateCallsZero": {
      "pass": true
    },
    "reverseUpdateCallsOne": {
      "pass": true
    },
    "reverseUpdatedRowsPerRequestItemCount": {
      "pass": true
    },
    "deadlocksAndErrorsZero": {
      "pass": true
    }
  },
  "replicates": [
    {
      "replicate": 1,
      "totalSqlCallsRatio200To3": 1.0902255639097742,
      "reverseApiP95Ratio200To3": 1.0303609531158098,
      "reverseNoopApiP95RatioAt200": 1.6358717331446209,
      "n200ReverseUpdateReduction": 0.9966666666666667,
      "sqlRatioPass": true,
      "p95RatioPass": true,
      "updateReductionPass": true
    },
    {
      "replicate": 2,
      "totalSqlCallsRatio200To3": 1.0,
      "reverseApiP95Ratio200To3": 2.337667676843457,
      "reverseNoopApiP95RatioAt200": 1.7672549474106605,
      "n200ReverseUpdateReduction": 0.9966666666666667,
      "sqlRatioPass": true,
      "p95RatioPass": false,
      "updateReductionPass": true
    },
    {
      "replicate": 3,
      "totalSqlCallsRatio200To3": 1.0,
      "reverseApiP95Ratio200To3": 1.9570302966173847,
      "reverseNoopApiP95RatioAt200": 1.362021573861782,
      "n200ReverseUpdateReduction": 0.9966666666666667,
      "sqlRatioPass": true,
      "p95RatioPass": true,
      "updateReductionPass": true
    }
  ],
  "aggregateChecks": {
    "sqlCallsRatioAgreementPass": true,
    "updateReductionAllReplicatesPass": true,
    "apiP95MedianPass": true,
    "dbExecMedianPass": true,
    "p95RatioAgreementPass": true,
    "latencyAvailable": true,
    "sqlPass": true,
    "latencyPass": true
  },
  "sourceDigests": {
    "baseline": {
      "profile": "6e33f856fbc380c578b576634370814e76f419b381b0f344a9b93324b7ec2172",
      "effectiveProfile": "a8bc64d51af49f7c1cfad11a7561dda0a03499d9de8d4445694b3ada6f3e79da",
      "overlay": "0e0ae0569367b9970890034e1719e90db2496493fb160c0515d3120c48d22fd1",
      "prometheus": "b4e88106231593b87477e75f2e7e246052b4171bba63159d39a4b3867cb2cc3f",
      "dashboard": "e13bf2f778506c762312d47e87e616759e9e6e8073302c637016d3c5ac3eea8e",
      "k6Image": "7ba1517eac57b21ef7d10ce531a8022082992478beb6636b30f8cc50d77a4aa8",
      "pushgatewayImage": "675f1ce542eb2e4a65950d76eb0aff80d2dba5ee9483c15783bc38b81f5c9416"
    },
    "optimized": {
      "profile": "6e33f856fbc380c578b576634370814e76f419b381b0f344a9b93324b7ec2172",
      "effectiveProfile": "a8bc64d51af49f7c1cfad11a7561dda0a03499d9de8d4445694b3ada6f3e79da",
      "overlay": "0e0ae0569367b9970890034e1719e90db2496493fb160c0515d3120c48d22fd1",
      "prometheus": "b4e88106231593b87477e75f2e7e246052b4171bba63159d39a4b3867cb2cc3f",
      "dashboard": "e13bf2f778506c762312d47e87e616759e9e6e8073302c637016d3c5ac3eea8e",
      "k6Image": "7ba1517eac57b21ef7d10ce531a8022082992478beb6636b30f8cc50d77a4aa8",
      "pushgatewayImage": "675f1ce542eb2e4a65950d76eb0aff80d2dba5ee9483c15783bc38b81f5c9416",
      "sourceCommit": "1500d31294239f699923119a064b008300471800",
      "sourceFiles": {
        "backend/src/main/resources/db/migration/V19__defer_timeline_order_unique_constraint.sql": "515d2f6d3376157f9d1964eb2ad72e0d5020adecb83fa5be6fca01769c8c601b",
        "backend/src/main/kotlin/com/ktcloud/travelplanner/timeline/repository/TimelineItemOrderRepository.kt": "9331c1a9918362f22af68ac43aa9149d0d316656d824adedf40305d23fe252b7",
        "backend/src/main/kotlin/com/ktcloud/travelplanner/timeline/repository/JdbcTimelineItemOrderRepository.kt": "a143f9b359c3033d3131bd7a60fb3ae2c5ef54e342c6a9b1f8a4d7baddb14cbe",
        "backend/src/main/kotlin/com/ktcloud/travelplanner/timeline/service/TimelineItemOrderUpdateService.kt": "9e462e393c192a917aa4d5d65c71ffda0998eb1ef91c6cae53b66a1d3562155b",
        "scripts/loadtest/run-compose-sql-round-trip-diagnostic.py": "e3ab80ee2a80c53a0ca87df76f8130f109b2b2c65fbd8afbf0f41e5961eb9408",
        "scripts/loadtest/summarize-compose-sql-round-trip-diagnostic.py": "074693767fec012ffb57620f0b271d576dc4d119c9d03753b8e34fbc82f3d3c5",
        "scripts/loadtest/verify-compose-sql-diagnostic-evidence.py": "202121b5c0e6f6479817de366a72ec879f66fcd8d25b723f0b4ea838e25f420d",
        "load-tests/k6/flows/sql-round-trip-diagnostic.js": "680c62edd7245498adfcf345769d1a5901e9376f8900f5cfa82863b25fa5a04b",
        "load-tests/k6/scenarios/sql-round-trip-diagnostic.js": "bfcd40f8c6636cefed27b17354e7e32b2ce0c4e0d8bfa8ee21d243e6aa83184a"
      }
    }
  },
  "errors": []
}
