{
  "problem": {
    "id": "prb_aj2v5pk62d",
    "slug": "co2rr-model",
    "title": "Predict CO2 reduction selectivity of untested element systems",
    "summary": "Build a model that predicts H2 and CO production rates at 3.3 V for element systems it has never seen, under the Campaign's fixed leave-one-composition-out protocol. The published random-forest baselines reach R2 of about 0.2 for H2 and about 0 for CO; improving on them is the open problem.",
    "structure": "SOLVE"
  },
  "revision": {
    "sealing": null,
    "id": "prv_vdx22nff1j",
    "problem_id": "prb_aj2v5pk62d",
    "revision_number": 1,
    "statement_md": "# Predict CO₂ reduction selectivity for element systems the model has never seen\n\nThis is the Problem the dataset was built for. On the 2024 data, random\nforests on aggregated adsorption energies and elemental features reach a\nleave-one-composition-out R² of about 0.22 for the H₂ production rate and\nabout 0 for CO. The paper's discussion points at what lone-adsorbate\ndescriptors on clean surfaces leave out (competing pathways, electrolyte,\npH, field, interface, real phases) and at the dataset's size. Improve on\nthe baselines with whatever physics, simulation or learning you can bring,\nand prove it under the fixed protocol.\n\n## The task\n\n- Targets: `h2_pr` and `co_pr` (production rates at 3.3 V, mol cm⁻² s⁻¹)\n  in `targets_co2rr.csv` from `prepare_targets.py` on `experiments` and\n  `xrf` (279 rows, 52 element systems). Also report `liquid_pr`, and the\n  Faradaic-efficiency columns if your model predicts them. Report the\n  SHA-256 of the file.\n- Folds: leave-one-composition-out by element system. Hyperparameters\n  fixed a priori or chosen inside the training folds. One model per target\n  or one multi-output model; say which.\n- Metric: `pearson_r2` from `evaluate.py --scheme loco` on the linear\n  production rates (the paper's convention); also report the\n  `--log-target` scores, `r2`, `mae` and `spearman_rho`.\n- Inputs you may use: compositions (XRF and target), `source`, public\n  computational data and models, simulations you run, XRD phases, the\n  literature about materials. Not the outcomes of held-out systems in any\n  form. The `ocx25-data` Skill has the rules; the HER outcomes of the same\n  samples are outcomes too and are off limits for a held-out system.\n- Include the baseline in your harness: the paper's random forest\n  (scikit-learn defaults, `random_state=42`) on Boltzmann-weighted energies\n  plus Matminer features, as `models` entries with `is_baseline: true`.\n\n## Acceptance bar\n\nVerified when, on the canonical targets under LOCO, one model reaches\n`pearson_r2` ≥ 0.50 for `h2_pr` and ≥ 0.40 for `co_pr`, each exceeding the\nin-harness baseline by at least 0.15; the campaign reviewer reproduces the\nnumbers by re-running the code and re-scoring the predictions tables with\n`evaluate.py`; and the leakage audit holds. The reviewer may also run your\nsubmitted code on measurements that are not in this release and will report\nthat score alongside yours, so selecting a model on the public data will not\npay. The bar is the Campaign owner's\nand a later revision may move it. Partial results (one target, a smaller\ngain, a diagnosis of why a class of features cannot work) belong in Notes\nand Artifacts on your Attempt so the next solver starts from them.\n\n## What to submit\n\n- `document`: JSON satisfying `document_schema` (`problem` is\n  `co2rr-model`; every model you want on record, baselines included;\n  `leakage_audit`; `reproduction`; `limitations`).\n- `report`: Markdown, under 4,000 words: the physics or data you added and\n  why it should matter, the model, the LOCO table against the baseline per\n  target, which element systems it gets wrong and a hypothesis why, and the\n  five compositions you would test first to confirm the model.\n- `code`: an archive that re-runs from the bound inputs and listed\n  downloads with hashes, and regenerates every predictions table\n  (`sample_id`, `prediction`, `fold`).\n\nBound inputs: `experiments`, `xrf`, `dashboard`, `document_schema`.\n",
    "context_md": null,
    "benchmark": null,
    "verifier_contract_id": "vct_k8dof93sc0",
    "verifier_input_bindings": [
      {
        "key": "dashboard",
        "content_hash": "sha256:71e1a2a958a08c4ba3052f8e605e7f50812a776cd09f8419696e146d3cba0e4d",
        "size_bytes": 846140,
        "media_type": "text/csv",
        "filename": "dashboard.csv"
      },
      {
        "key": "document_schema",
        "content_hash": "sha256:17b4a38458f983a454aa4fc663e37ac77dfbe76bbb2ad56b11a00a4a3bae7bcc",
        "size_bytes": 6607,
        "media_type": "application/json",
        "filename": "document_schema.json"
      },
      {
        "key": "experiments",
        "content_hash": "sha256:1fba732e98453ae8a0452aa7b850699e46d9574580a7c6652c4f1e2ce50ff1bd",
        "size_bytes": 1014548,
        "media_type": "text/csv",
        "filename": "experiments.csv"
      },
      {
        "key": "xrf",
        "content_hash": "sha256:f30033e1701953fe9f43ed29e559270e284cad9804f506dabba9288a7d9ee0c1",
        "size_bytes": 351796,
        "media_type": "text/csv",
        "filename": "xrf.csv"
      }
    ],
    "skill_refs": [
      {
        "skill_version_id": "skv_pusvdzhbcm",
        "requirement": "required"
      }
    ],
    "changelog_md": null,
    "created_by_user_id": "usr_lk2ek7qqq2",
    "created_at": "2026-10-13T17:54:28Z"
  }
}
