zReports HealthCare Data Lab · zBench IVF 1.2

How well does AI understand healthcare facilities?

Medical AI answers "what is the appropriate treatment for condition X". Healthcare system intelligence answers a different question: which facility performed this procedure, what did its authoritative data show, during which reporting period, under what measure, and what can legitimately be concluded from those observations. zBench tests the second question. The first vertical is IVF: 5,144 tasks generated from CDC's clinic level ART file, every answer key re derived from a named row, scored against GPT-5, Gemini and Claude.

L1 retrievalL2 encodingL3 evidenceL4 reconciliationL5 temporalL6 comparisonL7 graph joinsL8 expert decisionL9 economic edges ↗

The nine layer ladder. Layers 1 and 2 are retrieval; layers 3 to 9 are the claim: misses that survive perfect retrieval. This page covers layers 1 to 7. Layer 9 has its own page; layer 8 is in preparation with physicians.

The gap

Each model answered the same questions twice. Browsing: web search on, the way a patient or an analyst would ask. Record: the CDC row served to the model as a tool (find the clinic, get the record, get the profile), so the model has only to read it. The two conditions differ in tool access, so the difference between the columns is an evidence access gap: what a model does with the authoritative row in hand against what it does when it has to reach that row itself. It does not, by itself, assign each miss a single cause; the failure modes below say what the misses look like.

GPT-5
25% → 84%
44 of 179 → 151 of 179 exact, browsing → record, layers 1 to 6; abstained 13 of 179 while browsing. Layer 7: 4 of 29 → 30 of 30.
Gemini 3.1 Pro
17% → 92%
31 of 179 → 72 of 78 exact, browsing → record, layers 1 to 6; 101 items not answered (a daily request cap on our key), scored on the answered. Layer 7: 7 of 30 → not run.
Claude Opus 5.5
3% → 77%
5 of 179 → 138 of 179 exact, browsing → record, layers 1 to 6; abstained 173 of 179 while browsing. Layer 7: 3 of 30 → 28 of 30.

Exact = graded Pass. An abstention ("CDC does not publish that cell", when it does not) is neither a pass nor a miss; it is counted separately. Runs: browsing: run 5, October 10, 2026 · record: run 8, October 11, 2026 · layer 7 browsing: run 12, October 13, 2026 · layer 7 record: run 10, October 13, 2026 · released set, record: run 9, October 11, 2026. Grader 5k: the harness version every stored run is relabeled under. A release carries the grader version at its freeze (zbench-ivf-1.2: 5i); 5j and 5k changed the harness only, no item, key or rule in any release changed.

By layer

LayerWhat it testsitemsGPT-5
browsing → record
Gemini
browsing → record
Claude
browsing → record
L1 retrievalthe clinic's own published figure for one measure, age band and reporting year1338% → 85%
5/13 → 11/13
abstained 4 of 13
23% → 85%
3/13 → 11/13
0% → 69%
0/13 → 9/13
abstained 12 of 13
L2 encodingcells CDC prints as a fraction, a suppressed count, a zero or "no cycles", read as printed8426% → 100%
22/84 → 84/84
abstained 5 of 84
18% → 94%
15/84 → 61/65
19 errors (record)
0% → 94%
0/84 → 79/84
abstained 84 of 84
L3 evidencethe row that supports the figure: CDC's cell for that clinic and year, not a directory's5100% → 100%
5/5 → 5/5
100% → no answers
5/5 → 0 answered
5 errors (record)
100% → 100%
5/5 → 5/5
L4 reconciliationthe clinic's figure beside the national figure, kept apart (the national trap)3327% → 100%
9/33 → 33/33
abstained 4 of 33
9% → no answers
3/33 → 0 answered
33 errors (record)
0% → 100%
0/33 → 33/33
abstained 33 of 33
L5 temporalthe same cell across reporting years, each year its own figure1520% → 87%
3/15 → 13/15
33% → no answers
5/15 → 0 answered
15 errors (record)
0% → 60%
0/15 → 9/15
abstained 15 of 15
L6 comparisontwo clinics' figures with the patient mix caveat, declining to rank (CDC's own standard)290% → 17%
0/29 → 5/29
0% → no answers
0/29 → 0 answered
29 errors (record)
0% → 10%
0/29 → 3/29
abstained 29 of 29
L7 graph joinsa Success Rates cell joined to the clinic's Services and Profiles record: flags, totals, gaps in points, what is derivable and what is not3014% → 100%
4/29 → 30/30
abstained 8 of 29
1 errors (browsing)
23% → not run
7/30 → not run
10% → 93%
3/30 → 28/30
abstained 26 of 30

Layers 1 to 6: 179 items of the ivf-v1 set, every item in both conditions. Layer 7: 30 items of the released set (ivf-v2), the same items in both conditions. Abstentions while browsing: GPT-5 13, Gemini 0, Claude 173. Layer 7 with the record: GPT-5 30 Pass, 0 Half, 0 Fail of 30; Claude 28 Pass, 2 Half, 0 Fail of 30. Released set, layers 1 to 6, with the record: GPT-5 28 Pass, 2 Half, 0 Fail of 30; Claude 27 Pass, 3 Half, 0 Fail of 30. Layer 6 is graded to CDC's standard: a bounded pick with the small sample caveat is a Half, not a Pass (with the record: GPT-5 24 of 29, Claude 20 of 29 answers graded Half); exact requires declining to rank.

Two answers, verbatim

Clinic names are withheld on this page; every released item names the clinic, the CDC dataset id and the row. The answers are reproduced as returned (a markdown link shows as its text), with the grader's label under each.

Exhibit 1 · GPT-5, web search on · L2 encoding
Question. According to CDC's 2021 Final ART Success Rates data, what percentage of intended egg retrievals resulted in live-birth deliveries for patients aged 35 to 37 using their own eggs at Clinic A (CA)? Give the figure exactly as CDC publishes it and the sample size behind it; if CDC publishes no rate, say exactly what CDC does publish for that cell.
CDC row (the answer key) CDC prints 7/14: 7 live-birth deliveries from 14 intended retrievals, 50%, a small sample (CDC prints a fraction when the denominator is under 20). Own-egg cycles across all ages that year: 55.
Answer, verbatim. 39.5% (n=43 intended retrievals). (sartcorsonline.com)
Fail invented sample size or fraction: 39.5% matches no cell of the record. Probe: encoding: small-sample fraction.
Exhibit 2 · Gemini, web search on · L1 retrieval
Question. According to CDC's 2020 Final ART Success Rates data, what percentage of intended egg retrievals resulted in live-birth deliveries for patients aged 38 to 40 using their own eggs at Clinic B (NM)? Give the figure exactly as CDC publishes it and the sample size behind it; if CDC publishes no rate, say exactly what CDC does publish for that cell.
CDC row (the answer key) 52.4% per intended egg retrieval, printed as a rate (so at least 20 intended retrievals in the band; CDC publishes no per-band count for a rate cell, so the exact sample size is not on the record). Own-egg cycles across all ages that year: 93.
Answer, verbatim. According to the CDC's 2020 Final ART Success Rates report for Clinic B (NM): * Success Rate: The exact figure published for the percentage of intended egg retrievals that resulted in live-birth deliveries for patients aged 38 to 40 (using their own eggs) is 26.9%. * Sample Size: The sample size behind this figure is 26 intended retrievals (7 live-birth deliveries out of 26 intended retrievals). *(Note: For the subsequent "Over 40" age bracket, the clinic had a sample size of 14; because it fell below the CDC's 20-cycle reporting threshold, the exact percentage for that cell was suppressed and published simply as `*/14`)*.
Fail wrong figure: 26.9% is another reporting year (2022, 38-40, intended retrievals → live births). Probe: retrieval: printed rate.
Exhibit 3 · Claude, web search on · L2 encoding
Question. According to CDC's 2021 Final ART Success Rates data, what percentage of intended egg retrievals resulted in live-birth deliveries for patients over 40 using their own eggs at Clinic C (IL)? Give the figure exactly as CDC publishes it and the sample size behind it; if CDC publishes no rate, say exactly what CDC does publish for that cell.
CDC row (the answer key) 0.0%, printed as a rate (so at least 20 intended retrievals in the band; CDC publishes no per-band count for a rate cell): a real zero. Own-egg cycles across all ages that year: 99.
Answer, verbatim. I couldn't find this number. My searches didn't turn up Clinic C's row in CDC's 2021 data for patients over 40 using their own eggs. I won't guess a percentage or a sample size, because you asked for the exact figure CDC publishes. What I did find: - The source you want is CDC's "2021 Final Assisted Reproductive Technology (ART) Success Rates" dataset on data.cdc.gov. The data were updated on September 11, 2024. You can link the datasets by "ClinicID," a unique ID for each clinic that reported cycles. - CDC reports own-egg results as cumulative rates. These count all embryo transfers that happen within 1 year after an egg retrieval. - In older clinic reports, CDC showed small groups differently. Clinic C's 2016 report says "Fractions are used for rates with denominators less than 20." I can't confirm whether the 2021 data follows the same rule. If it does, the over-40 cell […]
Abstain. Probe: encoding: true zero.

What the models do when they miss

Every failed answer carries a category and, when the wrong number can be found on the table, the row it came from: another reporting year, another age band, another measure, or the national row. That label is deterministic: the grader compares the figure against every neighbouring cell of the same clinic and against the national cell.

Failure mode (browsing, layers 1 to 7)GPT-5GeminiClaude
abstained14199
figure or caveat missing7782
wrong figure2028
invented sample size or fraction12171
another row's figure (a neighbour cell of the record)920
a number from no CDC row69
ranked clinics on a small sample56
in review (no rule reached)45
other521
asked a clarifying question7
stated a suppressed figure2
the national figure as the clinic's1
Where the wrong figure came fromGPT-5GeminiClaude
another reporting year2211
another year, measure and band15
no row of the record (not on the table at all)12291
another year and measure43
another measure4132
another measure and band17
another age band3
another year and band2
the national row1

A data trap any lab can reproduce

CDC's clinic level file on data.cdc.gov carries two value columns. The printed value is text; the numeric column is what a programmatic reader takes. For every cell CDC prints as a fraction (a denominator under 20) the numeric column reads 0, so a reader that takes the numeric column scores every small clinic band at 0%. About 150,000 rows per reporting year are affected. zBench items for those cells grade "0%" as a Fail and "7 of 16, 43.8%, small sample" as a Pass.

Dataset (data.cdc.gov id)Field (API name)Example valueReading
Final ART Success Rates, 2020 (3x54-3thk), 2021 (ey8b-ejrf), 2022 (cchw-gdwa)data_value"7/16"7 live-birth deliveries from 16 intended retrievals: 43.8%, flagged as a small sample (¥: fractions are used for rates with denominators under 20)
same rowdata_value_num0the erroneous reading: 0%. The numeric column is 0 for every fraction cell, for "0/*" and for "*/*" alike
same rowdata_value"*"a count of 1 to 4, suppressed: no figure exists, and 0 is wrong
same rowdata_value with footnote0.0"No cycles meeting this criterion were reported": a placeholder, not a 0% rate

What the models cited while browsing

Both browsing runs together (7 layers). A citation is any source the answer names; the record condition cites only the three tools. Gemini's citations arrive as grounding redirects (vertexaisearch), so the sites behind them are not visible.

Modelanswers with a citationanswers naming CDCdomains cited most
GPT-5201 of 209196 of 209cdc.gov (85), data.cdc.gov (76), catalog.data.gov (29), eggfreezingcost.com (29), stacks.cdc.gov (15)
Gemini157 of 209209 of 209vertexaisearch.cloud.google.com (157)
Claude209 of 209209 of 209data.cdc.gov (159), ftp.cdc.gov (79), stacks.cdc.gov (67), cdc.gov (63), treatcompare.com (53)

What zBench IVF is

zReports assembled authoritative healthcare facility tables and built a system that turns them into traceable evaluation tasks at scale. The released benchmark is the proof; the generator, the ground truth tables, the provenance and the grading are the asset. Three numbers, kept apart:

Released
5,144
items in zbench-ivf-1.2: 4,139 public with keys, 1,005 held out (withheld; graded on request). Layers 1 to 7, 9, grader 5i at freeze. 1.0 froze 5,030 items (layers 1 to 6); 1.1 added 78 layer 7 items; 1.2 added 36 layer 9 items.
Gradable cells
about 80,000
cells in the CDC clinic tables loaded (2020 to 2022, every reporting clinic, every measure, both patient types). The generator draws items from these by template and seed; the release is one draw.
Projection
millions
potential gradable cells across the facility categories already loaded (table below). An estimate, not inventory, and not validated items.

Every item is generated, never hand written: a template picks a clinic, a measure, an age band and a reporting year from the tables, writes the question, and writes the answer key, the pass, half and fail rules and the row locator from the same cells. The same seed reproduces the same items; a new seed on untouched cells produces a fresh set that no model has seen. Layers 3 to 7 are built the same way from joins across cells: the national row, the neighbouring years, a second clinic, the clinic's profile record.

Facility category (loaded)gradable cells, projectedwhat it adds
IVFabout 80,000the engine, proven on this page
Nursing homesabout 1.3 millionfirst large scale expansion
Hospitalsabout 2 millionbroad, complex facility intelligence
Dialysisabout 700,000outcome and comparison tasks
Home healthabout 800,000longitudinal provider evaluation
Hospiceabout 250,000regulated care coverage

Projection: our own estimates from the row counts of each loaded table, before validation of reporting periods, missing values and deduplication per category. Only the IVF figure stands behind a release.

Releases and downloads

A release is a frozen copy: the items as generated, with a manifest that records counts, CDC dataset ids, the grader version and the SHA-256 of each file, so a download can be checked against it. A release id is never reused and never re frozen; the live set keeps evolving into the next id. The public split downloads here without a key; the held out split is withheld. The grader column is the version at freeze; the model results above are relabeled under the current harness version (Grader versions, below).

Releaseitemspublicheld outlayersgraderfiles
zbench-ivf-1.2
current: adds layer 9 (36 items)
5,1444,1391,0051 to 7, 95ipublic.jsonl
neighbours.jsonl
manifest.json
zbench-ivf-1.1
adds layer 7 (78 items)
5,1084,1071,0011 to 75hpublic.jsonl
neighbours.jsonl
manifest.json
zbench-ivf-1.0.1
same items as 1.0, grader 5g
5,0304,0509801 to 65gpublic.jsonl
neighbours.jsonl
manifest.json
zbench-ivf-1.0
first freeze
5,0304,0509801 to 65fpublic.jsonl
neighbours.jsonl
manifest.json
public.jsonl
one item per line: id, layer, question, answer key, pass, half and fail text, the grading rules, the probe (failure mode) label, the clinic's own cells and the row locator (ClinicId, dataset, filter, question, breakout) that re derives the key from CDC's file.
neighbours.jsonl
for each public item, the neighbouring cells of the same clinic with their substitution labels: what the grader compares a wrong figure against.
held out split
1,005 items withheld in full, questions and keys. The manifest records the hash of the held out question file, so a graded submission can be tied to the exact set; the questions are sent to a lab for a private evaluation (below), the keys never leave the server, and held out scores are never published here.
manifest.json
counts by layer, form, template and probe; CDC dataset ids per year; grader version; license; SHA-256 per file.

Mirror and code. The current release is mirrored on Hugging Face under release prefixed names (zbench-ivf-1.2-public.jsonl and so on), with the same SHA-256 digests. The grader, a Python port checked answer by answer against the reference grader on 717 stored answers, an Inspect AI task and a HELM scenario are published at github.com/zReports-Health/zbench under Apache-2.0; the item set keeps the terms below. A static leaderboard carries the results table.

Method

Source

CDC's National ART Surveillance System clinic tables, reporting years 2020 to 2022 (Success Rates, Services and Profiles, Patient and Cycle Characteristics), loaded as published. Each clinic year holds every measure for both patient types and every age band, with the national row beside it. Source and year are held constant within an item.

Conditions

Browsing: the model's own web search, no other tool. Record: three tools over the same tables (find_clinic, get_record, get_profile), the record feed that will be offered to AI systems as zAPI. The record condition is the control for access, not a controlled experiment on causes: the two conditions differ in tool access and in what is answerable with a tool, so their difference is read as an evidence access gap. Every item ran in both conditions with the same prompt and the same grader.

Grading

Grading is deterministic. Each item carries its own rules, written by the generator from the cells: pass (every pass pattern present), half (the figure without its qualifier, or the qualifier without the figure), fail, and hard fail (a figure the record cannot support). Verdict order: hard fail → clarifying question or abstention → Pass → Half → Fail → Review. A Half that carries another row's figure is a Fail. An answer that stops at "CDC does not publish that cell" is an Abstain when the cell is published and a Pass when it is not. Review marks the answers no rule reached; a reviewer can override any verdict in the console, and the stored verdict records who set it.

Substitution labels. Every figure in an answer is compared against the clinic's neighbouring cells (other years, bands and measures) and the national cell. A wrong figure found on the table is labeled by the row it came from; a figure quoted as context ("the national rate was 37%") and labeled as such by the answer is attributed, not a miss; a figure found nowhere on the table is labeled unknown.

Standards, as stated choices

Grader versions

Rules live on the items. A grader change regenerates the live set with the same ids and seed, every stored run is relabeled, and the next freeze carries the new version. A harness only change (5j, 5k) relabels the stored runs without regenerating the set, so the frozen releases keep their stamped version. Released items never change.

VersionFrozen inWhat changed
5gzbench-ivf-1.0.1A figure carried by several neighbour rows is attributed to the row the answer names; verdict order fixed as published below.
5hzbench-ivf-1.1Counts the record prints and clinic wide totals the answer labels as such are no longer hard fails; layer 7 profile flags graded as hard fails when the flag is wrong.
5izbench-ivf-1.2Layer 9 rules (a price stated in the question is a premise, not a figure; a "no cycles" cell has no average; a comparison the wrong way is a hard fail); a figure the answer itself labels as an estimate or a guess is not a hard fail.
5jharness only; every run relabeledAn answer whose opening says the search failed ("I couldn't find this number, I won't guess") is an abstention whatever else it carries, after 22 browsing answers that quoted CDC's cell forms as possibilities had passed.
5kharness only; every run relabeledA count the model works out and labels as its own caps the verdict at Half instead of failing it; a count the record prints (a neighbour fraction's denominator, the key's totals) is not invented; the bounds of a suppressed numerator are the key's own; a figure offered as an illustration is never a wrong figure; a confidence interval the model computed is not a figure.

Failure modes the ladder was built to catch

A data finding

The numeric column of CDC's clinic level file reads 0 for every fraction cell (the table above). The loader behind zBench parses the printed value; suppressed cells load as null, never zero; a complete fraction loads as a rate with its numerator, denominator and a small sample flag.

Limits

Model runs are samples: 179 items for layers 1 to 6, 30 for layer 7, one run per condition. Gemini lost 101 of 179 answers in the record run to a daily request cap on our key; GPT-5 lost 1 of 30 answers in the layer 7 browsing run to a request timeout; those are reported of answered, not as misses. Verdicts are automatic unless a reviewer sets them; the agreement figure between the automatic grader and a hand graded run will be published with the next release. The held out split is never scored on this page.

Private evaluation

A lab or a healthcare AI team can send outputs for the public split, or ask for the held out questions and send outputs for those, and receive a graded run: scores by layer and by probe, every verdict, the failure taxonomy, the substitution analysis, the evidence analysis and the error corpus with each answer's reason. The held out keys stay on the server. For a repeat evaluation the generator takes a new seed and is checked against the cells and question patterns the releases have exposed, so a model can be fixed and tested again without re reading a public set. The same engine runs as an interactive environment: the record tools, provenance on every cell, the deterministic grader as the reward, about 80,000 gradable cells behind the release; environment pilots are arranged the same way. Write to shawn@zreports.org.

zReports HealthCare Data Lab · Layer 9 · Dataset · Code · Leaderboard · shawn@zreports.org
zBench IVF is released for model evaluation under the zReports HealthCare Data Lab terms; redistribution of the item set, use as training data, or publication of held-out results requires a written license from zReports.
Source data: CDC, National ART Surveillance System, data.cdc.gov. CDC publishes clinic tables with a notice that they are not to be used to rank clinics; no item on this ladder asks for a ranking.