{
  "schema_version": 1,
  "measured_at": "2026-07-30T07:55:11.979117+00:00",
  "harness": "scripts/eval-ota-checkpoint.py",
  "harness_note": "Runs the service's own load_model + InferenceEngine.infer, not a reimplementation. The (H,W,C)->(C,H,W) transpose lives inside InferenceEngine.infer.",
  "model_identity": {
    "model_label": "fixC-final-epoch17-valacc0.9511-2026-07-30",
    "checkpoint_path": "/ckpt/best.pt",
    "checkpoint_sha256": "038d32176653d11ae0a998b4a1fa3df5de68a67ca8c741024d375c6fd7737973",
    "self_describing": true,
    "note": "checkpoint_sha256 pins a FILE. It does NOT prove that any endpoint serves these weights."
  },
  "confidence_threshold": 0.7,
  "dataset": {
    "dir": "/ota",
    "is_ota": true,
    "site": "Nairobi region, Kenya",
    "antenna_matched_to_band": false,
    "control_floor_dbfs": -59.9,
    "all_labelled_occupied": true
  },
  "channels": [
    {
      "file": "uhf25_506MHz_occupied.npy",
      "records": 20,
      "excess_over_control_db": 15.96,
      "label": "occupied",
      "class_counts": {
        "DVB-T": 20
      },
      "occupied": 20,
      "occupancy_correct": true,
      "nearest_correct_class": "DVB-T",
      "nearest_correct_count": 20,
      "mean_confidence": 1.0
    },
    {
      "file": "uhf32_562MHz_occupied.npy",
      "records": 20,
      "excess_over_control_db": 29.1,
      "label": "occupied",
      "class_counts": {
        "Noise": 20
      },
      "occupied": 0,
      "occupancy_correct": false,
      "nearest_correct_class": "DVB-T",
      "nearest_correct_count": 0,
      "mean_confidence": 0.9985
    },
    {
      "file": "uhf33_570MHz_occupied.npy",
      "records": 20,
      "excess_over_control_db": 34.33,
      "label": "occupied",
      "class_counts": {
        "Noise": 20
      },
      "occupied": 0,
      "occupancy_correct": false,
      "nearest_correct_class": "DVB-T",
      "nearest_correct_count": 0,
      "mean_confidence": 0.9812
    },
    {
      "file": "uhf35_586MHz_occupied.npy",
      "records": 20,
      "excess_over_control_db": 31.05,
      "label": "occupied",
      "class_counts": {
        "DVB-T": 20
      },
      "occupied": 20,
      "occupancy_correct": true,
      "nearest_correct_class": "DVB-T",
      "nearest_correct_count": 20,
      "mean_confidence": 0.9997
    },
    {
      "file": "uhf39_618MHz_occupied.npy",
      "records": 20,
      "excess_over_control_db": 11.59,
      "label": "occupied",
      "class_counts": {
        "Noise": 15,
        "Unknown": 5
      },
      "occupied": 0,
      "occupancy_correct": false,
      "nearest_correct_class": "DVB-T",
      "nearest_correct_count": 0,
      "mean_confidence": 0.9394
    }
  ],
  "summary": {
    "channels": 5,
    "occupancy_correct_channels": 2,
    "nearest_correct_class_channels": 2,
    "records": 100,
    "records_occupied": 40,
    "records_nearest_correct_class": 40,
    "record_level_note": "Channel counting is all-or-nothing and hides movement: a channel going 0/20 -> 18/20 occupied still reads as one failed channel. Compare checkpoints on the record-level rate as well."
  },
  "caveats": [
    "Captures are DVB-T2; the model has no DVB-T2 class. DVB-T is nearest.",
    "Received through a mismatched 860-930 MHz antenna at 470-700 MHz.",
    "Proves nothing about vacant channels \u2014 no vacant captures exist here."
  ]
}
