{
  "generated_at": "2026-05-11T08:16:52+00:00",
  "status": "materialized_for_real_pipeline",
  "source_staging_manifest": "data/staging/modern_ids_pipeline_candidates/manifests/top7_candidates_manifest.json",
  "retained_23d_definition": "research/docs/dctabgan_iteration_map/planning_docs/PRESERVED_RATIO_TRAIN500_TEST500_SINGLE_LABEL_23D_BENCHMARK_DEFINITION_2026-04-18.json",
  "modern7_definition": "research/docs/dctabgan_iteration_map/planning_docs/PRESERVED_RATIO_TRAIN500_TEST500_SINGLE_LABEL_MODERN7_BENCHMARK_DEFINITION_2026-05-11.json",
  "final30d_definition": "research/docs/dctabgan_iteration_map/planning_docs/PRESERVED_RATIO_TRAIN500_TEST500_SINGLE_LABEL_30D_BENCHMARK_DEFINITION_2026-05-11.json",
  "candidate_count": 7,
  "candidates": [
    {
      "candidate_id": "hikari_bruteforce_vs_benign",
      "dataset": "HIKARI-2021",
      "positive_class": "Bruteforce",
      "negative_class": "benign_control",
      "ratio_floor": 87,
      "pipeline_status": "materialized_for_benchmark_definition",
      "provisional_source_caveat": "",
      "input_train_csv": "data/staging/modern_ids_pipeline_candidates/hikari_bruteforce_vs_benign/train.csv",
      "input_test_csv": "data/staging/modern_ids_pipeline_candidates/hikari_bruteforce_vs_benign/test.csv",
      "output_dataset": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/hikari_bruteforce_vs_benign/hikari_bruteforce_vs_benign_preservedratio_train500minority_43500majority_test500minority_43500majority_modern7.csv",
      "split_metadata": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/hikari_bruteforce_vs_benign/split_metadata.json",
      "train_counts": {
        "0": 43500,
        "1": 500
      },
      "test_counts": {
        "0": 43500,
        "1": 500
      },
      "train_test_source_row_index_overlap": 0,
      "input_column_count": 83,
      "output_column_count": 83,
      "feature_count": 81,
      "dropped_columns": []
    },
    {
      "candidate_id": "hikari_probing_vs_benign",
      "dataset": "HIKARI-2021",
      "positive_class": "Probing",
      "negative_class": "benign_control",
      "ratio_floor": 22,
      "pipeline_status": "materialized_for_benchmark_definition",
      "provisional_source_caveat": "",
      "input_train_csv": "data/staging/modern_ids_pipeline_candidates/hikari_probing_vs_benign/train.csv",
      "input_test_csv": "data/staging/modern_ids_pipeline_candidates/hikari_probing_vs_benign/test.csv",
      "output_dataset": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/hikari_probing_vs_benign/hikari_probing_vs_benign_preservedratio_train500minority_11000majority_test500minority_11000majority_modern7.csv",
      "split_metadata": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/hikari_probing_vs_benign/split_metadata.json",
      "train_counts": {
        "0": 11000,
        "1": 500
      },
      "test_counts": {
        "0": 11000,
        "1": 500
      },
      "train_test_source_row_index_overlap": 0,
      "input_column_count": 83,
      "output_column_count": 83,
      "feature_count": 81,
      "dropped_columns": []
    },
    {
      "candidate_id": "ciciomt2024_arp_spoofing_vs_benign",
      "dataset": "CICIoMT2024Small mirror",
      "positive_class": "ARP Spoofing",
      "negative_class": "Benign",
      "ratio_floor": 25,
      "pipeline_status": "materialized_for_benchmark_definition",
      "provisional_source_caveat": "Materialized from public Hugging Face CICIoMT2024Small mirror; official UNB endpoint remains registration-gated.",
      "input_train_csv": "data/staging/modern_ids_pipeline_candidates/ciciomt2024_arp_spoofing_vs_benign/train.csv",
      "input_test_csv": "data/staging/modern_ids_pipeline_candidates/ciciomt2024_arp_spoofing_vs_benign/test.csv",
      "output_dataset": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/ciciomt2024_arp_spoofing_vs_benign/ciciomt2024_arp_spoofing_vs_benign_preservedratio_train500minority_12500majority_test500minority_12500majority_modern7.csv",
      "split_metadata": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/ciciomt2024_arp_spoofing_vs_benign/split_metadata.json",
      "train_counts": {
        "0": 12500,
        "1": 500
      },
      "test_counts": {
        "0": 12500,
        "1": 500
      },
      "train_test_source_row_index_overlap": 0,
      "input_column_count": 81,
      "output_column_count": 81,
      "feature_count": 79,
      "dropped_columns": []
    },
    {
      "candidate_id": "ciciomt2024_mqtt_malformed_data_vs_benign",
      "dataset": "CICIoMT2024Small mirror",
      "positive_class": "MQTT Malformed Data",
      "negative_class": "Benign",
      "ratio_floor": 17,
      "pipeline_status": "materialized_for_benchmark_definition",
      "provisional_source_caveat": "Materialized from public Hugging Face CICIoMT2024Small mirror; official UNB endpoint remains registration-gated.",
      "input_train_csv": "data/staging/modern_ids_pipeline_candidates/ciciomt2024_mqtt_malformed_data_vs_benign/train.csv",
      "input_test_csv": "data/staging/modern_ids_pipeline_candidates/ciciomt2024_mqtt_malformed_data_vs_benign/test.csv",
      "output_dataset": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/ciciomt2024_mqtt_malformed_data_vs_benign/ciciomt2024_mqtt_malformed_data_vs_benign_preservedratio_train500minority_8500majority_test500minority_8500majority_modern7.csv",
      "split_metadata": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/ciciomt2024_mqtt_malformed_data_vs_benign/split_metadata.json",
      "train_counts": {
        "0": 8500,
        "1": 500
      },
      "test_counts": {
        "0": 8500,
        "1": 500
      },
      "train_test_source_row_index_overlap": 0,
      "input_column_count": 81,
      "output_column_count": 81,
      "feature_count": 79,
      "dropped_columns": []
    },
    {
      "candidate_id": "edge_iiotset_sql_injection_vs_normal",
      "dataset": "Edge-IIoTset",
      "positive_class": "SQL_injection_attack",
      "negative_class": "Normal",
      "ratio_floor": 31,
      "pipeline_status": "materialized_for_benchmark_definition",
      "provisional_source_caveat": "Materialized from public Kaggle mirror; official IEEE DataPort remains login/subscription-gated.",
      "input_train_csv": "data/staging/modern_ids_pipeline_candidates/edge_iiotset_sql_injection_vs_normal/train.csv",
      "input_test_csv": "data/staging/modern_ids_pipeline_candidates/edge_iiotset_sql_injection_vs_normal/test.csv",
      "output_dataset": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/edge_iiotset_sql_injection_vs_normal/edge_iiotset_sql_injection_vs_normal_preservedratio_train500minority_15500majority_test500minority_15500majority_modern7.csv",
      "split_metadata": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/edge_iiotset_sql_injection_vs_normal/split_metadata.json",
      "train_counts": {
        "0": 15500,
        "1": 500
      },
      "test_counts": {
        "0": 15500,
        "1": 500
      },
      "train_test_source_row_index_overlap": 0,
      "input_column_count": 63,
      "output_column_count": 43,
      "feature_count": 41,
      "dropped_columns": [
        "frame.time",
        "ip.src_host",
        "ip.dst_host",
        "arp.dst.proto_ipv4",
        "arp.src.proto_ipv4",
        "http.file_data",
        "http.request.uri.query",
        "http.referer",
        "http.request.full_uri",
        "tcp.ack",
        "tcp.ack_raw",
        "tcp.checksum",
        "tcp.options",
        "tcp.payload",
        "tcp.seq",
        "tcp.srcport",
        "udp.stream",
        "mqtt.msg",
        "mqtt.topic",
        "mbtcp.trans_id"
      ]
    },
    {
      "candidate_id": "edge_iiotset_password_vs_normal",
      "dataset": "Edge-IIoTset",
      "positive_class": "Password_attack",
      "negative_class": "Normal",
      "ratio_floor": 32,
      "pipeline_status": "materialized_for_benchmark_definition",
      "provisional_source_caveat": "Materialized from public Kaggle mirror; official IEEE DataPort remains login/subscription-gated.",
      "input_train_csv": "data/staging/modern_ids_pipeline_candidates/edge_iiotset_password_vs_normal/train.csv",
      "input_test_csv": "data/staging/modern_ids_pipeline_candidates/edge_iiotset_password_vs_normal/test.csv",
      "output_dataset": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/edge_iiotset_password_vs_normal/edge_iiotset_password_vs_normal_preservedratio_train500minority_16000majority_test500minority_16000majority_modern7.csv",
      "split_metadata": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/edge_iiotset_password_vs_normal/split_metadata.json",
      "train_counts": {
        "0": 16000,
        "1": 500
      },
      "test_counts": {
        "0": 16000,
        "1": 500
      },
      "train_test_source_row_index_overlap": 0,
      "input_column_count": 63,
      "output_column_count": 43,
      "feature_count": 41,
      "dropped_columns": [
        "frame.time",
        "ip.src_host",
        "ip.dst_host",
        "arp.dst.proto_ipv4",
        "arp.src.proto_ipv4",
        "http.file_data",
        "http.request.uri.query",
        "http.referer",
        "http.request.full_uri",
        "tcp.ack",
        "tcp.ack_raw",
        "tcp.checksum",
        "tcp.options",
        "tcp.payload",
        "tcp.seq",
        "tcp.srcport",
        "udp.stream",
        "mqtt.msg",
        "mqtt.topic",
        "mbtcp.trans_id"
      ]
    },
    {
      "candidate_id": "edge_iiotset_uploading_vs_normal",
      "dataset": "Edge-IIoTset",
      "positive_class": "Uploading_attack",
      "negative_class": "Normal",
      "ratio_floor": 42,
      "pipeline_status": "materialized_for_benchmark_definition",
      "provisional_source_caveat": "Materialized from public Kaggle mirror; official IEEE DataPort remains login/subscription-gated.",
      "input_train_csv": "data/staging/modern_ids_pipeline_candidates/edge_iiotset_uploading_vs_normal/train.csv",
      "input_test_csv": "data/staging/modern_ids_pipeline_candidates/edge_iiotset_uploading_vs_normal/test.csv",
      "output_dataset": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/edge_iiotset_uploading_vs_normal/edge_iiotset_uploading_vs_normal_preservedratio_train500minority_21000majority_test500minority_21000majority_modern7.csv",
      "split_metadata": "data/preserved_ratio_experiments/processed/train500_test500_modern_ids_7d/edge_iiotset_uploading_vs_normal/split_metadata.json",
      "train_counts": {
        "0": 21000,
        "1": 500
      },
      "test_counts": {
        "0": 21000,
        "1": 500
      },
      "train_test_source_row_index_overlap": 0,
      "input_column_count": 63,
      "output_column_count": 43,
      "feature_count": 41,
      "dropped_columns": [
        "frame.time",
        "ip.src_host",
        "ip.dst_host",
        "arp.dst.proto_ipv4",
        "arp.src.proto_ipv4",
        "http.file_data",
        "http.request.uri.query",
        "http.referer",
        "http.request.full_uri",
        "tcp.ack",
        "tcp.ack_raw",
        "tcp.checksum",
        "tcp.options",
        "tcp.payload",
        "tcp.seq",
        "tcp.srcport",
        "udp.stream",
        "mqtt.msg",
        "mqtt.topic",
        "mbtcp.trans_id"
      ]
    }
  ]
}