{
  "suite_id": "novel_feedback_v4_encoder_state_simulator",
  "created_utc": "2026-05-12T03:00:58+00:00",
  "local_device": "cuda",
  "torch_version": "2.8.0+cu128",
  "dataset": {
    "examples": 1344,
    "train_examples": 967,
    "test_examples": 377,
    "history_len": 10,
    "state_dim": 11,
    "content_axes": [
      "pacing_speed",
      "female_agency",
      "lore_density",
      "continuity_risk",
      "novelty",
      "emotional_payoff"
    ],
    "state_scalars": [
      "trust",
      "fatigue",
      "satisfaction",
      "comment_propensity",
      "confidence"
    ]
  },
  "models": {
    "zero_delta_baseline": {
      "continue_auc": 0.5,
      "continue_brier": 0.1194,
      "comment_auprc": 0.3516,
      "comment_macro_f1": 0.5,
      "dwell_log_mae": 0.1886,
      "state_delta_mse": 0.0008,
      "state_delta_cosine": 0.0,
      "state_direction_accuracy": 0.0,
      "counterfactual_consistency": 0.5
    },
    "mlp_no_history": {
      "continue_auc": 0.7038,
      "continue_brier": 0.1153,
      "comment_auprc": 0.3165,
      "comment_macro_f1": 0.3968,
      "dwell_log_mae": 0.1385,
      "state_delta_mse": 0.0004,
      "state_delta_cosine": 0.663,
      "state_direction_accuracy": 0.8013,
      "counterfactual_consistency": 0.9961
    },
    "gru_history": {
      "continue_auc": 0.7037,
      "continue_brier": 0.1154,
      "comment_auprc": 0.3468,
      "comment_macro_f1": 0.3968,
      "dwell_log_mae": 0.133,
      "state_delta_mse": 0.0004,
      "state_delta_cosine": 0.6612,
      "state_direction_accuracy": 0.7979,
      "counterfactual_consistency": 1.0
    },
    "transformer_state": {
      "continue_auc": 0.7087,
      "continue_brier": 0.1109,
      "comment_auprc": 0.3186,
      "comment_macro_f1": 0.3968,
      "dwell_log_mae": 0.1575,
      "state_delta_mse": 0.0006,
      "state_delta_cosine": 0.5799,
      "state_direction_accuracy": 0.7767,
      "counterfactual_consistency": 1.0
    },
    "transformer_prototype": {
      "continue_auc": 0.7236,
      "continue_brier": 0.1126,
      "comment_auprc": 0.328,
      "comment_macro_f1": 0.3968,
      "dwell_log_mae": 0.1768,
      "state_delta_mse": 0.0005,
      "state_delta_cosine": 0.6561,
      "state_direction_accuracy": 0.8037,
      "counterfactual_consistency": 1.0
    }
  },
  "training_curves": [
    {
      "model": "mlp_no_history",
      "epoch": 1,
      "train_loss": 2.8379,
      "continue_auc": 0.5438,
      "state_delta_mse": 0.0008
    },
    {
      "model": "mlp_no_history",
      "epoch": 2,
      "train_loss": 1.0934,
      "continue_auc": 0.6485,
      "state_delta_mse": 0.0007
    },
    {
      "model": "mlp_no_history",
      "epoch": 3,
      "train_loss": 0.8705,
      "continue_auc": 0.6617,
      "state_delta_mse": 0.0005
    },
    {
      "model": "mlp_no_history",
      "epoch": 4,
      "train_loss": 0.819,
      "continue_auc": 0.6705,
      "state_delta_mse": 0.0005
    },
    {
      "model": "mlp_no_history",
      "epoch": 5,
      "train_loss": 0.8311,
      "continue_auc": 0.6812,
      "state_delta_mse": 0.0005
    },
    {
      "model": "mlp_no_history",
      "epoch": 6,
      "train_loss": 0.7862,
      "continue_auc": 0.6898,
      "state_delta_mse": 0.0005
    },
    {
      "model": "mlp_no_history",
      "epoch": 7,
      "train_loss": 0.7933,
      "continue_auc": 0.6966,
      "state_delta_mse": 0.0005
    },
    {
      "model": "mlp_no_history",
      "epoch": 8,
      "train_loss": 0.7989,
      "continue_auc": 0.7014,
      "state_delta_mse": 0.0004
    },
    {
      "model": "mlp_no_history",
      "epoch": 9,
      "train_loss": 0.8312,
      "continue_auc": 0.7038,
      "state_delta_mse": 0.0004
    },
    {
      "model": "gru_history",
      "epoch": 1,
      "train_loss": 2.3001,
      "continue_auc": 0.6569,
      "state_delta_mse": 0.0027
    },
    {
      "model": "gru_history",
      "epoch": 2,
      "train_loss": 1.1115,
      "continue_auc": 0.6776,
      "state_delta_mse": 0.0007
    },
    {
      "model": "gru_history",
      "epoch": 3,
      "train_loss": 0.8281,
      "continue_auc": 0.7029,
      "state_delta_mse": 0.0005
    },
    {
      "model": "gru_history",
      "epoch": 4,
      "train_loss": 0.8199,
      "continue_auc": 0.7089,
      "state_delta_mse": 0.0005
    },
    {
      "model": "gru_history",
      "epoch": 5,
      "train_loss": 0.8515,
      "continue_auc": 0.7021,
      "state_delta_mse": 0.0005
    },
    {
      "model": "gru_history",
      "epoch": 6,
      "train_loss": 0.8194,
      "continue_auc": 0.7008,
      "state_delta_mse": 0.0004
    },
    {
      "model": "gru_history",
      "epoch": 7,
      "train_loss": 0.7947,
      "continue_auc": 0.7034,
      "state_delta_mse": 0.0004
    },
    {
      "model": "gru_history",
      "epoch": 8,
      "train_loss": 0.7735,
      "continue_auc": 0.7027,
      "state_delta_mse": 0.0004
    },
    {
      "model": "gru_history",
      "epoch": 9,
      "train_loss": 0.8076,
      "continue_auc": 0.7037,
      "state_delta_mse": 0.0004
    },
    {
      "model": "transformer_state",
      "epoch": 1,
      "train_loss": 1.1281,
      "continue_auc": 0.6581,
      "state_delta_mse": 0.0009
    },
    {
      "model": "transformer_state",
      "epoch": 2,
      "train_loss": 0.8577,
      "continue_auc": 0.6513,
      "state_delta_mse": 0.0007
    },
    {
      "model": "transformer_state",
      "epoch": 3,
      "train_loss": 0.8709,
      "continue_auc": 0.6322,
      "state_delta_mse": 0.0009
    },
    {
      "model": "transformer_state",
      "epoch": 4,
      "train_loss": 0.8256,
      "continue_auc": 0.7008,
      "state_delta_mse": 0.0007
    },
    {
      "model": "transformer_state",
      "epoch": 5,
      "train_loss": 0.785,
      "continue_auc": 0.7004,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_state",
      "epoch": 6,
      "train_loss": 0.804,
      "continue_auc": 0.7057,
      "state_delta_mse": 0.0008
    },
    {
      "model": "transformer_state",
      "epoch": 7,
      "train_loss": 0.7733,
      "continue_auc": 0.7082,
      "state_delta_mse": 0.0007
    },
    {
      "model": "transformer_state",
      "epoch": 8,
      "train_loss": 0.7774,
      "continue_auc": 0.7086,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_state",
      "epoch": 9,
      "train_loss": 0.8005,
      "continue_auc": 0.7087,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_prototype",
      "epoch": 1,
      "train_loss": 1.3146,
      "continue_auc": 0.6572,
      "state_delta_mse": 0.0008
    },
    {
      "model": "transformer_prototype",
      "epoch": 2,
      "train_loss": 0.8562,
      "continue_auc": 0.6524,
      "state_delta_mse": 0.0007
    },
    {
      "model": "transformer_prototype",
      "epoch": 3,
      "train_loss": 0.8194,
      "continue_auc": 0.6826,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_prototype",
      "epoch": 4,
      "train_loss": 0.826,
      "continue_auc": 0.6904,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_prototype",
      "epoch": 5,
      "train_loss": 0.8181,
      "continue_auc": 0.7135,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_prototype",
      "epoch": 6,
      "train_loss": 0.7899,
      "continue_auc": 0.7225,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_prototype",
      "epoch": 7,
      "train_loss": 0.762,
      "continue_auc": 0.7289,
      "state_delta_mse": 0.0007
    },
    {
      "model": "transformer_prototype",
      "epoch": 8,
      "train_loss": 0.8186,
      "continue_auc": 0.7215,
      "state_delta_mse": 0.0006
    },
    {
      "model": "transformer_prototype",
      "epoch": 9,
      "train_loss": 0.8166,
      "continue_auc": 0.7236,
      "state_delta_mse": 0.0005
    }
  ],
  "interpretation": {
    "continue_auc": "behavior-fidelity: can the simulator predict next-chapter continuation from profile/state/history/content?",
    "state_delta_mse": "state-fidelity: can the encoder predict how feedback changes trust/fatigue/satisfaction/axis affinity?",
    "counterfactual_consistency": "intervention validity: profile/content/fatigue swaps should move predictions in the expected direction."
  }
}
