Pattern2026-08-247 min

I had enough data to spend money on a GPU. I did not have enough evidence to train.

Why the Swing Trainer RunPod gate stops at provenance, frozen splits, and real five-point labels—even with thousands of images already staged.

I had enough data to spend money on a GPU. I did not have enough evidence to train.

There is a dangerous moment in every machine-learning project when the files exist, the cloud GPU is one click away, and starting a run feels more productive than asking whether the run can teach you anything.

Swing Trainer reached that moment with thousands of golf images staged on the Code Drive. We could have normalized the labels, launched RunPod, and had a loss curve by morning.

We stopped instead.

Compute readiness is not research readiness

A training job needs tensors. A product decision needs provenance, compatible semantics, leakage-resistant splits, and a test set capable of falsifying the model.

Those are different thresholds.

Our staged Roboflow material can support detector pretraining and relabeling. It cannot support a headline five-point accuracy claim because it does not contain final-schema five-point truth. Starting the expensive stage before resolving that distinction would produce a model artifact without producing trustworthy knowledge.

The gate has six locks

Before paid training, every source needs an exact version, a preserved license snapshot, media and annotation provenance, SHA-256 checksums, an intended-use classification, and a documented mapping into the target schema. Unknown does not mean probably fine. Unknown means blocked.

Then the split has to be frozen by golfer and source group. Frames from the same video are near-duplicates. Cropping them or sampling every tenth frame does not create independent evidence. If one golfer or one original clip appears in both training and test, the model can look excellent while learning appearance, background, or recording artifacts.

The split manifest is hashed before training. Changing it creates a new dataset version. No quiet reshuffle after seeing the score.

The missing cases stay in the score

The future evaluation report will count every observed and unobserved landmark state, every missing prediction, and every unexpected prediction. It will report error distributions by camera view instead of one flattering mean.

This matters because the hardest moments—blur, occlusion, partial framing, the club leaving the image—are also the moments a coaching product is most tempted to smooth over. Dropping those frames would improve the metric and destroy the measurement.

Hard negatives get their own categories: static clubs, shadows, golf-like objects, people without clubs, partial frames, and motion without a club. A difficult positive is never relabeled as a negative merely because the model would prefer it.

What stopping bought us

Stopping kept compute spend at zero. More importantly, it prevented the first model from becoming an accidental source of truth. Once a dashboard says 92 percent, every later conversation bends around the number—even if the test set leaked or the labels meant something else.

We now have a more valuable artifact than an early checkpoint: a training gate that can tell us exactly what is missing. Author permission. Target-schema labels. Owned high-frame-rate footage. Frozen golfer-disjoint evaluation. Physical-device evidence.

The run will start when those things are true, not when the GPU is available. In machine learning, knowing when not to train is part of the model.