{
  "n": 600000,
  "train": 420000,
  "test": 180000,
  "buyers": 14400,
  "training_buyers": 10080,
  "models": [
    {
      "message": "control",
      "training_rows": 61217,
      "training_buyers": 1338,
      "converged": true
    },
    {
      "message": "backcountry",
      "training_rows": 60425,
      "training_buyers": 1408,
      "converged": true
    },
    {
      "message": "endurance",
      "training_rows": 58083,
      "training_buyers": 1549,
      "converged": true
    },
    {
      "message": "racquet",
      "training_rows": 60772,
      "training_buyers": 1388,
      "converged": true
    },
    {
      "message": "strength",
      "training_rows": 59029,
      "training_buyers": 1497,
      "converged": true
    },
    {
      "message": "team",
      "training_rows": 60850,
      "training_buyers": 1470,
      "converged": true
    },
    {
      "message": "water",
      "training_rows": 59624,
      "training_buyers": 1430,
      "converged": true
    }
  ],
  "holdout_auc": {
    "control": 0.8897662002316598,
    "backcountry": 0.8780272914914762,
    "endurance": 0.8887084206086999,
    "racquet": 0.8967718341057231,
    "strength": 0.8926739747479691,
    "team": 0.8824424853832361,
    "water": 0.8581267641718267
  },
  "uniform_choice": "endurance",
  "uniform_expected_contribution": {
    "control": 0.4304876062026025,
    "backcountry": 0.5942558059928248,
    "endurance": 0.6269401140026172,
    "racquet": 0.5227938600569816,
    "strength": 0.6026240488829203,
    "team": 0.5396391267701988,
    "water": 0.6031660771879935
  },
  "strategies": {
    "No message": 0.430487606202597,
    "Random assignment": 0.560250352894842,
    "Best uniform": 0.626940114002617,
    "Response targeting": 0.6494464476972568,
    "Value targeting": 0.7044990773747056
  },
  "allocation": [
    {
      "message": "control",
      "response_share": 0.0,
      "value_share": 0.018655555555555557
    },
    {
      "message": "backcountry",
      "response_share": 0.008038888888888889,
      "value_share": 0.16725555555555555
    },
    {
      "message": "endurance",
      "response_share": 0.6992277777777778,
      "value_share": 0.4083
    },
    {
      "message": "racquet",
      "response_share": 0.06832777777777778,
      "value_share": 0.13198333333333334
    },
    {
      "message": "strength",
      "response_share": 0.20324444444444445,
      "value_share": 0.046427777777777776
    },
    {
      "message": "team",
      "response_share": 0.009333333333333334,
      "value_share": 0.15756111111111112
    },
    {
      "message": "water",
      "response_share": 0.011827777777777777,
      "value_share": 0.06981666666666667
    }
  ],
  "changed_choice_share": 0.5674611111111111,
  "margin": 0.4,
  "campaign_scale": 5000000,
  "notes": [
    "Separate message-specific logistic and conditional OLS fits reproduce the fully interacted source models.",
    "Best uniform message selected using training predictions, not test outcomes.",
    "Conditional order predictions clipped at zero as in source; 40% gross margin; contact costs omitted.",
    "All strategy amounts are model-implied contribution on held-out features, not observed policy effects."
  ],
  "provenance": {
    "commit": "006097f4973cd45d3a0d7e70784c67e6de187cfa",
    "files": {
      "pentathlon_nptb.ipynb": "1d7afd138425b81918536e2d17a30261553bca0a0235b3ca73526ecf36b63c12",
      "data/pentathlon_nptb.parquet": "697339cb62286e1fa2f7d9cb6afe6d84cc1c1dcc78bd7c696ae8eba630d78ce9"
    },
    "python": "3.12.0",
    "numpy": "2.5.3",
    "pandas": "3.0.5",
    "polars": "1.44.2",
    "scipy": "1.18.1",
    "statsmodels": "0.15.0",
    "sklearn": "1.9.1"
  }
}
