NeurIPS 2026 · Evaluations & Datasets Track

Can agents price a reaction?

Evaluating LLMs on chemical cost reasoning, with exact answers and no judge.

Yuyang Wu1*, Yue Huang2*, Shuaike Shen1, Xujian Wang1, Shuhao Zhang1, Qiyao Xue3, Weichen Liu4, Runtian Gao1, Jian Ma1†, Xiangliang Zhang2†, Olexandr Isayev1†

1Carnegie Mellon University   2University of Notre Dame   3University of North Carolina at Chapel Hill   4University of Pittsburgh

* Equal contribution   † Corresponding authors

Worked example · CHEMCOST-0001
Amide coupling, costed at 1 mmol
Product C18H21NO2
283.37 g/mol
2-phenyl-2-methylpropanoic acid
2-phenylisobutyric acid · scale reference
49
164.2 mg
1 × 10 g
$5.50
Aniline, 4-methoxy-3-methyl-
3-methyl-4-methoxyaniline
50
137.2 mg
1 × 1 g
$14.10
N,N′-dicyclohexylmethanediimine
DCC · 1.5 equiv
81
309.5 mg
1 × 5 g
$4.84
3H-1,2,3-Triazolo(4,5-b)pyridine, 3-hydroxy-
HOAt · 1.5 equiv
81
204.2 mg
1 × 1 g
$6.16
DMF
solvent
not purchased
Packs bought$30.60
Product at 1 mmol, 78.9% yield0.2235 g
Label · USD per gram of product$136.91

A real record from the released benchmark. Pick a stage to see which part of the receipt the agent has to get right.

Photo: “Chemical Store” by Lekhaki, CC BY-SA 4.0

1,427
reactions with exact, deterministic cost labels
68
multi-step synthesis routes, two to six steps
50.6%
best agent within 25% of the true cost
66.9%
expert human reference with the same tools
Meme: Walter White in the desert, captioned "$136.91 / g" and "Say my price."
Still: Breaking Bad (AMC / Sony Pictures Television). Fan homage, non-commercial.
Exact labels

Every ChemCost label is computed exactly from frozen supplier quotes: $136.91 per gram of product for the reaction above. An agent gets credit only when its own number lands within 10% or 25% of it.

The task

From a reaction description to a dollar figure per gram.

An agent reads a reaction as a chemist wrote it down and returns one number: what it costs to buy the material for the run at a 1 mmol scale, per gram of product. Supplier prices are never in the prompt and cannot be recalled reliably, so the answer has to come from the tools. Because the label is computed from a frozen supplier snapshot under a fixed rule, every prediction is scored exactly.

01

Ground the names

Map each name to one structure. Abbreviations collide: TEA can mean triethylamine or triethanolamine.

Typical failureGives up when a name does not resolve and returns nothing.
02

Retrieve quotes

Pull every pack-level quote for each chemical: supplier, pack size, price, reported purity.

Typical failureGuesses a price from memory, then lands 2× off.
03

Select packs

Work out the mass each component needs, then buy whole packs of qualifying purity that cover it.

Typical failureReads 0.23 g as 230 g, an error of three orders of magnitude.
04

Aggregate

Sum the packs bought, leave out solvents, and divide by the grams of product the run yields.

Typical failureDrops the palladium catalyst and comes in 3.6× under.
Ground-truth label
c = Σi ∉ solvent qiMP · 10−3 · y/100

qi is the price of the whole packs bought to cover component i's required mass mi = ei Mi · 10−3 g. A pack is charged in full even when only part of it is used, so this is a procurement cost, not a consumption cost.

Metric · cost tolerance accuracy
CTA@k = 1N Σj 𝟙 [ |ĉj − cj| / cj ≤ k% ]

The share of reactions priced within k% of the label. Refusals, unparsable answers and exhausted step budgets stay in the denominator. We report CTA@10 and CTA@25.

Results

Tool access is necessary, and still not enough.

Twelve models run as ReAct agents with the same four tools and a 40-step budget. The best reach about half the reactions within 25%, below the human reference. Noise in how the reaction is written, especially free-text or OCR-style formatting, pulls every model down further.

Closed models Open-weight Chemistry-specialized Human reference

Full results table: precision, recall and CTA in every setting

Pre. and Rec. compare the components an agent lists with the ones that must be bought. Bold marks the best automated agent in each column; the human row is a reference and is not ranked.

Findings

Where procurement reasoning breaks.

Every trajectory is logged, so a wrong number can be traced to the stage that produced it.

Tool use

Failed runs make more calls, not fewer.

Across models, average tool calls track CTA@25 closely (r = 0.98), mostly because weak models barely enter the workflow. Within strong models, failures come with extra calls, concentrated in supplier-quote retrieval that never converges. GPT-5 fails the other way, stopping early.

Tool calls in failed trajectories relative to successful ones.

Input noise

Formatting is what makes agents give up.

Rewriting a reaction as prose or OCR-damaged text raises abstention by 26.3 points on average. No other single kind of noise adds more than 6. The causes differ by model: exhausted step budgets, unfinished work, or outright refusal.

Clean+Fmt
Reaction structure

Each synthesis step costs accuracy.

Route depth is the strongest difficulty axis. Every model loses roughly 24 to 25 points of CTA@25 going from single-step to deep routes, while the number of components in a single step matters much less.

CTA@25 by number of synthesis steps, pooled across agents (paper setting).

Domain models

Knowing the chemicals is not the same as pricing them.

Chemistry-tuned models name the right components with high precision and still score zero, because they rarely call the tools and estimate prices from memory instead.

ChemDFM-v2.0-14B
93.9
Precision
49.5
Recall
0.0
CTA@25
ChemLLM-20B
89.0
Precision
54.1
Recall
0.0
CTA@25

Clean setting, percent.

Data & code

Run it on your own agent.

The release includes the evaluation harness, every record with its label and selected packs, and the frozen pricing database the labels come from. One script recomputes every label from that database.

# install and fetch data
git clone https://github.com/HeinzVonHank/ChemCost.git
cd ChemCost
pip install -e ".[eval,tests]"
python scripts/download_data.py
python scripts/verify_labels.py

# evaluate a ReAct agent
python scripts/run_evaluation.py \
  --agent react --provider anthropic \
  --model claude-sonnet-4-6 \
  --output results/react.json
Records
1,427 reactions: 1,359 single-step, 68 multi-step routes
Pricing
Frozen 2026 snapshot of pack-level supplier quotes, shipped as SQLite
Tools
get_supplier_quotes, calculate
Metadata
Croissant, served by Hugging Face
License
Code MIT · data CC BY-SA 4.0

The public release uses a harder view than the paper. Agents see component names, often systematic or less familiar synonyms, and the amounts used in the lab. Roles, equivalents, molecular weights and yields are withheld, and there is no name-search tool. Reference runs on this view:

Model (Codex CLI, two tools)CTA@10CTA@25Multi-step CTA@10
gpt-5.6-luna64.272.741.2
gpt-6-luna47.557.722.1

Prices are a research snapshot and are not meant for real purchasing decisions.

Cite

BibTeX

@inproceedings{wu2026chemcost,
  title     = {Can Agents Price a Reaction? Evaluating {LLMs} on Chemical Cost Reasoning},
  author    = {Wu, Yuyang and Huang, Yue and Shen, Shuaike and Wang, Xujian and Zhang, Shuhao and
               Xue, Qiyao and Liu, Weichen and Gao, Runtian and Ma, Jian and Zhang, Xiangliang and
               Isayev, Olexandr},
  booktitle = {Advances in Neural Information Processing Systems (NeurIPS),
               Evaluations and Datasets Track},
  year      = {2026},
  url       = {https://arxiv.org/abs/2605.07251},
  eprint    = {2605.07251},
  archivePrefix = {arXiv}
}