NICE + PBAC oncology · cross-jurisdiction, cited

Same drug, two HTA bodies: every decision, cited at field level.

NICE and PBAC oncology decisions, extracted into structured fields, every value cited to its source passage. Ask how both bodies ruled on the same drug and see each answer in its own framework, in one query.

Reading this as
127 decisions · NICE + PBAC oncology, 2025→2 bodies, one graphEvery field cites its source passageWhat loads next · chosen with early partners
What you get

An HTA dataset you can actually trust, query, and audit.

HTA decisions are public PDFs, hundreds of pages each. What HTA Core adds is the structured record underneath them: field-level facts your team and your agents can query, verify and build on. Cited to the passage, scored for confidence, reproducible as of any date, and served in each body's own framework.

01 · CROSS-JURISDICTION

One drug, across bodies.

The question "every decision for drug X in indication Y" is a single call across NICE and PBAC, and each verdict arrives in its own framework: NICE's ICER against a willingness-to-pay range, PBAC's structured clinical claim. Same drug, same trial, sometimes opposite calls, shown side by side and never force-normalised into one score.

02 · CITATIONS

Every field traces to a passage.

Document, section, character offsets, returned inline with the value. An analyst can verify any number in seconds, and an audit trail is a copy-paste away: the first thing your regulator and your legal team ask for, attached to every response.

03 · HONEST ABSENCE

Absence is typed, never guessed.

Confidential discounts, redacted ICERs, dates never stated: much of what matters is deliberately unpublished. Those fields come back as typed absences (confidential_redacted is not not_stated), never as a fabricated number. If we can't cite it, we don't assert it.

04 · CONFIDENCE

Built for calibration.

Every field returns a confidence score built to be calibrated: a 0.95 should mean agreement with a domain expert 95% of the time. The golden-set review that proves it (experts who read these documents professionally scoring the pipeline's extraction field by field) is being set up now, and we're recruiting the reviewers. Until then the scores are labelled for what they are: the pipeline's own estimate.

05 · REPRODUCIBLE

Ask "as of last quarter."

Every assertion is versioned. Pin any query to a past date and get the answer your team would have gotten on that date: the same number, the same citation, every time. Briefs, models, and submissions become reproducible by default.

The product

Pick a decision. Read the source.

NICE and PBAC decisions, extracted at field level with passage-level citations and confidence per field, each body in its own framework. Click a decision, then a field: the real source passage and validation trail open on the right. These are highlight fields from each record; the full record an agent gets runs much deeper (comparators, trials, restrictions, critiques), every value cited and scored exactly like this.

NICE + PBAC · cited7 decisions
TA1149
belantamab mafodotin, bortezomib, dexamethasone
2026-04Recommended (restricted)
multiple myeloma, second line only
PBAC 5.02
belantamab mafodotin, bortezomib, dexamethasone
2025-11Not recommended
multiple myeloma, second line (after one prior l
TA1156
osimertinib
2026-05Recommended
non-small-cell lung cancer, EGFR exon 19 deletio
PBAC 6.07
osimertinib
2025-07Recommended
non-small cell lung cancer, EGFR pathogenic vari
TA1042
selpercatinib
2025-01Recommended (restricted)
non-small-cell lung cancer, RET fusion-positive,
PBAC 5.15
vorasidenib
2025-07Not recommended
astrocytoma or oligodendroglioma, IDH-mutant
TA1168
imlunestrant
2026-06Terminated
advanced breast cancer, oestrogen receptor-posit
uk-nice-ta1149

belantamab mafodotin, bortezomib, dexamethasone · multiple myeloma, second line only

decision_date · 2026-04hta_body · NICEas_of · 2026-07-20
Drug (INN)
belantamab mafodotin + bortezomib + dexamethasone
98%
Indication
multiple myeloma
98%
Line of therapy
second line only
97%
Decision outcome
Recommended (restricted)
95%
Comparator
Dar-Bor-Dex (daratumumab plus bortezomib and dexamethasone)
90%
Committee ICER
confidential (PAS)
90%
WTP threshold
£25,000–£35,000/QALY
90%
Key critique
Unanchored MAICs are inherently uncertain, and the ASPIRE trial population on which the MAIC was based may…
90%
Lead trial
DREAMM-7
90%
Source citationfield · drug
Belantamab mafodotin with bortezomib and dexamethasone for previously treated multiple myeloma
extraction · automated pipelinemodel · claude-opus-4-8confidence · 98%expert review · pending
provenance · extracted

Real extractions from the HTA Core corpus: NICE and PBAC decisions, each field traced to its source passage. A sample of each record's fields; values reflect the published guidance and PSDs as extracted.

One record · agent-callable

A live MCP server. Watch Claude use it.

HTA Core ships agent-first: a typed MCP server that Claude, Cursor and any MCP-aware client can call today. Citations and confidence ride along on every field, and each body stays in its own framework. Underneath is one canonical decision record, the same structured shape every surface serves; a resource-oriented REST API over that record follows.

Claude Desktop · via MCP tools/call · compare_decisions get_decision · uk-nice-ta1149 one decision · every linked entity
You › How did NICE and the PBAC differ on belantamab mafodotin?

Claude › compare_decisions({"assessment_ids":
           ["uk-nice-ta1149", "au-pbac-2025-11-belantamab-mafodotin-nov2025"]})

Claude › NICE recommended it, restricted to adults with one prior line of
  therapy: the committee found the ICERs "within the range NICE considers
  a cost-effective use of NHS resources" [TA1149 · final draft guidance
  §3.22 p.28] — that range being £25,000–£35,000/QALY [§3.21 p.26].

  The PBAC did not recommend it, despite accepting the efficacy claim:
  "the primary reason for this outcome was the proposed place in therapy"
  [PBAC 5.02 · PSD §7 p.43], and on the ITT population the ICER rose to
  $115,000–135,000/QALY [PSD §PBAC outcome p.45].

  Every claim above carries its citation; none of it is my recall.
// → request: compare the same drug across bodies
{
  "method": "tools/call",
  "params": {
    "name": "compare_decisions",
    "arguments": {
      "assessment_ids": ["uk-nice-ta1149",
                         "au-pbac-2025-11-belantamab-mafodotin-nov2025"]
    }
  }
}
// ← response (truncated): each body in its OWN framework, never normalised
{
  "decisions": [
    { "hta_body": "NICE", "decision_outcome": "recommended_with_restrictions",
      "framework": "nice_qaly_with_severity" },
    { "hta_body": "PBAC", "decision_outcome": "not_recommended",
      "framework": "pbac_clinical_claim",
      "clinical_claim": "superior efficacy · inferior safety",
      "pbac_view": { "efficacy": "accepted" } }
  ],
  "glossary": { "framework": { "pbac_clinical_claim": "PBAC — clinical claim" } }
}
// the canonical decision record: one shape, every surface
{
  "assessment_id": "uk-nice-ta1149",
  "source_reference": "TA1149",          // body-native locator
  "hta_body": "NICE",
  "decision_date": "2026-04",
  "decision_outcome": "recommended_with_restrictions",
  "drug": { "inn": "belantamab mafodotin", "brand_names": ["Blenrep"] },
  "indication": "Relapsed/refractory multiple myeloma · 2L",
  "body_specific_evaluation": {
    "framework": "nice_qaly_with_severity",
    "wtp_threshold": { "min": 25000, "max": 35000, "currency": "GBP" },
    "severity_modifier": { "applied": false, "weight": 1 }
  },
  "committee_preferred_icer": {
    "value": null,
    "value_absence": "confidential_redacted",   // not zero: typed absence
    "price_basis": "confidential_pas_all",
    "confidence_score": 0.90,
    "citation": "NICE TA1149 — Final draft guidance, §3.22 p.28: \"the deterministic and probabilistic ICERs for Bel-Bor-Dex were within the range NICE considers a cost-effective use of NHS resources\""
  },
  "glossary": { "value_absence": { "confidential_redacted": "truth withheld (confidential PAS)" } },
  "_meta": { "as_of_date": "2026-07-20" }
}
// one Assessment: the hub every extraction fills
Assessment
├── drug                          // regimens first-class (combination therapies)
├── indication                    // + decomposable patient subpopulation
├── body_specific_evaluation      // nice_qaly_with_severity | pbac_clinical_claim
├── comparator[]                  // kind, role, disputed flag
├── trial[]                       // NCT-linked · accepted vs disputed
├── endpoint[]                    // OS, PFS, ORR… as structured rows
├── economic_analysis             // ICERs incl. disclosed_values[] + price_basis
├── pricing                       // list-price packs; confidential PAS stays typed-absent
├── restriction[]                 // typed · narrows_marketing_authorization flag
├── decision_modifier[]           // severity, end-of-life, innovation
├── managed_access_agreement[]    // CDF / risk-share terms, bitemporal
├── critique[]                    // committee-cited uncertainties, typed
└── lifecycle_linkage[]           // resubmissions & re-assessments

// every value above ships as {value, citation, confidence, provenance}
// drug / indication / trial resolve to canonical ids, so cross-body
// comparison and resubmission lineage are plain SQL joins, not magic
AUDITABLE
Every value cites its source.
Every field in every response carries document, section and character offsets. Pass them straight into a brief, a dossier, or an LLM prompt; the receipts come with.
REPRODUCIBLE
Pin any query to a date.
Add an as_of parameter and get the answer your team would have gotten on that date. Models, submissions and brief drafts stop drifting under you.
AGENT-NATIVE
Typed tools, rich responses.
MCP tools return nested data so your agent doesn't have to chain calls. Drop the endpoint into Claude Desktop, your IDE, or your internal stack; it just works.
In practice

Your agent, your analyst.

The answer isn't the point — what the answer is made of is. Because every value comes back structured and cited, it composes: into a chart that carries its own denominator, a spreadsheet you can code from, a check against the draft on your desk. Three exchanges below, each reproducible against the corpus as it stands today.

an aggregate that refuses to mislead a corpus sweep, as a spreadsheet your document · our citations
You › Across our NICE oncology set, how often is a committee-preferred
      ICER actually disclosed? I don't want a mean over a sparse field.

Claude › get_coverage() → field_coverage.economics.committee_preferred_icer

  Of 72 NICE decisions, 16 are terminated appraisals that carry no economic
  evaluation — excluded from the denominator, not counted as missing. That
  leaves 56 where an ICER could apply:

    disclosed              19
    withheld_only          19   ← a real number exists; it is confidential
    qualitative_only        1   ← a published dominance result, not a gap
    no_estimate_recorded   17

  So: 19 of 56. I can't give you a mean committee ICER over this field. A
  third of it is disclosed, and the average would describe 19 decisions
  while looking like it describes 72.
You › Every decision either body made in EGFR-mutant first-line NSCLC,
      as a CSV I can code from — one row per decision, the committee's own
      critique categories, and enough to trace each row back.

Claude › search_decisions({"condition": "EGFR-mutant … NSCLC (first line)",
                           "facet": "critiques"})   → 5 decisions, 2 bodies

  Wrote egfr_1l_nsclc.csv — 5 rows:

  body,source_ref,drug,outcome,verdict,lead_critique,severity,n_critiques
  NICE,TA1122,amivantamab + lazertinib,recommended,cost_effective,crit:generalisability,major,13
  NICE,TA1060,osimertinib + pemetrexed,recommended,cost_effective,crit:survival_extrapolation,major,10
  PBAC,7.01 (Sep 2025),osimertinib + chemotherapy,recommended,cost_effective,crit:immature_survival_data,major,6
  PBAC,6.04 (May 2025),osimertinib + chemotherapy,not_recommended,acceptable_only_at_lower_price,crit:immature_survival_data,major,11
  PBAC,5.01 (Mar 2025),amivantamab + lazertinib,not_recommended,not_cost_effective,crit:immature_survival_data,major,15

  Immature overall-survival data leads all three PBAC critiques here; NICE's
  lead concerns are generalisability and extrapolation. 55 critiques across
  the five, each traceable — get_decision("uk-nice-ta1122",
  sections=["critiques"]) returns the passage itself:

  "People over 65 years may plausibly get less benefit from amivantamab plus
  lazertinib, which may be a generalisability issue."
  [TA1122 · final draft guidance §3.5 p.9]
You › [attached: draft_submission_v3.docx]
      We're proposing a second-line-only listing with DBd as the sole
      comparator. Check that against what the committee has actually done.

Claude › search_decisions({"drug": "belantamab mafodotin"})  → 3 decisions
         get_decision("au-pbac-2025-11-belantamab-mafodotin-nov2025",
                      sections=["comparators", "critiques"])

  Two flags, both from the November 2025 consideration of this regimen.

  1 · Place in therapy — the stated primary reason for that negative outcome:
      "The PBAC considered that the primary reason for this outcome was the
      proposed place in therapy"  [PSD §7 PBAC Outcome p.43]
      Your draft proposes the same second-line-only positioning.

  2 · Sole comparator — DBd was accepted for a second-line listing, but the
      ESC held that "the most appropriate comparator would consist of a
      basket of treatments that included DBd"  [PSD §5.2 p.8], and the PBAC
      advised that for a broader RRMM listing "a mixed comparator that
      consisted of daratumumab, carfilzomib, pomalidomide, selinexor and
      elotuzumab would be reasonable"  [PSD §7 PBAC Outcome p.44]

  None of that is your document checked against my own recall. It's your
  document checked against the committee's published words.

The REVIEW tab's attachment stands in for your document; everything HTA Core contributes to that exchange is real and quoted.

01 · VERIFY

Point it at a claim, not a question.

A consultant's slide, a competitor's press release, an internal assumption, another model's confident recall — hand it over and ask what the committees actually said. Grounding is the product; using it to catch fabrications is the sharpest form of that.

02 · ABSENCE

“No” is a finding.

Has any committee accepted this comparator in this setting? A curated, counted corpus can answer no. A model reading PDFs cannot tell you the difference between never happened and I didn't find it — and absence of precedent is often the thing you needed to know.

03 · SHAPE

Find precedents that look like your problem.

Filter on the shape of the committee's objection — immature survival data, disputed ITC, subgroup validity, a restriction type — not on the drug name. Dashboards filter metadata; the argument is what you're actually looking for.

04 · CONNECT

It composes with your other tools.

Pull an asset list from your portfolio system, query HTA Core per asset, write the precedent back. Join a trial's readout date to what committees said about its immaturity. Post new decisions in your indications to a channel. Any MCP-aware agent, any MCP server on the other side.

05 · UNATTENDED

No human in the loop.

A scheduled agent watching your indications is a change-alert we never had to build. One agent per asset across a portfolio produces forty precedent sheets in the time one analyst opens one PDF. Typed tools, stable ids, honest scope — designed to be called by software.

06 · REPRODUCIBLE

A dataset a reviewer can re-derive.

Pin the corpus with as_of and the extract behind a paper is reproducible years later — better than a folder of PDFs downloaded one March. Free for academic, student and journalism use, and the corrections you send back become the golden set.

The last three need something on the other end — your MCP servers, your scheduler, your stack. That's the point of being a layer rather than an app: we don't have to have imagined your workflow for you to build it. Bring the one you'd want to try →

How it's built

The hard part isn't reading. It's not being wrong.

Every field has to clear two bars: it has to be right and checkable, and it has to line up with the rest of the corpus well enough to query. Neither comes free from a well-written prompt. The failure modes below were found the ordinary way — building the extractor, running it against real appraisals, and looking hard at where it went confidently wrong — and each one now has a mechanism standing against it.

Grounding proves a quote is in the document.
It does not prove the quote is about the field.
What goes wrong
What's built to stop it
01 · Is the fact right — and can you check it?
What goes wrong

Extract the value first, then go hunting for a citation, and the model finds a plausible nearby sentence and stops looking.

What's built to stop it
Joint extraction Value and quote come back from the same call, and the value has to be derivable from the quoted span alone.

A passage about a ten-year time horizon structurally cannot yield a cost-per-QALY figure, so a mismatch produces a low-confidence null instead of a confident number wearing the wrong citation. A field that fails a check re-runs that joint extraction — there is deliberately no “find a better citation for this value” pass, because that is the same failure walking back in through the repair door.

What goes wrong

Right section, wrong sentence. The quote is real, the value is real, and the quote still isn't evidence for it.

What's built to stop it
Entailment judge A judge scores whether the passage actually supports the value, separately from whether the passage exists.

A weak score blocks the field or lowers its confidence rather than being quietly dropped — and it applies to corroborating passages too, since an unentailed corroboration would raise confidence, which is the worst direction to be wrong in.

What goes wrong

Nothing clean to cite. A redacted ratio has no “the ICER is £X” sentence anywhere in the document — and a field with nothing clean to point at is where mis-citation clustered worst.

What's built to stop it
Typed absence Absence is classified with a reason and never borrows a neighbour's quote; where a value is withheld, the citation points at the sentence evidencing the withholding.

Cheaper rules run underneath: a monetary field's quote must carry a currency figure or an explicit confidentiality phrase, a date field's must carry a date. And when two different fields cite the same span, that collision is routed to review rather than silently accepted.

02 · Can the facts be joined?
What goes wrong

Constrain the model to today's categories and a new finding gets forced into the nearest bucket. Leave it unconstrained and you get forty spellings of one critique — prose, not data.

What's built to stop it
Bounded vs. open Split by what actually bounds the set — the framework, or the world.

Where the framework closes it (how a value can be absent, what judgments the PBAC can reach) the vocabulary is closed, enforced from a single source of truth, and served to agents, so a calling model discovers the legal values rather than guessing. Where the world keeps producing new members (critique types, restrictions, drugs, trials) the taxonomy is open and appendable, the raw wording is always kept, and recurring values are promoted to canonical entries under review. A classification that doesn't fit stays null and visible as a gap, never forced into one.

What goes wrong

The same drug under different names. Two bodies name regimens differently and decompose combinations differently, so “every decision for this drug” becomes a text search that misses.

What's built to stop it
Canonical ids Drugs, indications and trials resolve to canonical ids through an alias index that grows with the corpus — which is what turns cross-body comparison and resubmission lineage into plain joins.

Resolution at query time is exact-match only: on a miss you get ranked candidates and their corpus membership, never a silent correction. A product whose whole value is auditability cannot have a query layer that quietly decides what you meant — and the calling agent already normalises intent, so the server's job is to be deterministic.

Three layers that reinforce each other: structural, so value and quote can't diverge; deterministic, so cheap rules catch what they can without a model; semantic, where a judge decides whether the passage really carries the claim. None of it asks you to take the model's word for anything.

Coverage

Narrow on purpose. Deep where it matters.

Every NICE oncology decision published since January 2025, and every PBAC oncology PSD through the November 2025 meeting, fully extracted, with the whole 2020→ universe crawled and counted behind it. Going wider is deliberate, partner-steered work: early users set the order, not the destination.

NICE + PBAC oncology · extracted / crawled 2020→ census
127/565
NICE 72 / 269 · to Jun 2026
PBAC 55 / 296 · to Nov 2025
extracted censused · not yet loaded 1 pip ≈ 20 decisions
Each window is complete to its stated edge: every oncology decision NICE published from January 2025 to June 2026, and every PBAC oncology PSD through the November 2025 meeting, including terminated appraisals (classified distinctly, carrying only the fields that exist). Later meetings load as they publish. Each body is served in its own framework (NICE ICER/QALY, PBAC clinical-claim), never normalised. And the unlit census isn't queued blind: it loads in whatever direction early partners pull it.
How it's checked · every decision passes these before it is served · what each one prevents
citation grounding the quoted passage must exist in the source document, else the value ships as a typed null
enforced
entailment check the cited passage must actually support the extracted value, judged per field
enforced
load fidelity what the API serves is audited against the extraction archive on every load
audited
golden-set accuracy per-field scoring by experts who read these documents professionally
Per-field accuracy bars appear here when the golden-set review produces them: domain experts scoring the pipeline's extraction against the source documents.
Who's behind it

A person, not a platform team. Yet.

HTA Core is built by Jared Brook in Melbourne. The thesis is simple: the analyst labour that made HTA intelligence expensive (reading 200-page appraisals into structured rows) is exactly the work LLMs now do well, and the output should come with citations, confidence scores and honest nulls, served through an API your team and your agents can call. The mission is every HTA decision, every jurisdiction; being PBAC-local is deliberate, because the cross-jurisdiction graph starts on home turf.

LOOKING FOR · 01

Design partners.

Market-access teams, HEOR consultancies and agent builders with a real cross-decision question (a drug, an indication, a resubmission), willing to run it against the corpus and be blunt about where it falls short. Early partners steer what gets extracted next: deeper history, adjacent indications, another body. You get early access and a corpus shaped around your actual questions; we get the questions that matter.

Become a design partner →
LOOKING FOR · 02

Researchers who mine these documents by hand.

If you publish on HTA decision-making (precedent studies, cross-jurisdiction comparisons, PSD and FAD mining), HTA Core is free for academic, student and journalism use. You get the corpus as a queryable, cited API instead of a folder of PDFs; we get expert eyes on the extraction: the corrections that become the golden set gating every release.

Ask about research access →
A new layer, not a new dashboard

A different layer, not a different dashboard.

The HTA dashboard your team may already use is built for a person browsing a screen, and today it covers more bodies than we do. HTA Core isn't another one of those. Read the table top-to-bottom: the things a dashboard is built for, and the things a cited, callable data layer is built for, barely overlap. You don't swap one for the other; you add the layer the dashboard category was never built to be.

Capability
Dashboard products
HTA Core
Built for browsing & breadth
A visual UI for a person to browse
Coverage across 10+ HTA bodies, todaywe cover 2, oncology-deep
Editorial summaries & analyst commentary
Deep historical archive (pre-2020)
Built for citation & code
Field-level structured extraction
partial
Passage-level citation on every field
Confidence score on every field
Bitemporal as_of reproducibility
Same drug across bodies · frameworks native
Agent-callable MCP server
Per-call API access

"Why can't my dashboard just do this?" Not because it's behind, but because a human-facing dashboard and a callable, cited data layer are different things. We're built to be the second; often you'll want both. The comparison is with the dashboard category, not any specific product; individual products vary.

Roadmap

The cross-jurisdiction graph, live today.

Two bodies today, NICE and PBAC, and the schema accepts the next with no migration. The question every market-access team asks ("every decision globally for drug X in indication Y, with comparator and ICER, as of date Z") is already a single call across both, and stays one as more bodies come online.

belantamab mafodotin
NICE · TA1149
PBAC · 5.02
SMC · future
G-BA · future
HAS · future
RRMM · 2L
DREAMM-7

Two hops, one query.

The decision → drug → decision traversal across bodies works today on the NICE × PBAC pair. Each subsequent HTA body is a new set of nodes and edges against the same schema: no migrations, no graph database, no breaking change.

now NICE + PBAC oncology, 2025→ (127 decisions: NICE to Jun 2026, PBAC to Nov 2025) · cross-jurisdiction, live MCP server live
next The next corpus tranche, decided with early partners: 2020–24 history, adjacent indications, or deeper in one body open
later The rest of NICE + PBAC: both bodies complete, 2020→, before any new jurisdiction planned
later SMC (Scotland) · fast-follow on the NICE tooling planned
later CDA-AMC (Canada) · QALY surface, similar to NICE planned
later G-BA + IQWiG · benefit categories surfaced natively planned
later HAS · ASMR ratings; cross-walk flags where comparable planned
later EU JCA · joint clinical assessment hand-off planned
goal Every HTA decision, every jurisdiction: one cited, queryable record mission
Early access · 2025→ NICE + PBAC oncology corpus

Bring your toughest cross-decision question.
We'll answer it on a 30-minute call.

Bring an indication or a drug your team is working on. On the call we answer it live from the corpus: the NICE and PBAC verdicts side by side, each in its own framework, with the citations. And if your question lands outside the extracted window, you'll be told exactly that. Then it goes to the front of the extraction queue.

Founder-led · Melbourne-based · replies come from jared@htacore.com, not a funnel
Something else entirely? hello@htacore.com reaches the same person.