Skip to main content
CMS Health Tech Ecosystem · Draft for claiming

GFE → AEOB module map

These are the 13 pieces we need to get a patient from "what will this cost?" to a real Good Faith Estimate and Advanced EOB. Each one can be claimed by an HTE member and built in the open. Where Da Vinci PCT already has a profile, we build on it.

Pick a difficulty tier to see which modules it needs

Tiers line up with the adoption classes in the working definitions: single-party GFE, convened GFE, and AEOB.

1 · Request2 · Provider side → GFE3 · Payer side → AEOB4 · Patientself-pay GFE goes straight to the patientshared price dataM0Directory & endpointsRevCoreM1Status & audit trailKeith / CoreyM12Conformance & sandboxOpenM2B.WellTrigger & intakeStart an estimate from anywhereM3TurquoiseService packagesPlain name + every expected chargeM4SerifProvider pricingFill in this provider's chargesM5OpenConvening & coordinationGather every provider's pieceM6OpenGFE packet & patient copyThe compliant estimateM7OpenSubmission & routingSend the GFE to the planM8OpenAllowed amount & networkWhat the plan will allowM9OpenBenefits & accumulatorsThis member's coverage todayM10OpenAdjudication & AEOBWho pays what, before careM11OpenPatient experience SDKClear estimate; compare options0 · Cross-cutting: every module builds on these
SEEDED open code exists to start fromSPEC ONLY PCT/X12 profile exists, no shared open codeOPEN GAP no standard yet; the group defines itSolid arrow = depends on · dashed = optional path

Module register 5 of 13 claimed

Click a box in the diagram to jump to its row. Once the repo is up, claims will live in GitHub issues. Until then, reply in the workgroup thread with the module ID you want to own.

0 · Cross-cutting

Every module builds on these
M0

Directory & endpoints

Know who each provider and plan is and where to send things.

Provider NPI/TIN/taxonomy, plan → network mapping, payer and provider FHIR/X12 endpoints.

Builds on
NPPES, National Directory of Healthcare, plan→network mapping in Serif's plans table
Depends on
None
Tiers
T1 · T2 · T3 · T4
OPEN GAPOwner: Keith (RevCore)
M1

Status & audit trail

See where any estimate is at every step, and keep a record.

One state model (requested → priced → convened → submitted → adjudicated → delivered), a correlation ID that follows the GFE into the AEOB, notifications.

Builds on
PCT Task statuses, FHIR Subscriptions
Depends on
M0
Tiers
T1 · T2 · T3 · T4
OPEN GAPOwner: Keith (RevCore) and Corey
M12

Conformance & sandbox

Prove each module works and count real adoption.

Synthetic patients, plans and providers; reference servers; tests against PCT profiles; a classifier that labels output as single GFE, convened GFE, AEOB, or partial.

Builds on
HL7 FHIR validator, Inferno, Serif's conformance tests
Depends on
Tests every module
Tiers
T1 · T2 · T3 · T4
SEEDEDOwner: unclaimed

1 · Request

Turn a question into a structured estimate request
M2

Trigger & intake

Start an estimate from any app: scheduling, an order, a patient request, a call center, or a member asking their plan.

Normalizes every entry point into one GFE Information Bundle: patient, coverage, service, diagnosis, date.

Builds on
PCT GFE Information Bundle; scheduling messages (v2 SIU, FHIR Appointment)
Depends on
M3, M0
Tiers
T1 · T2 · T3 · T4
OPEN GAPOwner: Imran (B.Well)
M3

Service packages

Name the service in plain language and list everything that usually comes with it.

Claim-shaped templates: roles (facility, surgeon, anesthesia, pathology), codes, revenue codes, modifiers, quantities. Tells M5 who to convene.

Builds on
Turquoise SSPs on PATIENTS (forpatients.health), CMS shoppable services, Serif service_components
Depends on
None
Tiers
T1 · T2 · T3 · T4
SEEDEDOwner: Turquoise

2 · Provider side → GFE

What the provider expects to charge
M4

Provider pricing

Fill in what this provider expects to charge for its own lines.

Cash/self-pay rate, gross charge, or contracted rate from a swappable price source: internal systems, hospital MRFs, TiC.

Builds on
serif-health/gfe_demo: PriceSource, $gfe-estimate, Task/$gfe-contribute
Depends on
M3, M0
Tiers
T1 · T2 · T3 · T4
SEEDEDOwner: Serif HealthDRAFT COMPLETE
M5

Convening & coordination

Gather every provider's piece into one estimate for the whole episode.

Convening provider finds co-providers from the package, sends Contributor Tasks, tracks replies and timeouts, assembles the packet, flags missing pieces.

Builds on
PCT GFE coordination (Coordination Requester, Contributor Task, $gfe-retrieve; draft in STU2)
Depends on
M3, M4, M0, M1
Tiers
T2 · T4
SPEC ONLYOwner: unclaimed
M6

GFE packet & patient copy

Produce the compliant GFE and a copy the patient can read.

GFE Packet with diagnosis codes, disclaimers and NSA fields; human-readable version. A self-pay GFE is finished here.

Builds on
PCT GFE Packet/Composition, Serif FHIR builders, CMS self-pay GFE template
Depends on
M4 (and M5 if convened)
Tiers
T1 · T2 · T3 · T4
SEEDEDOwner: unclaimed

3 · Payer side → AEOB

What the plan will pay and the member will owe
M7

Submission & routing

Send the finished estimate to the patient's plan as a pre-claim.

FHIR $gfe-submit or an X12 837 predetermination through a clearinghouse; acknowledgements; an X12↔FHIR bridge.

Builds on
PCT $gfe-submit, X12 837
Depends on
M6, M0, M1
Tiers
T3 · T4
SPEC ONLYOwner: unclaimed
M8

Allowed amount & network

Look up whether the provider is in network and what the plan will allow for each line.

Contracted rate per line; for out-of-network, list in-network alternatives as the NSA requires.

Builds on
TiC in-network files, Serif Neuron lookup (same seam as M4)
Depends on
M0, M3
Tiers
T3 · T4
SEEDEDOwner: unclaimed
M9

Benefits & accumulators

Know this member's coverage today: deductible met, copays, coinsurance, what needs prior auth.

Open benefits layer from plan or clearinghouse data so the payer doesn't have to build it. Reuses, but does not redo, the Real-Time Benefits pledge.

Builds on
X12 270/271, plan documents, vendors such as Nirvana
Depends on
M0
Tiers
T3 · T4
OPEN GAPOwner: unclaimed
M10

Adjudication & AEOB

Work out who pays what before care, and issue the AEOB.

Apply benefits to allowed amounts line by line: plan pays, member owes, accumulator position, PA flags. Builds the AEOB Bundle for the plan to stand behind.

Builds on
PCT AEOB Bundle and AEOB Summary; claims adjudication logic
Depends on
M7, M8, M9
Tiers
T3 · T4
SPEC ONLYOwner: unclaimed

4 · Patient

Delivery and comparison
M11

Patient experience SDK

Show the patient a clear estimate and let them compare providers.

Retrieve GFE/AEOB, render in plain language, compare across providers and services, consent and sharing. The common rails every member app builds on.

Builds on
PATIENTS / forpatients.health, PCT patient retrieval
Depends on
M3, M6, M10
Tiers
T1 · T2 · T3 · T4
OPEN GAPOwner: unclaimed

Who does what in adjudication (M8 to M10)

A starting point for discussion. The plan is still on the hook for the AEOB, but most of the work behind it can run outside the payer if the inputs are open.

FunctionPayer must ownA tech company can do (as delegate or independently)
Network status & allowed amountContract of record; resolving disputes about which rate appliesLook up network and contracted rate from TiC files and the provider's own contract data (Serif-style lookup)
Member benefits & accumulatorsSource of truth for plan design and deductible/OOP positionPull 270/271 through a clearinghouse, parse plan documents, and normalize cost-share rules (Nirvana-style benefits layer)
Adjudication mathSigning off on the result as the plan's prospective determinationRun the line-by-line calculation with open, testable rules and hand back a draft AEOB
Medical managementStating which services need prior auth, step therapy or reviewDisplay the flags; PA workflows themselves stay in the ePA pledge
Delivery to the memberThe NSA obligation to furnish the AEOBRoute, render, and let the patient compare in an app
True-up after careFinal claim and 835Reconcile estimate vs. final to score accuracy (feeds M12)

Suggested build order

First

M3, M0, M1. Packages, directory and status unblock everything else, and none of them need a payer at the table.

Then

M2, M4, M6, M11. Gets Tier 1 working end to end, starting from Serif's pricing code.

Then

M7 to M10. Gets us to Tier 3. We need at least one payer (or delegate) willing to take a submitted GFE.

Last

M5. Convening is the hardest coordination problem, and HHS still isn't enforcing it.

Sources: CMS HTE “From Surprise Bills to Real Estimates” pledge; workgroup working definitions for GFE and AEOB; HL7 Da Vinci Patient Cost Transparency IG (STU2 continuous build); serif-health/gfe_demo (MIT). Statuses are my first read. Please correct them.