{
  "testId": "SAIL-165",
  "testNumber": "3.1",
  "name": "model-yolo26-swap",
  "phase": "PRE-RELABEL BASELINE",
  "generatedAt": "2026-09-07T14:13:29.492394+00:00",
  "productQuestion": "Does swapping our finder to YOLO26-pose find more closely stacked and faint bottom stripes?",
  "status": "blocked_data_integrity",
  "productVerdict": "indeterminate",
  "bottomLine": "Unknown: no demonstrated improvement for a sailor. YOLO26 training and paired inference did not run; the delta versus current SailScan v26 is unmeasured.",
  "whatItMeansForSailScan": "The NMS-free hypothesis remains untested. The current input snapshot contains a test fixture instead of a photo and unresolved image/label frame conflicts. Establish the correct frames and source image before measuring the finder swap; otherwise a recall difference could be a data error.",
  "holdout": {
    "file": "server/inference/test-holdout-ids-canonical.json",
    "frozen": "2026-08-25",
    "count": 332,
    "sha256": "a49d9139d6eac54951c4c3e257770855192a75f8c941799ef4141c49a4c11243",
    "idsChanged": false,
    "trainOverlap": 0,
    "validationOverlap": 0,
    "missingIds": [],
    "unresolvedFrameIds": [
      "68ccaf678f1d2c0cda50c1a7",
      "69c44d5c8c718d5d543a2010",
      "69cea47eed067217da126fc4"
    ]
  },
  "execution": {
    "cloudAccessAvailable": true,
    "podAllocated": true,
    "podId": "ubgu8igk4t349a",
    "gpuRequested": "NVIDIA RTX A5000",
    "advertisedUsdPerHour": 0.27,
    "podTerminated": true,
    "gpuTrainingStarted": false,
    "completedEpochs": 0,
    "candidateWeightsProduced": false,
    "newBaselinePhotosInferred": 0,
    "candidatePhotosInferred": 0,
    "localHeavyTraining": false,
    "setupExecutedOnPod": false,
    "whyStopped": "CPU preflight failed before training: unreadable retained image and unresolved EXIF frame provenance. This was not a RunPod capacity/authentication failure. Pod was still initializing when terminated.",
    "notRun": [
      "GPU venv installation and model-head assertion",
      "YOLO dataset preparation",
      "YOLO26 training",
      "paired incumbent/candidate holdout inference",
      "full production pipeline comparison",
      "faint/stacked slice evaluation"
    ]
  },
  "inputAudit": {
    "status": "blocked_data_integrity",
    "inputRecords": 4956,
    "gatedRecords": 4323,
    "metadataSplitCounts": {
      "train": 3421,
      "val": 538,
      "test": 364
    },
    "holdoutFile": "test-holdout-ids-canonical.json",
    "holdoutFrozen": "2026-08-25",
    "holdoutSha256": "a49d9139d6eac54951c4c3e257770855192a75f8c941799ef4141c49a4c11243",
    "canonicalHoldout": 332,
    "missingHoldout": [],
    "leakedHoldout": [],
    "invalidImages": [
      {
        "id": "35e717a7-ca96-464b-a424-d609ca04ea1d",
        "split": "train",
        "canonicalHoldout": false,
        "error": "cannot identify image file '/Volumes/MacMiniExtra/Projects/boats/server/inference/training-data-mixed/images/app__35e717a7-ca96-464b-a424-d609ca04ea1d.jpg'",
        "bytes": 24
      }
    ],
    "frameConflicts": [
      {
        "id": "68bf318c58038aac44157e21",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1600,
          2133
        ],
        "rawSize": [
          1600,
          2133
        ],
        "uprightSize": [
          2133,
          1600
        ]
      },
      {
        "id": "68ccaf678f1d2c0cda50c1a7",
        "split": "test",
        "canonicalHoldout": true,
        "orientation": 6,
        "labelSize": [
          1600,
          1200
        ],
        "rawSize": [
          1600,
          1200
        ],
        "uprightSize": [
          1200,
          1600
        ]
      },
      {
        "id": "69052d835821020fc4dbf748",
        "split": "val",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1600,
          2133
        ],
        "rawSize": [
          1600,
          2133
        ],
        "uprightSize": [
          2133,
          1600
        ]
      },
      {
        "id": "69127135e05a8133399d0283",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1440,
          1920
        ],
        "rawSize": [
          1440,
          1920
        ],
        "uprightSize": [
          1920,
          1440
        ]
      },
      {
        "id": "6927371a99113bd5e245012c",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1600,
          1200
        ],
        "rawSize": [
          1600,
          1200
        ],
        "uprightSize": [
          1200,
          1600
        ]
      },
      {
        "id": "692d58d73334ff75ab7b2791",
        "split": "val",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1600,
          1200
        ],
        "rawSize": [
          1600,
          1200
        ],
        "uprightSize": [
          1200,
          1600
        ]
      },
      {
        "id": "6970988d3763c4e1ac2e11cd",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 5,
        "labelSize": [
          1200,
          1599
        ],
        "rawSize": [
          1200,
          1599
        ],
        "uprightSize": [
          1599,
          1200
        ]
      },
      {
        "id": "6983d41a3b15d0ca7a33597a",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1600,
          2133
        ],
        "rawSize": [
          1600,
          2133
        ],
        "uprightSize": [
          2133,
          1600
        ]
      },
      {
        "id": "698da59b495f31e65b068ab6",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 5,
        "labelSize": [
          1200,
          1599
        ],
        "rawSize": [
          1200,
          1599
        ],
        "uprightSize": [
          1599,
          1200
        ]
      },
      {
        "id": "698dbf7a495f31e65b068ab9",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 5,
        "labelSize": [
          1200,
          1599
        ],
        "rawSize": [
          1200,
          1599
        ],
        "uprightSize": [
          1599,
          1200
        ]
      },
      {
        "id": "6994b0cf66293f7fd25a5141",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          600,
          800
        ],
        "rawSize": [
          600,
          800
        ],
        "uprightSize": [
          800,
          600
        ]
      },
      {
        "id": "69970f436a4cc508426dbba6",
        "split": "val",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1440,
          1920
        ],
        "rawSize": [
          1440,
          1920
        ],
        "uprightSize": [
          1920,
          1440
        ]
      },
      {
        "id": "69b7f2a7cb608188571566b7",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 5,
        "labelSize": [
          1200,
          1599
        ],
        "rawSize": [
          1200,
          1599
        ],
        "uprightSize": [
          1599,
          1200
        ]
      },
      {
        "id": "69bc2539f447c9b658333c9f",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1600,
          2133
        ],
        "rawSize": [
          1600,
          2133
        ],
        "uprightSize": [
          2133,
          1600
        ]
      },
      {
        "id": "69bc263ef447c9b658333ca0",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1600,
          2133
        ],
        "rawSize": [
          1600,
          2133
        ],
        "uprightSize": [
          2133,
          1600
        ]
      },
      {
        "id": "69c2efc6613f65a9f096f91d",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1536,
          2048
        ],
        "rawSize": [
          1536,
          2048
        ],
        "uprightSize": [
          2048,
          1536
        ]
      },
      {
        "id": "69c44c908c718d5d543a200f",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1600,
          2844
        ],
        "rawSize": [
          1600,
          2844
        ],
        "uprightSize": [
          2844,
          1600
        ]
      },
      {
        "id": "69c44d5c8c718d5d543a2010",
        "split": "test",
        "canonicalHoldout": true,
        "orientation": 8,
        "labelSize": [
          1600,
          2844
        ],
        "rawSize": [
          1600,
          2844
        ],
        "uprightSize": [
          2844,
          1600
        ]
      },
      {
        "id": "69c44ff8873550ef9299bea6",
        "split": "val",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1600,
          2844
        ],
        "rawSize": [
          1600,
          2844
        ],
        "uprightSize": [
          2844,
          1600
        ]
      },
      {
        "id": "69c4511e407e8b260369f4a7",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1600,
          2844
        ],
        "rawSize": [
          1600,
          2844
        ],
        "uprightSize": [
          2844,
          1600
        ]
      },
      {
        "id": "69cc2cf6b808bf7afc49fbf8",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          960,
          1280
        ],
        "rawSize": [
          960,
          1280
        ],
        "uprightSize": [
          1280,
          960
        ]
      },
      {
        "id": "69cea47eed067217da126fc4",
        "split": "test",
        "canonicalHoldout": true,
        "orientation": 8,
        "labelSize": [
          1600,
          2133
        ],
        "rawSize": [
          1600,
          2133
        ],
        "uprightSize": [
          2133,
          1600
        ]
      },
      {
        "id": "69d545ad7714997a7adce6b6",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1536,
          2048
        ],
        "rawSize": [
          1536,
          2048
        ],
        "uprightSize": [
          2048,
          1536
        ]
      },
      {
        "id": "69e83c0bf01f76b6242ecfbe",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1440,
          1920
        ],
        "rawSize": [
          1440,
          1920
        ],
        "uprightSize": [
          1920,
          1440
        ]
      },
      {
        "id": "69ea5a9eda0bdee6ef4a2ad0",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1536,
          2048
        ],
        "rawSize": [
          1536,
          2048
        ],
        "uprightSize": [
          2048,
          1536
        ]
      },
      {
        "id": "69ea5bbcda0bdee6ef4a2ad1",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1536,
          2048
        ],
        "rawSize": [
          1536,
          2048
        ],
        "uprightSize": [
          2048,
          1536
        ]
      },
      {
        "id": "69f8cea4ea23d5ac8b291715",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1536,
          2048
        ],
        "rawSize": [
          1536,
          2048
        ],
        "uprightSize": [
          2048,
          1536
        ]
      },
      {
        "id": "69fe3c90a21d8b7ab38d0bd2",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 6,
        "labelSize": [
          1600,
          2133
        ],
        "rawSize": [
          1600,
          2133
        ],
        "uprightSize": [
          2133,
          1600
        ]
      },
      {
        "id": "6a1dea4c4d15a0ffad42f713",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1200,
          1600
        ],
        "rawSize": [
          1200,
          1600
        ],
        "uprightSize": [
          1600,
          1200
        ]
      },
      {
        "id": "6a1dec2f4d15a0ffad42f714",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1200,
          1600
        ],
        "rawSize": [
          1200,
          1600
        ],
        "uprightSize": [
          1600,
          1200
        ]
      },
      {
        "id": "6a1ded384d15a0ffad42f715",
        "split": "val",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1200,
          1600
        ],
        "rawSize": [
          1200,
          1600
        ],
        "uprightSize": [
          1600,
          1200
        ]
      },
      {
        "id": "6a2aadf2f24e2bd18f3d451b",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1536,
          2048
        ],
        "rawSize": [
          1536,
          2048
        ],
        "uprightSize": [
          2048,
          1536
        ]
      },
      {
        "id": "6a392e0b8c6926f954e579ff",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          1200,
          1600
        ],
        "rawSize": [
          1200,
          1600
        ],
        "uprightSize": [
          1600,
          1200
        ]
      },
      {
        "id": "6a43b7c25d7865a23e87f2b2",
        "split": "train",
        "canonicalHoldout": false,
        "orientation": 8,
        "labelSize": [
          627,
          835
        ],
        "rawSize": [
          627,
          835
        ],
        "uprightSize": [
          835,
          627
        ]
      }
    ],
    "note": "Metadata split audit only. Not YOLO loader counts. Frame conflicts require provenance review; dimension evidence does not authorize rotating labels. Test split includes additional test-only records/crop siblings; evaluation remains exactly canonical 332."
  },
  "metrics": {
    "candidateBottomRecall": null,
    "bottomRecallDeltaPercentagePoints": null,
    "candidateFaintRecall": null,
    "faintRecallDeltaPercentagePoints": null,
    "candidateStackedRecall": null,
    "stackedRecallDeltaPercentagePoints": null,
    "candidatePrecision": null,
    "additionalFalsePositives": null,
    "betterForSailor": null
  },
  "historicalIncumbentContext": {
    "source": "server/inference/runs/prod-baseline-20260825/report.json",
    "sha256": "538be36469f87621c0028c6420b8017ce1eee720cb3f89c1a09d70f445c5d541",
    "modelVersion": "sailscan-v26",
    "architecture": "YOLOv8m-pose",
    "holdoutFile": "server/inference/test-holdout-ids-canonical.json",
    "holdoutFrozen": "2026-08-25",
    "sourceReportedValidity": {
      "status": "complete",
      "scored": 332,
      "expected": 332,
      "skipped": 0,
      "modelVersions": [
        "sailscan-v26"
      ],
      "note": "complete single-version run"
    },
    "bottomMatched": 300,
    "bottomTotal": 332,
    "bottomRecall": 0.9036144578313253,
    "bottomRecallPercent": 90.36144578313252,
    "bottomMissed": 32,
    "linesPerfect": 259,
    "linesPerfectTotal": 332,
    "linesPerfectPercent": 78.01204819277109,
    "newMeasurement": false,
    "caveat": "Historical cached report only; not rerun or newly frame-validated. Three canonical photos have unresolved frame provenance in the present local snapshot. This is not a matched YOLO26 comparison."
  },
  "runSetup": {
    "candidate": "yolo26m-pose.pt",
    "incumbent": "models/sailscan-v26-curvature.pt",
    "ultralyticsPin": "8.4.142",
    "incumbentTrainingUltralyticsPin": "8.4.92",
    "torchPin": "2.8.0",
    "torchvisionPin": "0.23.0",
    "epochsPlanned": 100,
    "batch": 8,
    "imgsz": 960,
    "keypointSampling": "curvature",
    "keypointsPerStripe": 8,
    "seed": 0,
    "degrees": 30,
    "flipud": 0.3,
    "erasing": 0.4,
    "hsvV": 0.6,
    "labelsSnapshot": "training-data-mixed/labels.jsonl",
    "inputHashes": {
      "train.py": "a6cd77fe9a89dbd9d7ca141b04d68e06f54cb1e91e22c809ec91cd003ab5f5a9",
      "test-holdout-ids-canonical.json": "a49d9139d6eac54951c4c3e257770855192a75f8c941799ef4141c49a4c11243",
      "training-data-mixed/labels.jsonl": "39a276e6256a8d28e4bcb6ae782592291423203dec7abbf26a8319dfb7e71441",
      "excluded.json": "e90e20579b69f0891846bfd2ed22c5c910c0010f182492c701474e47cf5a1784",
      "models/sailscan-v26-curvature.pt": "0086b5d5caa7b6001408d355f21efa50a22048e836562456ac2a7839534689ae",
      "prod_baseline_score.mjs": "3f7a864e935cb562dd12e56a7a109dd0353d1d2202ad65899bc2a8f5b46601fa"
    },
    "launcher": "server/inference/experiments/sail165-yolo26/run-on-pod.sh",
    "protocol": "server/inference/experiments/sail165-yolo26/README.md",
    "preflight": "server/inference/experiments/sail165-yolo26/preflight.py"
  },
  "measurementLimitations": [
    "No yes/no result about NMS-free stripe separation is supported. Null means unmeasured, not zero improvement.",
    "Gate 0 uncapped greedy recall is not spatially gated recall; use the existing holdout suite optimal matching and 1/2/3/5%-diagonal cap sweep.",
    "Faintness and closely stacked slices were not human-tagged for this experiment; do not substitute low confidence for faintness.",
    "Swapping architecture also changes heads/losses; comparing newly trained current labels with an older incumbent does not isolate the causal effect of NMS.",
    "Metadata split counts (3421 train, 538 validation, 364 test-only records) are pre-loader counts, not completed training counts. The canonical scoring denominator remains 332."
  ],
  "guardrails": {
    "holdoutNeverTrained": true,
    "weightsPromoted": false,
    "cloudflareDeployed": false,
    "indexHtmlEdited": false,
    "gitCommitted": false
  },
  "sources": [
    "https://docs.ultralytics.com/models/yolo26/",
    "https://docs.ultralytics.com/guides/end2end-detection/",
    "https://pypi.org/project/ultralytics/8.4.142/"
  ]
}
