{
  "schema_version": 1,
  "measured_at": "2026-07-30T07:33:28.329756+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-interim-epoch7-2026-07-29T20:00",
    "checkpoint_path": "/ckpt/best.pt",
    "checkpoint_sha256": "7aca8bad07930190a63346468170b9e4f3a84ebb9e93c00b5460a503d39ce69a",
    "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": 0.9998
    },
    {
      "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.8971
    },
    {
      "file": "uhf33_570MHz_occupied.npy",
      "records": 20,
      "excess_over_control_db": 34.33,
      "label": "occupied",
      "class_counts": {
        "DVB-T": 20
      },
      "occupied": 18,
      "occupancy_correct": false,
      "nearest_correct_class": "DVB-T",
      "nearest_correct_count": 20,
      "mean_confidence": 0.8143
    },
    {
      "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.998
    },
    {
      "file": "uhf39_618MHz_occupied.npy",
      "records": 20,
      "excess_over_control_db": 11.59,
      "label": "occupied",
      "class_counts": {
        "Noise": 9,
        "Unknown": 11
      },
      "occupied": 0,
      "occupancy_correct": false,
      "nearest_correct_class": "DVB-T",
      "nearest_correct_count": 0,
      "mean_confidence": 0.8875
    }
  ],
  "summary": {
    "channels": 5,
    "occupancy_correct_channels": 2,
    "nearest_correct_class_channels": 3,
    "records": 100,
    "records_occupied": 58,
    "records_nearest_correct_class": 60,
    "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."
  ]
}
