{
  "exercise": "Synthetic alert base-rate arithmetic",
  "kind": "educational_synthetic_example",
  "model_or_detector_evaluated": null,
  "real_transactions_used": false,
  "dataset": "synthetic-alerts.csv",
  "dataset_sha256": "c1a52ec31d101016f73f675186790e52428b890db05baf64ef288a02867e7c5a",
  "total_cases": 2000,
  "scenarios": {
    "prevalence_10_percent": {
      "tp": 80,
      "fp": 90,
      "fn": 20,
      "tn": 810,
      "cases": 1000,
      "ground_truth_positives": 100,
      "alerts": 170,
      "prevalence": 0.1,
      "precision": 0.47058823529411764,
      "recall": 0.8,
      "false_positive_rate": 0.1
    },
    "prevalence_1_percent": {
      "tp": 8,
      "fp": 99,
      "fn": 2,
      "tn": 891,
      "cases": 1000,
      "ground_truth_positives": 10,
      "alerts": 107,
      "prevalence": 0.01,
      "precision": 0.07476635514018691,
      "recall": 0.8,
      "false_positive_rate": 0.1
    }
  },
  "limitations": "Labels and alerts were assigned to yield 80% recall and 10% false-positive rate. These are assumptions, not measured AI performance. The arithmetic has no empirical confidence interval."
}
