Medical MVP technical specification
The medical MVP technical specification is the Benefit Plan Standard's technical specification for the medical MVP (minimum viable product) of the CMS Health Tech Ecosystem Real-Time Benefits workgroup. It is a draft for the workgroup, not a workgroup decision: version 0.3.3, dated October 21, 2026.
The medical MVP answers questions about plan design: what a plan covers and what the member pays, whether the cost changes with where the member goes, whether a service has a limit, and whether the plan covers an extra benefit such as hearing aids. CMS already publishes these answers for Medicare Advantage and Marketplace plans. The specification says which items a pledgee, an organization that committed to the workgroup to publish MVP data for its plans, makes available, and where each item is, both in the CMS files and in a Benefit Plan Standard document. It covers 2 programs:
| Program | CMS files | Year | Read by |
|---|---|---|---|
| Medicare Advantage | Plan Benefit Package (PBP) Benefits, release "PBP Benefits-2027" | Contract year 2027 | The Medicare Advantage importer, scripts/from-pbp.js (see CMS Medicare Advantage PBP files) |
| Marketplace | The Plan Attributes PUF, the Benefits and Cost Sharing PUF and the Network PUF | Plan year 2026 | The Marketplace importer, scripts/from-marketplace-puf.js (see CMS Marketplace public files) |
Both importers write their documents in the Benefit Plan Standard schema 1.2.0, a draft that becomes final after 2 independent adopters implement and validate it.
The 3 documents
The specification is 3 documents, all in the docs/specs/rtb-medical-mvp/ folder of the Benefit Plan Standard schema repository:
| Document | What it is |
|---|---|
README.md | The technical specification: the terms it uses, purpose, scope, how a plan is identified, retrieval and the file contract, what a pledgee publishes, how to read the data dictionary, the gaps closed on October 20, 2026, a worked example, conformance with its proposed numbers, and the questions for the workgroup. |
data-dictionary.md | Every item in scope, 106 rows: where it is in a Benefit Plan Standard document, and where the Medicare Advantage importer and the Marketplace importer read it in the CMS files. Generated by scripts/build-rtb-dictionary.js. |
carin-crosswalk.md | Every row of the data dictionary mapped to the SBC InsurancePlan profile of the CARIN Digital Insurance Card implementation guide, with where the value lands in the Bundle and 1 of 3 verdicts per program. Generated by scripts/build-rtb-crosswalk.js. |
The SHALL and SHOULD assignments behind the data dictionary and the crosswalk are in shall-should.json in the same folder.
The 2 example plans
The specification walks 1 plan in each program end to end. On the CMS files used for the examples, the commands in the specification write a Benefit Plan Standard document and a Bundle byte-identical to these:
| Plan key | Plan | Benefit Plan Standard document | Bundle |
|---|---|---|---|
H1609-028-000 | Aetna Medicare Select Extra (HMO-POS), Medicare Advantage | aetna-medicare-aetna-medicare-select-extra.pbp.json | aetna-medicare-select-extra-hmo-pos-h1609-028-000.json, also published on this site |
68398FL0030058-01 | UHC Bronze Essential ($0 Virtual Urgent Care), Marketplace | unitedhealthcare-uhc-bronze-essential.puf.json | unitedhealthcare-uhc-bronze-essential.json, in the repository only |
What a pledgee publishes
A pledgee publishes files, not an API, and there is no hosted service. For each plan it publishes the Benefit Plan Standard document, <plan key>.json, which is SHALL and which the importer that wrote it has checked against the Benefit Plan Standard schema 1.2.0 draft, and the SBC InsurancePlan Bundle that the Benefit Plan Standard converter (scripts/to-insuranceplan.js) makes from it, <plan key>.bundle.json, which is SHOULD until the SBC InsurancePlan profile publishes, because the profile is at ballot. The files of each CMS release sit in their own folder, <root>/<release>/, such as PBP-Benefits-2027 or marketplace-puf-2026-2026-10-05, and each Medicare Advantage release folder also holds service-areas.json, which is SHALL, so that an app can find the plan key from the member's county. An index at the root, <root>/index.json, written by scripts/publish-fhir.js --pledgee, lists every document, newest release first, with its plan key, program, plan year, release and data date. Every document carries its plan year, its CMS release and the download dates of the CMS files, and quotes the CMS cells its values were read from; today the 1 exception is a Marketplace row that is not covered, which quotes no cell.
The full contract, field by field, is in What a pledgee publishes in the technical specification.