{
 "schema": "recourse.sat-scorecard/1",
 "preregistrationHash": "0xfb2e9b7c62c685cf41695ce7b864b748d6c62109f76fd2b2b4e7d1ec6e299725",
 "modelSha256": "0xa5d14fad80062a6732cfc9db0eec54cb4562cc9b93bfd4d1aadbd7ed97a9157a",
 "decisionThreshold": 0.25,
 "labelRule": "Hansen GFC-2025-v1.13 lossyear in {2024, 2025} within forest at t0 (treecover2000 >= {'tropical-rainforest/americas': 30, 'tropical-rainforest/asia': 30, 'tropical-dry-forest/africa': 10} by ecozone, no loss 2001-2023)",
 "resampling": "Hansen 30 m (0.00025 deg) -> 40 m analysis grid, nearest neighbour",
 "evaluationDomain": "pixels whose centre is inside the AOI, forest at t0, with >= 2 clear observations in both composites",
 "perAOI": {
  "981": {
   "role": "subject",
   "controlType": null,
   "boundary": "official",
   "precision": 0.6046,
   "recall": 0.6226,
   "f1": 0.6134,
   "iou": 0.4424,
   "predictedPositive": 17464,
   "actualPositive": 16958,
   "pixels": 692194,
   "prevalence": 0.024499,
   "rocAuc": 0.9567,
   "chanceF1AtSameFlagRate": 0.0249,
   "hansenLossHa": 2713.28,
   "detectedLossHa": 2794.24,
   "lossHaCI95": [
    2569.12,
    3639.05
   ],
   "forestHa": 113005.12,
   "validFraction": 0.9801,
   "eventFired": true,
   "haircutBps": 252,
   "confidenceBps": 5461,
   "outputHash": "0x4b22ddc18bbaabcb351a8ad197ed16758c94530e9a3bbd788d66bcaac23b6c61",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 16958,
    "pixels": 692194,
    "prevalence": 0.024499,
    "rocAuc": 0.3965
   },
   "inferSeconds": 12.0
  },
  "1112": {
   "role": "subject",
   "controlType": null,
   "boundary": "official",
   "precision": 0.7469,
   "recall": 0.6877,
   "f1": 0.716,
   "iou": 0.5577,
   "predictedPositive": 1126,
   "actualPositive": 1223,
   "pixels": 259799,
   "prevalence": 0.004707,
   "rocAuc": 0.9763,
   "chanceF1AtSameFlagRate": 0.0045,
   "hansenLossHa": 195.68,
   "detectedLossHa": 180.16,
   "lossHaCI95": [
    169.92,
    204.96
   ],
   "forestHa": 41574.56,
   "validFraction": 0.9998,
   "eventFired": false,
   "haircutBps": 0,
   "confidenceBps": 6552,
   "outputHash": "0xa6a3c5cbff341d30782a07c94a59636c2f4094fc500303731af44f121c29855b",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 1223,
    "pixels": 259799,
    "prevalence": 0.004707,
    "rocAuc": 0.4314
   },
   "inferSeconds": 5.9
  },
  "902": {
   "role": "subject",
   "controlType": null,
   "boundary": "official",
   "precision": 0.0442,
   "recall": 0.3786,
   "f1": 0.0791,
   "iou": 0.0412,
   "predictedPositive": 14133,
   "actualPositive": 1648,
   "pixels": 4077954,
   "prevalence": 0.000404,
   "rocAuc": 0.9369,
   "chanceF1AtSameFlagRate": 0.0007,
   "hansenLossHa": 263.68,
   "detectedLossHa": 2261.28,
   "lossHaCI95": [
    1927.2,
    3756.35
   ],
   "forestHa": 653216.96,
   "validFraction": 0.9989,
   "eventFired": true,
   "haircutBps": 35,
   "confidenceBps": 4364,
   "outputHash": "0x292fa17518d2f057bd7771d56988d0b008ad941c7c220ef25f058affc326cc3c",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 1648,
    "pixels": 4077954,
    "prevalence": 0.000404,
    "rocAuc": 0.4906
   },
   "inferSeconds": 72.7
  },
  "1477": {
   "role": "subject",
   "controlType": null,
   "boundary": "official",
   "precision": 0.0732,
   "recall": 0.5468,
   "f1": 0.1292,
   "iou": 0.069,
   "predictedPositive": 9423,
   "actualPositive": 1262,
   "pixels": 781136,
   "prevalence": 0.001616,
   "rocAuc": 0.9346,
   "chanceF1AtSameFlagRate": 0.0029,
   "hansenLossHa": 201.92,
   "detectedLossHa": 1507.68,
   "lossHaCI95": [
    1355.52,
    2361.12
   ],
   "forestHa": 138655.84,
   "validFraction": 0.9014,
   "eventFired": true,
   "haircutBps": 121,
   "confidenceBps": 5036,
   "outputHash": "0xe4e0c174629155d322cb09ce2c871aee80938c087b1ec09d8371f894c80f0d9c",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 1262,
    "pixels": 781136,
    "prevalence": 0.001616,
    "rocAuc": 0.5485
   },
   "inferSeconds": 13.1
  },
  "2252": {
   "role": "subject",
   "controlType": null,
   "boundary": "official",
   "precision": 0.4246,
   "recall": 0.8116,
   "f1": 0.5575,
   "iou": 0.3865,
   "predictedPositive": 20433,
   "actualPositive": 10690,
   "pixels": 992922,
   "prevalence": 0.010766,
   "rocAuc": 0.977,
   "chanceF1AtSameFlagRate": 0.0141,
   "hansenLossHa": 1710.4,
   "detectedLossHa": 3269.28,
   "lossHaCI95": [
    2995.52,
    4435.53
   ],
   "forestHa": 162193.44,
   "validFraction": 0.9795,
   "eventFired": true,
   "haircutBps": 206,
   "confidenceBps": 5495,
   "outputHash": "0x44364ef7dc40684179cb7f8d7e6b7f0632cded75a5c846f6814fc8648b8a7c24",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 10690,
    "pixels": 992922,
    "prevalence": 0.010766,
    "rocAuc": 0.4311
   },
   "inferSeconds": 17.6
  },
  "2508": {
   "role": "subject",
   "controlType": null,
   "boundary": "official",
   "precision": 0.4861,
   "recall": 0.7687,
   "f1": 0.5956,
   "iou": 0.4241,
   "predictedPositive": 3199,
   "actualPositive": 2023,
   "pixels": 439499,
   "prevalence": 0.004603,
   "rocAuc": 0.9917,
   "chanceF1AtSameFlagRate": 0.0056,
   "hansenLossHa": 323.68,
   "detectedLossHa": 511.84,
   "lossHaCI95": [
    480.96,
    616.0
   ],
   "forestHa": 92064.8,
   "validFraction": 0.7638,
   "eventFired": false,
   "haircutBps": 0,
   "confidenceBps": 5289,
   "outputHash": "0xb2e2c047f0259bf651ad05cd561b0ba325561d2cd1883e46090f729343fd6984",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 2023,
    "pixels": 439499,
    "prevalence": 0.004603,
    "rocAuc": 0.4796
   },
   "inferSeconds": 11.5
  },
  "3590": {
   "role": "control",
   "controlType": "registered-project",
   "boundary": "official",
   "precision": 0.0187,
   "recall": 0.7568,
   "f1": 0.0366,
   "iou": 0.0186,
   "predictedPositive": 56307,
   "actualPositive": 1394,
   "pixels": 779034,
   "prevalence": 0.001789,
   "rocAuc": 0.9145,
   "chanceF1AtSameFlagRate": 0.0035,
   "hansenLossHa": 223.04,
   "detectedLossHa": 9009.12,
   "lossHaCI95": [
    8155.5,
    12339.69
   ],
   "forestHa": 128977.12,
   "validFraction": 0.9664,
   "eventFired": true,
   "haircutBps": 723,
   "confidenceBps": 4880,
   "outputHash": "0x2a1586b4a53988c0cce70c64f3698e662ad3e830a94478a33e0fc8fdc2c29bdb",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 1394,
    "pixels": 779034,
    "prevalence": 0.001789,
    "rocAuc": 0.4379
   },
   "inferSeconds": 13.5
  },
  "ctrl-caxiuana": {
   "role": "control",
   "controlType": "stable-forest",
   "boundary": "defined",
   "precision": 0.0,
   "recall": 0.0,
   "f1": 0.0,
   "iou": 0.0,
   "predictedPositive": 85,
   "actualPositive": 0,
   "pixels": 60933,
   "prevalence": 0.0,
   "rocAuc": null,
   "chanceF1AtSameFlagRate": 0.0,
   "hansenLossHa": 0.0,
   "detectedLossHa": 13.6,
   "lossHaCI95": [
    10.4,
    27.52
   ],
   "forestHa": 9833.12,
   "validFraction": 0.9915,
   "eventFired": false,
   "haircutBps": 0,
   "confidenceBps": 3869,
   "outputHash": "0xaaa3ba013e4d3abfd8527de06374a1cf373deae2879a33bcbe6f2fc3faf88592",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 0,
    "pixels": 60933,
    "prevalence": 0.0,
    "rocAuc": null
   },
   "inferSeconds": 1.1
  },
  "ctrl-sebangau": {
   "role": "control",
   "controlType": "stable-forest",
   "boundary": "defined",
   "precision": 0.0,
   "recall": 0.0,
   "f1": 0.0,
   "iou": 0.0,
   "predictedPositive": 0,
   "actualPositive": 0,
   "pixels": 56446,
   "prevalence": 0.0,
   "rocAuc": null,
   "chanceF1AtSameFlagRate": 0.0,
   "hansenLossHa": 0.0,
   "detectedLossHa": 0.0,
   "lossHaCI95": [
    0.0,
    0.16
   ],
   "forestHa": 9031.36,
   "validFraction": 1.0,
   "eventFired": false,
   "haircutBps": 0,
   "confidenceBps": 0,
   "outputHash": "0xe6cdd52dd838532a8907db6cf4d28b69ea85f32242ae197b2d9eae5e09f33b81",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 0,
    "pixels": 56446,
    "prevalence": 0.0,
    "rocAuc": null
   },
   "inferSeconds": 1.0
  },
  "ctrl-matusadona": {
   "role": "control",
   "controlType": "stable-forest",
   "boundary": "defined",
   "precision": 0.0,
   "recall": 0.0,
   "f1": 0.0,
   "iou": 0.0,
   "predictedPositive": 162,
   "actualPositive": 0,
   "pixels": 46184,
   "prevalence": 0.0,
   "rocAuc": null,
   "chanceF1AtSameFlagRate": 0.0,
   "hansenLossHa": 0.0,
   "detectedLossHa": 25.92,
   "lossHaCI95": [
    20.8,
    48.32
   ],
   "forestHa": 7395.84,
   "validFraction": 0.9991,
   "eventFired": false,
   "haircutBps": 0,
   "confidenceBps": 3694,
   "outputHash": "0x60deb590e6ab83af94f32ad74aa18fd1627654679e7783c9caec69dd33d28936",
   "shuffledLabelModel": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 0,
    "pixels": 46184,
    "prevalence": 0.0,
    "rocAuc": null
   },
   "inferSeconds": 0.9
  }
 },
 "pooledSubjects": {
  "precision": 0.3488,
  "recall": 0.6787,
  "f1": 0.4608,
  "iou": 0.2994,
  "predictedPositive": 65778,
  "actualPositive": 33804,
  "pixels": 7243504,
  "prevalence": 0.004667,
  "rocAuc": 0.974
 },
 "pooledAllAOIs": {
  "precision": 0.1962,
  "recall": 0.6818,
  "f1": 0.3047,
  "iou": 0.1797,
  "predictedPositive": 122332,
  "actualPositive": 35198,
  "pixels": 8186101,
  "prevalence": 0.0043
 },
 "negativeControls": {
  "stableForest": {
   "ctrl-caxiuana": {
    "eventFired": false,
    "detectedLossHa": 13.6,
    "hansenLossHa": 0.0
   },
   "ctrl-sebangau": {
    "eventFired": false,
    "detectedLossHa": 0.0,
    "hansenLossHa": 0.0
   },
   "ctrl-matusadona": {
    "eventFired": false,
    "detectedLossHa": 25.92,
    "hansenLossHa": 0.0
   }
  },
  "stableForestPassed": true,
  "shuffledLabelModel": {
   "pooledSubjects": {
    "precision": 0.0,
    "recall": 0.0,
    "f1": 0.0,
    "iou": 0.0,
    "predictedPositive": 0,
    "actualPositive": 33804,
    "pixels": 7243504,
    "prevalence": 0.004667,
    "rocAuc": 0.4763
   },
   "chanceF1": 0.0,
   "f1CriterionPassed": true,
   "aucCriterionPassed": true,
   "pooledAucNote": "seeded subsample of up to 300,000 analysed pixels per subject AOI"
  }
 },
 "notes": [
  "Hansen GFC is itself a model product (30 m Landsat); agreement is measured against it, not against ground truth.",
  "Loss mapped in Oct-Dec 2025 is labelled 2025 by Hansen but is after the t1 dry-season composite (counts as a miss).",
  "Pixels without enough clear observations are excluded and reported through validFraction, never counted as no-loss."
 ]
}
