{
  "schema_version": 1,
  "release_id": "rate_identity_2026-10-03",
  "created_at_utc": "2026-10-02T19:49:56.587517+00:00",
  "evaluation": "leave-one-canonical-campaign-out within material family; all campaign aliases assigned to same fold; simulation modulus rows always in training; scalers and model optimization fitted on each training fold; strength trained only on reported positive finite rates; no calibration/test reuse",
  "fit_config": {
    "optimizer_restarts": 8,
    "random_state": 0,
    "python": "3.13.0",
    "sklearn": "1.9.1",
    "BLAS_threads": "1 (set by command)"
  },
  "convergence_warnings": {
    "printed_total": 687,
    "per_fold": null,
    "reason": "parallel stderr was untagged and interleaved; counts cannot be assigned to individual folds without refitting",
    "interpretation": "kernel hyperparameters reached stated bounds; successful fit is not proof of interval calibration or unique optimizer solution"
  },
  "pipeline_findings": {
    "curated_rate_rows_previously_imported_twice": 70,
    "primary_explicit_rates_previously_overwritten": 39,
    "unknown_rate_strength_rows_excluded": 96
  },
  "polymer": {
    "modulus": {
      "overall": {
        "n_rows": 218,
        "median_abs_pct_err": 16.388256133196187,
        "mean_abs_pct_err": 30.175761866825123,
        "rmse_log10": 0.1694873537085513,
        "within20_count": 127,
        "within20": 0.5825688073394495,
        "within25": 0.6422018348623854,
        "error_quantiles_pct": {
          "25": 7.319368851251862,
          "50": 16.388256133196187,
          "75": 35.02252065748539,
          "90": 54.13931087204456,
          "95": 95.77794406477598
        },
        "max_abs_pct_err": 579.2367655290135,
        "equal_campaign_sensitivity": {
          "weighted_median_abs_pct_err": 22.95783704268544,
          "mean_campaign_median_abs_pct_err": 66.21830905633894,
          "within20": 0.47738888888888886,
          "mean_abs_pct_err": 72.31502933816651
        },
        "n_groups": 15,
        "covered_count": 159,
        "observed_coverage": 0.7293577981651376,
        "nominal_interval_level": 0.9,
        "group_mean_coverage": 0.6335555555555554,
        "interval_status": "uncalibrated_nominal_90_percent"
      },
      "by_matrix": {
        "epoxy": {
          "n_rows": 188,
          "median_abs_pct_err": 16.190579531168154,
          "mean_abs_pct_err": 31.485175788553263,
          "rmse_log10": 0.17620934882929704,
          "within20_count": 109,
          "within20": 0.5797872340425532,
          "within25": 0.6436170212765957,
          "error_quantiles_pct": {
            "25": 6.936037927558997,
            "50": 16.190579531168154,
            "75": 35.944078809895544,
            "90": 55.006786544746085,
            "95": 103.70452247316062
          },
          "max_abs_pct_err": 579.2367655290135,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 23.827284922605514,
            "mean_campaign_median_abs_pct_err": 72.9418211322457,
            "within20": 0.4642948717948717,
            "mean_abs_pct_err": 78.99411092002644
          },
          "n_groups": 13,
          "covered_count": 133,
          "observed_coverage": 0.7074468085106383,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.6092307692307692,
          "interval_status": "uncalibrated_nominal_90_percent"
        },
        "vinyl_ester": {
          "n_rows": 30,
          "median_abs_pct_err": 17.264013881292453,
          "mean_abs_pct_err": 21.97010129066211,
          "rmse_log10": 0.11901118169356698,
          "within20_count": 18,
          "within20": 0.6,
          "within25": 0.6333333333333333,
          "error_quantiles_pct": {
            "25": 8.507809123817978,
            "50": 17.264013881292453,
            "75": 26.594924056065185,
            "90": 38.76925572166341,
            "95": 59.04318473837266
          },
          "max_abs_pct_err": 95.8328957746068,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 17.405469077112084,
            "mean_campaign_median_abs_pct_err": 22.51548056294489,
            "within20": 0.5624999999999999,
            "mean_abs_pct_err": 28.900999056076937
          },
          "n_groups": 2,
          "covered_count": 26,
          "observed_coverage": 0.8666666666666667,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.7916666666666666,
          "interval_status": "uncalibrated_nominal_90_percent"
        }
      },
      "by_rate": {
        "quasi_static_reported_le_0_1": {
          "n_rows": 32,
          "median_abs_pct_err": 7.978976418910795,
          "mean_abs_pct_err": 36.94413998720264,
          "rmse_log10": 0.18443047354157188,
          "within20_count": 24,
          "within20": 0.75,
          "within25": 0.8125,
          "error_quantiles_pct": {
            "25": 6.1306214295915895,
            "50": 7.978976418910795,
            "75": 19.727961127224347,
            "90": 43.30724179333158,
            "95": 128.2064028837438
          },
          "max_abs_pct_err": 579.2367655290135,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 38.167087459767664,
            "mean_campaign_median_abs_pct_err": 153.38693091878568,
            "within20": 0.36666666666666664,
            "mean_abs_pct_err": 153.32740627169647
          },
          "n_groups": 5,
          "covered_count": 28,
          "observed_coverage": 0.875,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.5,
          "interval_status": "uncalibrated_nominal_90_percent"
        },
        "dynamic_reported_gt_0_1": null,
        "unknown_or_nonpositive": {
          "n_rows": 186,
          "median_abs_pct_err": 17.276911000213495,
          "mean_abs_pct_err": 29.011309717082753,
          "rmse_log10": 0.16678156408987369,
          "within20_count": 103,
          "within20": 0.553763440860215,
          "within25": 0.6129032258064516,
          "error_quantiles_pct": {
            "25": 7.994840438315077,
            "50": 17.276911000213495,
            "75": 35.841529331785836,
            "90": 54.25656058941321,
            "95": 88.03042513414366
          },
          "max_abs_pct_err": 268.28914668019985,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 18.483796751082846,
            "mean_campaign_median_abs_pct_err": 22.63399812511556,
            "within20": 0.5327500000000001,
            "mean_abs_pct_err": 31.808840871401536
          },
          "n_groups": 10,
          "covered_count": 131,
          "observed_coverage": 0.7043010752688172,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.7003333333333334,
          "interval_status": "uncalibrated_nominal_90_percent"
        }
      },
      "training_fold_median_baseline": {
        "n_rows": 218,
        "median_abs_pct_err": 21.436562024083422,
        "mean_abs_pct_err": 36.83076102969758,
        "rmse_log10": 0.17906596582106962,
        "within20_count": 105,
        "within20": 0.481651376146789,
        "within25": 0.6009174311926605,
        "error_quantiles_pct": {
          "25": 9.629231409544952,
          "50": 21.436562024083422,
          "75": 37.285337232373124,
          "90": 96.24583514414024,
          "95": 126.2676586382584
        },
        "max_abs_pct_err": 316.07142857142856
      },
      "mori_tanaka_baseline": {
        "n_rows": 218,
        "median_abs_pct_err": 50.813884176021155,
        "mean_abs_pct_err": 79.58175892232777,
        "rmse_log10": 0.27440344641931735,
        "within20_count": 50,
        "within20": 0.22935779816513763,
        "within25": 0.27522935779816515,
        "error_quantiles_pct": {
          "25": 22.499547967481806,
          "50": 50.813884176021155,
          "75": 99.6768195152222,
          "90": 212.41882037369652,
          "95": 239.04032086236987
        },
        "max_abs_pct_err": 301.4792184721256
      }
    },
    "strength": {
      "overall": {
        "n_rows": 390,
        "median_abs_pct_err": 17.32065881493717,
        "mean_abs_pct_err": 43.657031431861114,
        "rmse_log10": 0.19331993706200004,
        "within20_count": 213,
        "within20": 0.5461538461538461,
        "within25": 0.6256410256410256,
        "error_quantiles_pct": {
          "25": 7.7935366120021845,
          "50": 17.32065881493717,
          "75": 37.10210443903502,
          "90": 58.73875907181736,
          "95": 97.90903665577878
        },
        "max_abs_pct_err": 6645.360744057704,
        "equal_campaign_sensitivity": {
          "weighted_median_abs_pct_err": 17.08042459633767,
          "mean_campaign_median_abs_pct_err": 497.26973153097623,
          "within20": 0.5474932495251388,
          "mean_abs_pct_err": 499.3871875133763
        },
        "n_groups": 14,
        "covered_count": 292,
        "observed_coverage": 0.7487179487179487,
        "nominal_interval_level": 0.9,
        "group_mean_coverage": 0.692643198382859,
        "interval_status": "uncalibrated_nominal_90_percent"
      },
      "by_matrix": {
        "epoxy": {
          "n_rows": 367,
          "median_abs_pct_err": 16.837166891856736,
          "mean_abs_pct_err": 43.70282649537637,
          "rmse_log10": 0.19451568059809768,
          "within20_count": 206,
          "within20": 0.5613079019073569,
          "within25": 0.6430517711171662,
          "error_quantiles_pct": {
            "25": 7.472299221658504,
            "50": 16.837166891856736,
            "75": 35.5883190483073,
            "90": 56.599964619248176,
            "95": 97.34804365103231
          },
          "max_abs_pct_err": 6645.360744057704,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 15.670341782014072,
            "mean_campaign_median_abs_pct_err": 532.9228271439351,
            "within20": 0.5661967436357679,
            "mean_abs_pct_err": 534.4995633601486
          },
          "n_groups": 13,
          "covered_count": 279,
          "observed_coverage": 0.7602179836512262,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.7024451835427445,
          "interval_status": "uncalibrated_nominal_90_percent"
        },
        "vinyl_ester": {
          "n_rows": 23,
          "median_abs_pct_err": 33.779488562510096,
          "mean_abs_pct_err": 42.92630150533516,
          "rmse_log10": 0.17312634192116566,
          "within20_count": 7,
          "within20": 0.30434782608695654,
          "within25": 0.34782608695652173,
          "error_quantiles_pct": {
            "25": 16.79274448202826,
            "50": 33.779488562510096,
            "75": 59.244501937471085,
            "90": 75.67312437425385,
            "95": 110.58873189926655
          },
          "max_abs_pct_err": 128.4875847062991,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 33.779488562510096,
            "mean_campaign_median_abs_pct_err": 33.779488562510096,
            "within20": 0.3043478260869566,
            "mean_abs_pct_err": 42.92630150533516
          },
          "n_groups": 1,
          "covered_count": 13,
          "observed_coverage": 0.5652173913043478,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.5652173913043478,
          "interval_status": "uncalibrated_nominal_90_percent"
        }
      },
      "by_rate": {
        "quasi_static_reported_le_0_1": {
          "n_rows": 113,
          "median_abs_pct_err": 10.255523832162483,
          "mean_abs_pct_err": 73.76008022083394,
          "rmse_log10": 0.259403371785317,
          "within20_count": 88,
          "within20": 0.7787610619469026,
          "within25": 0.8407079646017699,
          "error_quantiles_pct": {
            "25": 4.842145574848471,
            "50": 10.255523832162483,
            "75": 18.310704583493024,
            "90": 35.489976059953236,
            "95": 49.567427432505816
          },
          "max_abs_pct_err": 6645.360744057704,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 14.34234433550955,
            "mean_campaign_median_abs_pct_err": 492.71077630916903,
            "within20": 0.6459986772486773,
            "mean_abs_pct_err": 493.22301339466406
          },
          "n_groups": 14,
          "covered_count": 107,
          "observed_coverage": 0.9469026548672567,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.8407738095238094,
          "interval_status": "uncalibrated_nominal_90_percent"
        },
        "dynamic_reported_gt_0_1": {
          "n_rows": 277,
          "median_abs_pct_err": 23.54263513528587,
          "mean_abs_pct_err": 31.37672633022238,
          "rmse_log10": 0.15864419804061228,
          "within20_count": 125,
          "within20": 0.45126353790613716,
          "within25": 0.5379061371841155,
          "error_quantiles_pct": {
            "25": 10.173902244123846,
            "50": 23.54263513528587,
            "75": 43.157058456327405,
            "90": 63.23984808078402,
            "95": 102.31233875872088
          },
          "max_abs_pct_err": 129.0094675354488,
          "equal_campaign_sensitivity": {
            "weighted_median_abs_pct_err": 23.662548505265217,
            "mean_campaign_median_abs_pct_err": 28.445682469867748,
            "within20": 0.4683499288762447,
            "mean_abs_pct_err": 32.33605555085341
          },
          "n_groups": 8,
          "covered_count": 185,
          "observed_coverage": 0.6678700361010831,
          "nominal_interval_level": 0.9,
          "group_mean_coverage": 0.6455668316873749,
          "interval_status": "uncalibrated_nominal_90_percent"
        },
        "unknown_or_nonpositive": null
      },
      "training_fold_median_baseline": {
        "n_rows": 390,
        "median_abs_pct_err": 33.414655442348916,
        "mean_abs_pct_err": 76.51790353611445,
        "rmse_log10": 0.22268935893555752,
        "within20_count": 121,
        "within20": 0.31025641025641026,
        "within25": 0.358974358974359,
        "error_quantiles_pct": {
          "25": 17.10344827586208,
          "50": 33.414655442348916,
          "75": 48.65871767994409,
          "90": 65.26167957725337,
          "95": 85.54361702127653
        },
        "max_abs_pct_err": 15326.49727767695
      }
    }
  },
  "overlap_checks": {
    "campaign_overlap_per_fold": 0,
    "canonical_measurement_overlap_per_fold": 0,
    "enforcement": "assertions in every fold; identities must be reviewed upstream"
  },
  "input_hashes": {
    "foamgpt_psp.csv": "134f0acd9948897c4c656bcaf54460278ae01040fdc3a0337d198f57a1371689",
    "gupta_curated_3M_epoxy.csv": "59097b5f001cff4cf44b77134ab2d22e4c29f585d06c8a0e82f9475f40095b62",
    "identity_registry.json": "ddaa8b7f70c1df858e8b39ddf31a5c34cb92fd23d3d209da2d5ad3e007f201ce"
  },
  "code_hashes": {
    "foamnet/surrogate/data.py": "bd26ec3f70f4f102e6042bedbb5dc2c449ea4eafeb2e5f79260d99c0f5a54da4",
    "foamnet/surrogate/hier.py": "fef00840ca40d283151a9bb9f0a6be3b95ee78effc034d645f4ec5fac6309e02",
    "foamnet/surrogate/gp.py": "0c67ee21e7f44bdcd026be605f7eee334fe10718de0e38ce2a8962d5d7596639",
    "scripts/surrogate_metrics.py": "79bc8dbc375fd694046b64eb35d049df8611c8085fb96be17eadd3511b737442",
    "scripts/validate_surrogate_rates.py": "3c389f0bcf81317f2f7b838c7b4688b48d4a4a4f0032b597a1d886a46d996dcc"
  },
  "model_hashes": {
    "models/surrogate_hier.pkl": "1184e35fe6731e104282d38ee29acb1e8440605f7d1dbd70e41825fe36133357",
    "models/surrogate_hier_metal.pkl": "9ce9905db0d0d7efbc4e699921c60f1973a825212cd29349549e2450d9e6a6f5",
    "models/surrogate_hier_polymer.pkl": "1184e35fe6731e104282d38ee29acb1e8440605f7d1dbd70e41825fe36133357",
    "models/surrogate_strength.pkl": "ee714dccfe4bf46a5f8feb0ad20c0420327d21f775614c52262af873edf7e2f6",
    "models/surrogate_strength_polymer.pkl": "ee714dccfe4bf46a5f8feb0ad20c0420327d21f775614c52262af873edf7e2f6",
    "strength_first/surrogate_strength.pkl": "ee714dccfe4bf46a5f8feb0ad20c0420327d21f775614c52262af873edf7e2f6",
    "strength_first/surrogate_strength_polymer.pkl": "ee714dccfe4bf46a5f8feb0ad20c0420327d21f775614c52262af873edf7e2f6"
  },
  "grid_sha256": "40c338ba27e16ccc737cf069e4ac0866145fba7d0c59b44893f99b15ebd96ef6",
  "manifest_sha256": "ada7bd2c6e080a736324b5832621c890551697057fb66a15c39652ddd4809a26",
  "limitations": [
    "Joint data/rate/identity/matrix correction changes membership and estimator inputs; differences from historical metrics are not an isolated causal ablation.",
    "Individual specimen and batch identities are unknown; sample-series IDs are provisional. Unresolved source aliases and independent replicate counts limit independence claims.",
    "Nominal 90% intervals remain uncalibrated; no hydrostatic validation or factory holdout.",
    "This is repeated campaign cross-validation with fresh fits, not a separately reserved prospective final test.",
    "Unreviewed equal-valued rows are retained. Copied workbook plots and reviewed Peter republications are identity-linked; conflicting printed values remain separate.",
    "Modulus retains prior rate-domain rules (primary <1/s or missing; curated <=0.1/s); zero-rate modulus chart labels are retained without numeric-rate imputation.",
    "Positive primary compressive strength outcomes remain, including the low-strength, porous outlier; missing rates are excluded explicitly rather than guessed.",
    "Curated workbook retains the prior >5 MPa absolute-property heuristic because normalized blocks were imperfectly classified. Low absolute curated strengths and remaining labels require source review."
  ],
  "hydrostatic_validation": "none"
}
