{
  "checks_passed": 7,
  "checks": [
    "nested_outer_assessment_partition_sizes",
    "nested_selection_within_declared_grid",
    "error_taxonomy_reconciles_confusion_counts",
    "error_join_preserves_prediction_grain",
    "slice_reconciliation_plan",
    "slice_reconciliation_ticket_missing",
    "slice_reconciliation_activity_band"
  ],
  "nested_group_cv": {
    "folds": [
      {
        "outer_fold": 1,
        "development_rows": 128,
        "assessment_rows": 32,
        "development_customers": 32,
        "assessment_customers": 8,
        "selected_C": 0.1,
        "selected_inner_mean_log_loss": 0.6636085252459215,
        "outer_log_loss": 0.7680495507470433,
        "baseline_outer_log_loss": 0.6774606313926799
      },
      {
        "outer_fold": 2,
        "development_rows": 128,
        "assessment_rows": 32,
        "development_customers": 32,
        "assessment_customers": 8,
        "selected_C": 0.1,
        "selected_inner_mean_log_loss": 0.6814866041696731,
        "outer_log_loss": 0.6899322688204625,
        "baseline_outer_log_loss": 0.6854385597344412
      },
      {
        "outer_fold": 3,
        "development_rows": 128,
        "assessment_rows": 32,
        "development_customers": 32,
        "assessment_customers": 8,
        "selected_C": 0.1,
        "selected_inner_mean_log_loss": 0.7139530044305676,
        "outer_log_loss": 0.6329384790928161,
        "baseline_outer_log_loss": 0.6854385597344412
      },
      {
        "outer_fold": 4,
        "development_rows": 128,
        "assessment_rows": 32,
        "development_customers": 32,
        "assessment_customers": 8,
        "selected_C": 0.1,
        "selected_inner_mean_log_loss": 0.7058400390167369,
        "outer_log_loss": 0.6602678289960169,
        "baseline_outer_log_loss": 0.6854385597344412
      },
      {
        "outer_fold": 5,
        "development_rows": 128,
        "assessment_rows": 32,
        "development_customers": 32,
        "assessment_customers": 8,
        "selected_C": 0.1,
        "selected_inner_mean_log_loss": 0.6951084816946119,
        "outer_log_loss": 0.633133871298023,
        "baseline_outer_log_loss": 0.6854385597344412
      }
    ],
    "mean_outer_log_loss": 0.6768643997908723,
    "mean_baseline_outer_log_loss": 0.6838429740660891,
    "scope": "January data only, held-out customer identities. Inner selection and outer assessment have separate roles. Not chronological future evaluation; outer folds overlap in training and their SD is not an independent-sample confidence interval."
  },
  "slices": [
    {
      "field": "plan",
      "value": "individual",
      "metrics": {
        "n": 52,
        "positive_count": 38,
        "prevalence": 0.7307692307692307,
        "log_loss": 0.7554713864798852,
        "brier": 0.2799516874478352,
        "roc_auc": 0.7293233082706767,
        "average_precision": 0.8578035192510658,
        "threshold": 0.5,
        "tn": 13,
        "fp": 1,
        "fn": 26,
        "tp": 12,
        "accuracy": 0.4807692307692308,
        "precision": 0.9230769230769231,
        "recall": 0.3157894736842105
      }
    },
    {
      "field": "plan",
      "value": "team",
      "metrics": {
        "n": 28,
        "positive_count": 17,
        "prevalence": 0.6071428571428571,
        "log_loss": 0.6048363459450963,
        "brier": 0.20798915351789465,
        "roc_auc": 0.8502673796791443,
        "average_precision": 0.9174337016915783,
        "threshold": 0.5,
        "tn": 11,
        "fp": 0,
        "fn": 7,
        "tp": 10,
        "accuracy": 0.75,
        "precision": 1.0,
        "recall": 0.5882352941176471
      }
    },
    {
      "field": "ticket_missing",
      "value": "False",
      "metrics": {
        "n": 73,
        "positive_count": 52,
        "prevalence": 0.7123287671232876,
        "log_loss": 0.7074800454238095,
        "brier": 0.25703112751807644,
        "roc_auc": 0.8205128205128205,
        "average_precision": 0.9241240165237238,
        "threshold": 0.5,
        "tn": 21,
        "fp": 0,
        "fn": 32,
        "tp": 20,
        "accuracy": 0.5616438356164384,
        "precision": 1.0,
        "recall": 0.38461538461538464
      }
    },
    {
      "field": "ticket_missing",
      "value": "True",
      "metrics": {
        "n": 7,
        "positive_count": 3,
        "prevalence": 0.42857142857142855,
        "log_loss": 0.6534123524969476,
        "brier": 0.2311302481384154,
        "roc_auc": 0.6666666666666666,
        "average_precision": 0.7222222222222222,
        "threshold": 0.5,
        "tn": 3,
        "fp": 1,
        "fn": 1,
        "tp": 2,
        "accuracy": 0.7142857142857143,
        "precision": 0.6666666666666666,
        "recall": 0.6666666666666666
      }
    },
    {
      "field": "activity_band",
      "value": "7_or_more_days",
      "metrics": {
        "n": 43,
        "positive_count": 36,
        "prevalence": 0.8372093023255814,
        "log_loss": 0.6689708184181352,
        "brier": 0.23823021259043106,
        "roc_auc": 0.7261904761904762,
        "average_precision": 0.9237449358069297,
        "threshold": 0.5,
        "tn": 6,
        "fp": 1,
        "fn": 14,
        "tp": 22,
        "accuracy": 0.6511627906976745,
        "precision": 0.9565217391304348,
        "recall": 0.6111111111111112
      }
    },
    {
      "field": "activity_band",
      "value": "under_7_days",
      "metrics": {
        "n": 37,
        "positive_count": 19,
        "prevalence": 0.5135135135135135,
        "log_loss": 0.7420049889577546,
        "brier": 0.27398067309189045,
        "roc_auc": 0.6695906432748537,
        "average_precision": 0.6139390451237023,
        "threshold": 0.5,
        "tn": 18,
        "fp": 0,
        "fn": 19,
        "tp": 0,
        "accuracy": 0.4864864864864865,
        "precision": null,
        "recall": 0.0
      }
    }
  ],
  "error_counts_by_activity_band": {
    "FN": {
      "7_or_more_days": 14,
      "under_7_days": 19
    },
    "FP": {
      "7_or_more_days": 1,
      "under_7_days": 0
    },
    "TN": {
      "7_or_more_days": 6,
      "under_7_days": 18
    },
    "TP": {
      "7_or_more_days": 22,
      "under_7_days": 0
    }
  },
  "limits": "Descriptive error/slice labels are observable conditions, not verified causes. Small slices and repeated customers limit precision. No test-driven model change."
}
