Views of one FHIR provider-directory pull from a mid-size enterprise payer in the state of Arizona, subject to CMS-9115-F owing to participation in both Medicaid and Medicare Advantage plans. Fourteen findings as cards; every card opens the full finding with its charts, and each finding reaches the section of the underlying report it summarises. Card colours are the report's own reading-aid bands, never a verdict. Every rate is shown with its n.
No determination of compliance with the CMS rule is being made here; this is a best-effort data quality exploration and visualization project of data extracted from public-access production APIs at a single point in time from payers subject to CMS-9115-F. Compliance determinations rest solely between CMS and the payer's Compliance Office, and this report is not intended to be taken as any substitute for that. Data available upon request.
CMS requires Medicare Advantage organizations to publish this directory in exactly the machine-readable format measured here (42 CFR 422.111(m), naming Plan-Net 1.2.0). As captured, the one published InsurancePlan record is a placeholder, not real plan data — its only identifier is the bare value "1", its required type is present solely as a data-absent-reason, it names no network, period, or coverage area, and it has not been modified since 2024-10-18 while the rest of the directory refreshes regularly — so it cannot be matched to a Plan Finder plan entry, and this report cannot assess whether a real plan record would meet the guide's requirements; 0 of 45,616 Medicare Advantage provider roles carry the NPI the guide requires at the role level; 0 provider roles link to any network, so in-network provider lookup — Plan Finder's core function — has no data path; the OrganizationAffiliation records the guide requires are absent entirely. Until real plan-level data is published, this directory cannot power Medicare Plan Finder provider search for the Medicare Advantage line. Full element-by-element readiness: report section F, inside finding 14. Checked against the federal NPI registry (finding 13), the 21,528 distinct practitioners those roles reach are 98.9% live NPIs, but 381 roles point at a deactivated NPI (all 45,616 Medicare Advantage roles are marked active, so the role-level flag carries no signal), and of the 10,809 practitioners the directory marks inactive, 10,643 (98.5%) still hold a live NPI, so the flag is not tracking registry status.
Isolated under 10% of records affected, nothing error-severity · Partial everything between · Widespread 40%+ of records affected, including error-severity findings. Fixed cuts, not tuned to this payer; a reading aid, never a verdict. Full rule in finding 14, section A.
About this project. This is one report from an independent, best-effort data-exploration project that connects to US payers' public Da Vinci PDex Plan-Net FHIR provider directories (published under the CMS Interoperability & Patient Access Final Rule, CMS-9115-F), ingests them into a local Postgres database, and evaluates the data against IG conformance, referential integrity, and a composite data-quality index. It is running across 65 payer directories covering approximately 1.3 B FHIR resources.
Disclosure. Analytics and findings are shared with each payer directly, typically through their compliance team or interoperability team's contact. For this payer, this report URL has already been shared directly with members of both their interoperability team and their data+API vendor. The payer name in this report remains deidentified in this public version, published here as a representative sample of the methodology.
Disclaimer. Findings are point-in-time observations of a public endpoint, may reflect transient conditions or tooling behavior, and are not legal, compliance, or professional advice, nor an official assessment. Any assertion about an endpoint's behavior is an observation, not a verdict about a party. Compliance determinations rest with CMS and the payer's Compliance Office.
Full-population analysis of 3,133,014 published FHIR records, reported per line of business — Medicaid and Medicare Advantage, with records carrying a third source marker (Other (ODS)) reported separately. Findings are defect patterns in plain language, graded as a reading aid — not a compliance verdict. See §A.
What this is. Every FHIR record in the plan's published Plan-Net provider directory — 3,133,014 records — was validated against the Da Vinci PDex Plan-Net 1.2.0 profiles, and the population was independently audited for element completeness, referential integrity, locality, and placeholder values. This report describes measured agreement with the published standard as a set of data-quality signals. It is not a certification, a regulatory compliance determination, or a legal assessment, and no number in it should be read as one.
| source / line of business | records |
|---|---|
| Other (ODS) — a source system, not a line of business | 1,376,431 |
| Medicare Advantage | 1,084,751 |
| Medicaid | 671,832 |
In plain terms: each row below is one kind of check on one record type. The graded rows measure the publisher's own data; the ungraded block underneath collects things that are real but are not data defects (validation-environment limits, the publisher's tooling habits), so they can never inflate or excuse a grade.
A coded field carries a value outside the profile's preferred code set. Allowed when no listed code applies, but at scale it usually means a local code system is used where a standard one exists.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 205,454 records |
| Medicaid | all 15,718 records |
The failing code set names the exact profile rule even where one element row above spans several profile slices.
| code set | records affected | by source |
|---|---|---|
| http://hl7.org/fhir/ValueSet/identifier-type | all 221,172 records | Medicare Advantage: 205,454 of 205,454 Medicaid: 15,718 of 15,718 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| identifier › typePractitioner.identifier.type | warning must-support | all 221,172 records | 1.0× |
| No code was provided where the profile expects one from a specific code set. Medicare Advantage: 205,454 of 205,454 Medicaid: 15,718 of 15,718 | |||
| identifier › typePractitioner.identifier.type | warning must-support | all 221,172 records | 1.0× |
| None of the codes provided are in the profile's preferred code set for this field. Medicare Advantage: 205,454 of 205,454 Medicaid: 15,718 of 15,718 | |||
The record breaks a rule the applicable profile states directly: a required element is missing, a value the profile fixes is different, or a structural invariant fails. These are the defects a directory consumer hits first.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 36 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the Network record as a wholeOrganization | error whole record | all 36 records | 1.0× |
| A required component is missing (for example a geolocation extension without its latitude/longitude parts). Medicare Advantage: 36 of 36 | |||
| address › extension (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Organization.address.extension | error mixed slices | 66.7%n=36 | 94.7× |
| A required, specifically-typed component is missing from a structure that demands it. Medicare Advantage: 24 of 36 | |||
| address › extension (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Organization.address.extension | error mixed slices | 66.7%n=36 | 23.7× |
| An extension carries both a direct value and sub-extensions, which FHIR does not allow. Medicare Advantage: 24 of 36 | |||
| address › extension (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Organization.address.extension | error mixed slices | 66.7%n=36 | 23.7× |
| A required component is missing (for example a geolocation extension without its latitude/longitude parts). Medicare Advantage: 24 of 36 | |||
| address › textOrganization.address.text | warning mixed slices | 11.1%n=36 | 2.0× |
| A text value starts or ends with stray whitespace (e.g. a name stored with a trailing space). Medicare Advantage: 4 of 36 | |||
A coded field carries a value outside the profile's preferred code set. Allowed when no listed code applies, but at scale it usually means a local code system is used where a standard one exists.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 1 of 1 records |
The failing code set names the exact profile rule even where one element row above spans several profile slices.
| code set | records affected | by source |
|---|---|---|
| http://hl7.org/fhir/us/davinci-pdex-plan-net/ValueSet/InsuranceProductTypeVS | 1 of 1 records | Medicare Advantage: 1 of 1 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| typeInsurancePlan.type | warning required element | 1 of 1 records | 1.0× |
| No code was provided where the profile expects one from a specific code set. Medicare Advantage: 1 of 1 | |||
The record breaks a rule the applicable profile states directly: a required element is missing, a value the profile fixes is different, or a structural invariant fails. These are the defects a directory consumer hits first.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 1 of 1 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the InsurancePlan record as a wholeInsurancePlan | error whole record | 1 of 1 records | 1.0× |
| The insurance plan names no network at all — the link that connects a plan to its provider networks is absent. Medicare Advantage: 1 of 1 | |||
A coded field carries a value outside the profile's preferred code set. Allowed when no listed code applies, but at scale it usually means a local code system is used where a standard one exists.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 45,616 records |
| Medicaid | 97.9%n=50,411 |
The failing code set names the exact profile rule even where one element row above spans several profile slices.
| code set | records affected | by source |
|---|---|---|
| http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.1066 | 98.9%n=96,027 | Medicare Advantage: 45,616 of 45,616 Medicaid: 49,357 of 50,411 |
| http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1099.30 | <0.1%n=96,027 | Medicaid: 73 of 50,411 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| specialtyPractitionerRole.specialty | warning must-support | 98.9%n=96,027 | 1.5× |
| None of the codes provided are in the profile's preferred code set for this field. Medicare Advantage: 45,616 of 45,616 Medicaid: 49,357 of 50,411 | |||
| codePractitionerRole.code | warning must-support | <0.1%n=96,027 | 1.0× |
| None of the codes provided are in the profile's preferred code set for this field. Medicaid: 73 of 50,411 | |||
| specialtyPractitionerRole.specialty | warning must-support | <0.1%n=96,027 | 1.0× |
| No code was provided where the profile expects one from a specific code set. Medicaid: 4 of 50,411 | |||
A coded field carries a value outside the profile's preferred code set. Allowed when no listed code applies, but at scale it usually means a local code system is used where a standard one exists.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 76.8%n=218,574 |
| Medicaid | 90.6%n=267,236 |
| Other (ODS) | all 1,376,431 records |
The failing code set names the exact profile rule even where one element row above spans several profile slices.
| code set | records affected | by source |
|---|---|---|
| http://hl7.org/fhir/ValueSet/identifier-type | 95.9%n=1,862,241 | Medicare Advantage: 167,887 of 218,574 Medicaid: 241,990 of 267,236 Other (ODS): 1,376,431 of 1,376,431 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| identifier › typeOrganization.identifier.type | warning must-support | 95.9%n=1,862,241 | 1.0× |
| None of the codes provided are in the profile's preferred code set for this field. Medicare Advantage: 167,887 of 218,574 Medicaid: 241,990 of 267,236 Other (ODS): 1,376,431 of 1,376,431 | |||
The record breaks a rule the applicable profile states directly: a required element is missing, a value the profile fixes is different, or a structural invariant fails. These are the defects a directory consumer hits first.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 98.7%n=205,454 |
| Medicaid | 46.2%n=15,718 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| address › period › endPractitioner.address.period.end | warning sub-field of an optional element | 86.1%n=221,172 | 4.0× |
| A date on the record is outside the range of plausible years — typically a placeholder such as 2999-12-31 (“never expires”) or 1753-01-01 (a system-minimum start date). Medicare Advantage: 190,324 of 205,454 | |||
| name › textPractitioner.name.text | warning must-support | 44.4%n=221,172 | 1.0× |
| A text value starts or ends with stray whitespace (e.g. a name stored with a trailing space). Medicare Advantage: 90,934 of 205,454 Medicaid: 7,254 of 15,718 | |||
| activePractitioner.active | error required element | 22.8%n=221,172 | 1.0× |
| The record carries a value the profile fixes to something else — for example active = false where the profile fixes active = true, or an inactive qualification status where the profile fixes it active: the publisher ships records it has itself marked inactive. Medicare Advantage: 50,492 of 205,454 | |||
| qualification › extension › extension › value (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Practitioner.qualification.extension.extension.value[x] | error required element | 13.1%n=221,172 | 1.1× |
| The record carries a value the profile fixes to something else — for example active = false where the profile fixes active = true, or an inactive qualification status where the profile fixes it active: the publisher ships records it has itself marked inactive. Medicare Advantage: 29,052 of 205,454 | |||
| qualification › period › endPractitioner.qualification.period.end | warning sub-field of a must-support element | 10.6%n=221,172 | 1.1× |
| A date on the record is outside the range of plausible years — typically a placeholder such as 2999-12-31 (“never expires”) or 1753-01-01 (a system-minimum start date). Medicare Advantage: 23,484 of 205,454 | |||
| address › period › startPractitioner.address.period.start | warning sub-field of an optional element | <0.1%n=221,172 | 1.1× |
| A date on the record is outside the range of plausible years — typically a placeholder such as 2999-12-31 (“never expires”) or 1753-01-01 (a system-minimum start date). Medicare Advantage: 23 of 205,454 Medicaid: 1 of 15,718 | |||
| qualificationPractitioner.qualification | error must-support | <0.1%n=221,172 | 3.0× |
| A required component is missing (for example a geolocation extension without its latitude/longitude parts). Medicare Advantage: 16 of 205,454 | |||
| identifier (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Practitioner.identifier | error mixed slices | <0.1%n=221,172 | 1.0× |
| The practitioner record fails a US Core rule on name/period consistency. Medicare Advantage: 14 of 205,454 | |||
| identifier (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Practitioner.identifier | error mixed slices | <0.1%n=221,172 | 1.0× |
| The practitioner record fails a US Core naming rule. Medicare Advantage: 8 of 205,454 | |||
| qualification › extension › extension (spans 3 profile slices — the failing rule is identified by its code set in the drill-down)Practitioner.qualification.extension.extension | error mixed slices | <0.1%n=221,172 | 1.0× |
| A required component is missing (for example a geolocation extension without its latitude/longitude parts). Medicare Advantage: 6 of 205,454 | |||
| qualification › extension › extension (spans 3 profile slices — the failing rule is identified by its code set in the drill-down)Practitioner.qualification.extension.extension | error mixed slices | <0.1%n=221,172 | 1.0× |
| An extension carries both a direct value and sub-extensions, which FHIR does not allow. Medicare Advantage: 6 of 205,454 | |||
A coded field carries a value outside the code set the profile requires for that field. Only codes from that set are valid there.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 21.3%n=205,454 |
| Medicaid | 0 of 15,718 records |
The failing code set names the exact profile rule even where one element row above spans several profile slices.
| code set | records affected | by source |
|---|---|---|
| http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state | 19.8%n=221,172 | Medicare Advantage: 43,744 of 205,454 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| qualification › extension › extension › value (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Practitioner.qualification.extension.extension.value[x] | error required element | 19.8%n=221,172 | 1.1× |
| None of the codes provided are in the code set the profile requires for this field. Medicare Advantage: 43,744 of 205,454 | |||
A coded field carries a value outside the code set the profile requires for that field. Only codes from that set are valid there.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 30.9%n=45,616 |
| Medicaid | <0.1%n=50,411 |
The failing code set names the exact profile rule even where one element row above spans several profile slices.
| code set | records affected | by source |
|---|---|---|
| http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state | 14.7%n=96,027 | Medicare Advantage: 14,088 of 45,616 |
| http://hl7.org/fhir/us/davinci-pdex-plan-net/ValueSet/IndividualAndGroupSpecialtiesVS | <0.1%n=96,027 | Medicaid: 4 of 50,411 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| qualification › whereValid › value (slice identified by its failing code set)PractitionerRole.extension.extension.value[x] | error required element | 14.7%n=96,027 | 501.3× |
| None of the codes provided are in the code set the profile requires for this field. Medicare Advantage: 14,088 of 45,616 | |||
| specialtyPractitionerRole.specialty | error must-support | <0.1%n=96,027 | 1.0× |
| The code provided is not in the code set the profile requires for this field. Medicaid: 4 of 50,411 | |||
The record breaks a rule the applicable profile states directly: a required element is missing, a value the profile fixes is different, or a structural invariant fails. These are the defects a directory consumer hits first.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 28.7%n=45,616 |
| Medicaid | <0.1%n=50,411 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| extension › extension › value › end (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].end | warning sub-field of a required element | 13.6%n=96,027 | 1.0× |
| A date on the record is outside the range of plausible years — typically a placeholder such as 2999-12-31 (“never expires”) or 1753-01-01 (a system-minimum start date). Medicare Advantage: 13,055 of 45,616 | |||
| the PractitionerRole record as a wholePractitionerRole | error whole record | <0.1%n=96,027 | 1.0× |
| The role record has neither its own contact information nor a reference to a location that has it — a consumer cannot contact this provider. Medicare Advantage: 86 of 45,616 Medicaid: 10 of 50,411 | |||
The record breaks a rule the applicable profile states directly: a required element is missing, a value the profile fixes is different, or a structural invariant fails. These are the defects a directory consumer hits first.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 9.5%n=218,574 |
| Medicaid | 42.5%n=267,236 |
| Other (ODS) | 0.4%n=1,376,431 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the Organization record as a wholeOrganization | error whole record | 7.0%n=1,862,241 | 1.0× |
| A required component is missing (for example a geolocation extension without its latitude/longitude parts). Medicare Advantage: 10,329 of 218,574 Medicaid: 113,599 of 267,236 Other (ODS): 5,901 of 1,376,431 | |||
| activeOrganization.active | error required element | 0.3%n=1,862,241 | 1.0× |
| The record carries a value the profile fixes to something else — for example active = false where the profile fixes active = true, or an inactive qualification status where the profile fixes it active: the publisher ships records it has itself marked inactive. Medicare Advantage: 5,177 of 218,574 | |||
| addressOrganization.address | error mixed slices | 0.3%n=1,862,241 | 5.7× |
| The record carries a property that does not exist in FHIR R4 at that position (for example “geolocation” written as a plain property instead of the geolocation extension). Medicare Advantage: 4,908 of 218,574 | |||
| identifier (spans 4 profile slices — the failing rule is identified by its code set in the drill-down)Organization.identifier | error mixed slices | <0.1%n=1,862,241 | 1.0× |
| The organization record fails a US Core rule on name/period consistency. Medicare Advantage: 372 of 218,574 | |||
| address › textOrganization.address.text | warning mixed slices | <0.1%n=1,862,241 | 1.1× |
| A text value starts or ends with stray whitespace (e.g. a name stored with a trailing space). Medicare Advantage: 211 of 218,574 Medicaid: 51 of 267,236 Other (ODS): 5 of 1,376,431 | |||
| identifier (spans 4 profile slices — the failing rule is identified by its code set in the drill-down)Organization.identifier | error mixed slices | <0.1%n=1,862,241 | 1.0× |
| The organization record fails a US Core naming rule (a proper name value is required). Medicare Advantage: 210 of 218,574 | |||
| address › extension (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Organization.address.extension | error mixed slices | <0.1%n=1,862,241 | 4.6× |
| A required, specifically-typed component is missing from a structure that demands it. Medicare Advantage: 156 of 218,574 | |||
| address › extension (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Organization.address.extension | error mixed slices | <0.1%n=1,862,241 | 1.2× |
| An extension carries both a direct value and sub-extensions, which FHIR does not allow. Medicare Advantage: 156 of 218,574 | |||
| address › extension (spans 2 profile slices — the failing rule is identified by its code set in the drill-down)Organization.address.extension | error mixed slices | <0.1%n=1,862,241 | 1.2× |
| A required component is missing (for example a geolocation extension without its latitude/longitude parts). Medicare Advantage: 156 of 218,574 | |||
| nameOrganization.name | warning required element | <0.1%n=1,862,241 | 1.0× |
| A text value starts or ends with stray whitespace (e.g. a name stored with a trailing space). Medicaid: 14 of 267,236 Other (ODS): 29 of 1,376,431 | |||
A coded field carries a value outside the code set the profile requires for that field. Only codes from that set are valid there.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 0 of 605,951 records |
| Medicaid | 1.0%n=309,388 |
The failing code set names the exact profile rule even where one element row above spans several profile slices.
| code set | records affected | by source |
|---|---|---|
| http://hl7.org/fhir/ValueSet/contact-point-system | 0.3%n=915,339 | Medicaid: 3,124 of 309,388 |
| value set not named in the message | 0.3%n=915,339 | Medicaid: 3,124 of 309,388 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| telecom › systemLocation.telecom.system | error must-support | 0.3%n=915,339 | 1.0× |
| The value could not be matched to any code system for this field. Medicaid: 3,124 of 309,388 | |||
| telecom › systemLocation.telecom.system | error must-support | 0.3%n=915,339 | 1.0× |
| The value is not a valid code for this field (for example “website” is not a valid contact-point type). Medicaid: 3,124 of 309,388 | |||
The record breaks a rule the applicable profile states directly: a required element is missing, a value the profile fixes is different, or a structural invariant fails. These are the defects a directory consumer hits first.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 0.2%n=605,951 |
| Medicaid | 0 of 309,388 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| address › lineLocation.address.line | warning must-support | 0.1%n=915,339 | 1.0× |
| A text value starts or ends with stray whitespace (e.g. a name stored with a trailing space). Medicare Advantage: 1,330 of 605,951 | |||
These describe the validation environment or the publisher's tooling rather than directory data quality; they are listed so nothing is silently dropped.
Advisory findings from HL7's best-practice checks — here, entirely the absence of a human-readable narrative block. Machine consumers are unaffected.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 218,574 records |
| Medicaid | all 267,236 records |
| Other (ODS) | all 1,376,431 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the Organization record as a wholeOrganization | warning whole record | all 1,862,241 records | 1.0× |
| The record has no human-readable narrative text. Medicare Advantage: 218,574 of 218,574 Medicaid: 267,236 of 267,236 Other (ODS): 1,376,431 of 1,376,431 | |||
The publisher attaches its own internal metadata extension (a record-creation timestamp) to every record without publishing its definition. Harmless to directory use, but it is on 100% of records by construction, which is why it is reported separately instead of inside any quality rate.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 218,574 records |
| Medicaid | all 267,236 records |
| Other (ODS) | all 1,376,431 records |
| extension URL | records affected | occurrences |
|---|---|---|
| ex:createdAt | all 1,862,241 records | 1,862,241 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| meta › extension (inside the profile's extension family — the message text names the failing item)Organization.meta.extension | error sub-field of an optional element | all 1,862,241 records | 1.0× |
| The record carries a custom extension whose definition is not published, so its meaning cannot be verified. Medicare Advantage: 218,574 of 218,574 Medicaid: 267,236 of 267,236 Other (ODS): 1,376,431 of 1,376,431 | |||
The records mechanically stamp version “4.0.1” — the FHIR specification's own version number — onto every code system they cite (provider taxonomies, organization types, …). The codes themselves may be fine, but they claim a version that does not exist, so version-aware consumers cannot validate them. One mechanical publishing defect, repeated on nearly every record.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 218,574 records |
| Medicaid | all 267,236 records |
| Other (ODS) | all 1,376,431 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| type › coding › systemOrganization.type.coding.system | warning sub-field of a required element | all 1,862,241 records | 1.2× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicare Advantage: 218,574 of 218,574 Medicaid: 267,236 of 267,236 Other (ODS): 1,376,431 of 1,376,431 | |||
| type › coding › versionOrganization.type.coding.version | warning sub-field of a required element | all 1,862,241 records | 1.0× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicare Advantage: 218,574 of 218,574 Medicaid: 267,236 of 267,236 Other (ODS): 1,376,431 of 1,376,431 | |||
| identifier › type › coding › codeOrganization.identifier.type.coding.code | error sub-field of a must-support element | 0.4%n=1,862,241 | 1.0× |
| The code is not present in the code-system version the record claims. Medicare Advantage: 712 of 218,574 Medicaid: 1,040 of 267,236 Other (ODS): 5,902 of 1,376,431 | |||
Advisory findings from HL7's best-practice checks — here, entirely the absence of a human-readable narrative block. Machine consumers are unaffected.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 605,951 records |
| Medicaid | all 309,388 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the Location record as a wholeLocation | warning whole record | all 915,339 records | 1.0× |
| The record has no human-readable narrative text. Medicare Advantage: 605,951 of 605,951 Medicaid: 309,388 of 309,388 | |||
The publisher attaches its own internal metadata extension (a record-creation timestamp) to every record without publishing its definition. Harmless to directory use, but it is on 100% of records by construction, which is why it is reported separately instead of inside any quality rate.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 605,951 records |
| Medicaid | all 309,388 records |
| extension URL | records affected | occurrences |
|---|---|---|
| ex:createdAt | all 915,339 records | 915,339 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| meta › extension (inside the profile's extension family — the message text names the failing item)Location.meta.extension | error sub-field of an optional element | all 915,339 records | 1.0× |
| The record carries a custom extension whose definition is not published, so its meaning cannot be verified. Medicare Advantage: 605,951 of 605,951 Medicaid: 309,388 of 309,388 | |||
Advisory findings from HL7's best-practice checks — here, entirely the absence of a human-readable narrative block. Machine consumers are unaffected.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 205,454 records |
| Medicaid | all 15,718 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the Practitioner record as a wholePractitioner | warning whole record | all 221,172 records | 1.0× |
| The record has no human-readable narrative text. Medicare Advantage: 205,454 of 205,454 Medicaid: 15,718 of 15,718 | |||
The publisher attaches its own internal metadata extension (a record-creation timestamp) to every record without publishing its definition. Harmless to directory use, but it is on 100% of records by construction, which is why it is reported separately instead of inside any quality rate.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 205,454 records |
| Medicaid | all 15,718 records |
| extension URL | records affected | occurrences |
|---|---|---|
| ex:createdAt | all 221,172 records | 221,172 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| meta › extension (inside the profile's extension family — the message text names the failing item)Practitioner.meta.extension | error sub-field of an optional element | all 221,172 records | 1.0× |
| The record carries a custom extension whose definition is not published, so its meaning cannot be verified. Medicare Advantage: 205,454 of 205,454 Medicaid: 15,718 of 15,718 | |||
The code system named by the record is not part of the loaded validation packages, so the code could not be checked. A limitation of the validation environment, not evidence the code is wrong.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 205,454 records |
| Medicaid | all 15,718 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| identifier › type › coding › systemPractitioner.identifier.type.coding.system | warning sub-field of a must-support element | all 221,172 records | 1.0× |
| The code system named by the record is not in the loaded validation packages, so the code could not be checked. Medicare Advantage: 205,454 of 205,454 Medicaid: 15,718 of 15,718 | |||
| communication › coding › systemPractitioner.communication.coding.system | warning sub-field of an optional element | 4.4%n=221,172 | 1.0× |
| The code system named by the record is not in the loaded validation packages, so the code could not be checked. Medicare Advantage: 9,680 of 205,454 | |||
Advisory findings from HL7's best-practice checks — here, entirely the absence of a human-readable narrative block. Machine consumers are unaffected.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 45,616 records |
| Medicaid | all 50,411 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the PractitionerRole record as a wholePractitionerRole | warning whole record | all 96,027 records | 1.0× |
| The record has no human-readable narrative text. Medicare Advantage: 45,616 of 45,616 Medicaid: 50,411 of 50,411 | |||
The publisher attaches its own internal metadata extension (a record-creation timestamp) to every record without publishing its definition. Harmless to directory use, but it is on 100% of records by construction, which is why it is reported separately instead of inside any quality rate.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 45,616 records |
| Medicaid | all 50,411 records |
| extension URL | records affected | occurrences |
|---|---|---|
| ex:createdAt | all 96,027 records | 96,027 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| meta › extension (inside the profile's extension family — the message text names the failing item)PractitionerRole.meta.extension | error sub-field of an optional element | all 96,027 records | 1.0× |
| The record carries a custom extension whose definition is not published, so its meaning cannot be verified. Medicare Advantage: 45,616 of 45,616 Medicaid: 50,411 of 50,411 | |||
Advisory findings from HL7's best-practice checks — here, entirely the absence of a human-readable narrative block. Machine consumers are unaffected.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 9,119 records |
| Medicaid | all 29,079 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the HealthcareService record as a wholeHealthcareService | warning whole record | all 38,198 records | 1.0× |
| The record has no human-readable narrative text. Medicare Advantage: 9,119 of 9,119 Medicaid: 29,079 of 29,079 | |||
The publisher attaches its own internal metadata extension (a record-creation timestamp) to every record without publishing its definition. Harmless to directory use, but it is on 100% of records by construction, which is why it is reported separately instead of inside any quality rate.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 9,119 records |
| Medicaid | all 29,079 records |
| extension URL | records affected | occurrences |
|---|---|---|
| ex:createdAt | all 38,198 records | 38,198 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| meta › extension (inside the profile's extension family — the message text names the failing item)HealthcareService.meta.extension | error sub-field of an optional element | all 38,198 records | 1.0× |
| The record carries a custom extension whose definition is not published, so its meaning cannot be verified. Medicare Advantage: 9,119 of 9,119 Medicaid: 29,079 of 29,079 | |||
The records mechanically stamp version “4.0.1” — the FHIR specification's own version number — onto every code system they cite (provider taxonomies, organization types, …). The codes themselves may be fine, but they claim a version that does not exist, so version-aware consumers cannot validate them. One mechanical publishing defect, repeated on nearly every record.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 9,119 records |
| Medicaid | all 29,079 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| category › coding › systemHealthcareService.category.coding.system | warning sub-field of a mixed-class element | all 38,198 records | 1.0× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicare Advantage: 9,119 of 9,119 Medicaid: 29,079 of 29,079 | |||
| extension › extension › value › coding › version (inside the profile's extension family — the message text names the failing item)HealthcareService.extension.extension.value[x].coding.version | warning sub-field of a required element | 76.1%n=38,198 | 1.0× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicaid: 29,079 of 29,079 | |||
| extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)HealthcareService.extension.extension.value[x].coding.system | error sub-field of a required element | 76.1%n=38,198 | 1.0× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicaid: 29,079 of 29,079 | |||
| specialty › coding › systemHealthcareService.specialty.coding.system | warning sub-field of a must-support element | 61.1%n=38,198 | 1.2× |
| The record claims version “4.0.1” of a code system that has no such version (no version of it is in the validation packages), so the code could not be checked. Medicare Advantage: 4,322 of 9,119 Medicaid: 19,013 of 29,079 | |||
| extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)HealthcareService.extension.extension.value[x].coding.system | warning sub-field of a required element | 2.9%n=38,198 | 1.0× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicaid: 1,098 of 29,079 | |||
Advisory findings from HL7's best-practice checks — here, entirely the absence of a human-readable narrative block. Machine consumers are unaffected.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 36 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the Network record as a wholeOrganization | warning whole record | all 36 records | 1.0× |
| The record has no human-readable narrative text. Medicare Advantage: 36 of 36 | |||
The publisher attaches its own internal metadata extension (a record-creation timestamp) to every record without publishing its definition. Harmless to directory use, but it is on 100% of records by construction, which is why it is reported separately instead of inside any quality rate.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 36 records |
| extension URL | records affected | occurrences |
|---|---|---|
| ex:createdAt | all 36 records | 36 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| meta › extension (inside the profile's extension family — the message text names the failing item)Organization.meta.extension | error sub-field of an optional element | all 36 records | 1.0× |
| The record carries a custom extension whose definition is not published, so its meaning cannot be verified. Medicare Advantage: 36 of 36 | |||
The records mechanically stamp version “4.0.1” — the FHIR specification's own version number — onto every code system they cite (provider taxonomies, organization types, …). The codes themselves may be fine, but they claim a version that does not exist, so version-aware consumers cannot validate them. One mechanical publishing defect, repeated on nearly every record.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 36 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| type › coding › versionOrganization.type.coding.version | warning sub-field of a required element | all 36 records | 1.0× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicare Advantage: 36 of 36 | |||
| type › coding › systemOrganization.type.coding.system | error sub-field of a required element | all 36 records | 1.0× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicare Advantage: 36 of 36 | |||
Advisory findings from HL7's best-practice checks — here, entirely the absence of a human-readable narrative block. Machine consumers are unaffected.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 1 of 1 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| the InsurancePlan record as a wholeInsurancePlan | warning whole record | 1 of 1 records | 1.0× |
| The record has no human-readable narrative text. Medicare Advantage: 1 of 1 | |||
The publisher attaches its own internal metadata extension (a record-creation timestamp) to every record without publishing its definition. Harmless to directory use, but it is on 100% of records by construction, which is why it is reported separately instead of inside any quality rate.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 1 of 1 records |
| extension URL | records affected | occurrences |
|---|---|---|
| ex:createdAt | 1 of 1 records | 1 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| meta › extension (inside the profile's extension family — the message text names the failing item)InsurancePlan.meta.extension | error sub-field of an optional element | 1 of 1 records | 1.0× |
| The record carries a custom extension whose definition is not published, so its meaning cannot be verified. Medicare Advantage: 1 of 1 | |||
The records mechanically stamp version “4.0.1” — the FHIR specification's own version number — onto every code system they cite (provider taxonomies, organization types, …). The codes themselves may be fine, but they claim a version that does not exist, so version-aware consumers cannot validate them. One mechanical publishing defect, repeated on nearly every record.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | all 45,616 records |
| Medicaid | 98.5%n=50,411 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| specialty › coding › systemPractitionerRole.specialty.coding.system | warning sub-field of a must-support element | 98.9%n=96,027 | 1.5× |
| The record claims version “4.0.1” of a code system that has no such version (no version of it is in the validation packages), so the code could not be checked. Medicare Advantage: 45,616 of 45,616 Medicaid: 49,357 of 50,411 | |||
| extension › extension › value › coding › version (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.version | warning sub-field of a required element | 30.6%n=96,027 | 8.6× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicare Advantage: 29,350 of 45,616 | |||
| extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.system | error sub-field of a required element | 30.6%n=96,027 | 8.6× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicare Advantage: 29,350 of 45,616 | |||
| code › coding › versionPractitionerRole.code.coding.version | warning sub-field of a must-support element | 19.6%n=96,027 | 1.0× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicaid: 18,862 of 50,411 | |||
| code › coding › systemPractitionerRole.code.coding.system | error sub-field of a must-support element | 19.6%n=96,027 | 1.0× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicaid: 18,819 of 50,411 | |||
| extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.system | warning sub-field of a required element | 14.7%n=96,027 | 501.3× |
| The record claims version “4.0.1” of a code system that has no such version (no version of it is in the validation packages), so the code could not be checked. Medicare Advantage: 14,088 of 45,616 | |||
The code system named by the record is not part of the loaded validation packages, so the code could not be checked. A limitation of the validation environment, not evidence the code is wrong.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 76.5%n=218,574 |
| Medicaid | 88.7%n=267,236 |
| Other (ODS) | 99.6%n=1,376,431 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| identifier › type › coding › systemOrganization.identifier.type.coding.system | warning sub-field of a must-support element | 95.3%n=1,862,241 | 1.0× |
| The code system named by the record is not in the loaded validation packages, so the code could not be checked. Medicare Advantage: 167,175 of 218,574 Medicaid: 236,997 of 267,236 Other (ODS): 1,370,529 of 1,376,431 | |||
The records mechanically stamp version “4.0.1” — the FHIR specification's own version number — onto every code system they cite (provider taxonomies, organization types, …). The codes themselves may be fine, but they claim a version that does not exist, so version-aware consumers cannot validate them. One mechanical publishing defect, repeated on nearly every record.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 46.8%n=205,454 |
| Medicaid | >99.9%n=15,718 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| qualification › code › coding › systemPractitioner.qualification.code.coding.system | warning sub-field of a required element | 48.9%n=221,172 | 1.4× |
| The record claims version “4.0.1” of a code system that has no such version (no version of it is in the validation packages), so the code could not be checked. Medicare Advantage: 95,352 of 205,454 Medicaid: 12,889 of 15,718 | |||
| qualification › extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)Practitioner.qualification.extension.extension.value[x].coding.system | warning sub-field of a required element | 19.8%n=221,172 | 1.1× |
| The record claims version “4.0.1” of a code system that has no such version (no version of it is in the validation packages), so the code could not be checked. Medicare Advantage: 43,744 of 205,454 | |||
| communication › coding › codePractitioner.communication.coding.code | error sub-field of an optional element | 7.0%n=221,172 | 1.0× |
| The code is not present in the code-system version the record claims. Medicaid: 15,583 of 15,718 | |||
| communication › coding › systemPractitioner.communication.coding.system | warning sub-field of an optional element | 6.1%n=221,172 | 1.3× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicare Advantage: 13,590 of 205,454 Medicaid: 2 of 15,718 | |||
| communication › coding › versionPractitioner.communication.coding.version | warning sub-field of an optional element | 1.8%n=221,172 | 1.0× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicare Advantage: 3,910 of 205,454 Medicaid: 2 of 15,718 | |||
The validator's own machinery failed (pattern-check timeouts). These are not data defects and are excluded from every data-quality rate; they are counted here for completeness.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 22.2%n=36 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| address › extension › extension › value (inside the profile's extension family — the message text names the failing item)Organization.address.extension.extension.value[x] | error sub-field of a mixed-class element | 8.3%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 3 of 36 | |||
| address › lineOrganization.address.line | error must-support | 5.6%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 2 of 36 | |||
| address › cityOrganization.address.city | error must-support | 5.6%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 2 of 36 | |||
| address › extension › url (inside the profile's extension family — the message text names the failing item)Organization.address.extension.url | error sub-field of a mixed-class element | 5.6%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 2 of 36 | |||
| address › stateOrganization.address.state | error must-support | 2.8%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 36 | |||
| address › extension › extension › url (inside the profile's extension family — the message text names the failing item)Organization.address.extension.extension.url | error sub-field of a mixed-class element | 2.8%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 36 | |||
| address › countryOrganization.address.country | error must-support | 2.8%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 36 | |||
| address › textOrganization.address.text | error mixed slices | 2.8%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 36 | |||
| address › typeOrganization.address.type | error mixed slices | 2.8%n=36 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 36 | |||
The code system named by the record is not part of the loaded validation packages, so the code could not be checked. A limitation of the validation environment, not evidence the code is wrong.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 35.6%n=45,616 |
| Medicaid | 0 of 50,411 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.system | warning sub-field of a required element | 16.9%n=96,027 | 1.0× |
| The code system named by the record is not in the loaded validation packages, so the code could not be checked. Medicare Advantage: 16,261 of 45,616 | |||
The validator's own machinery failed (pattern-check timeouts). These are not data defects and are excluded from every data-quality rate; they are counted here for completeness.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 7.3%n=45,616 |
| Medicaid | <0.1%n=50,411 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| extension › extension › value › coding › code (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.code | error sub-field of a required element | 1.3%n=96,027 | 1.3× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1,247 of 45,616 | |||
| extension › extension › value › coding › display (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.display | error sub-field of a required element | 1.3%n=96,027 | 1.2× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1,237 of 45,616 | |||
| extension › extension › value › coding › version (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.version | error sub-field of a required element | 0.9%n=96,027 | 1.1× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 826 of 45,616 | |||
| extension › extension › url (spans 6 profile slices — the failing rule is identified by its code set in the drill-down)PractitionerRole.extension.extension.url | error required element | 0.3%n=96,027 | 1.2× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 304 of 45,616 | |||
| extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].coding.system | error sub-field of a required element | 0.2%n=96,027 | 1.4× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 156 of 45,616 | |||
| qualification › urlPractitionerRole.extension.url | error required element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 84 of 45,616 | |||
| extension › extension › value › reference (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].reference | error sub-field of a required element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 32 of 45,616 | |||
| telecom › valuePractitionerRole.telecom.value | error required element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 30 of 45,616 Medicaid: 1 of 50,411 | |||
| specialty › coding › codePractitionerRole.specialty.coding.code | error sub-field of a must-support element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 17 of 45,616 Medicaid: 4 of 50,411 | |||
| specialty › coding › displayPractitionerRole.specialty.coding.display | error sub-field of a must-support element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 16 of 45,616 Medicaid: 1 of 50,411 | |||
| meta › profilePractitionerRole.meta.profile | error sub-field of an optional element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 13 of 45,616 Medicaid: 4 of 50,411 | |||
| specialty › coding › versionPractitionerRole.specialty.coding.version | error sub-field of a must-support element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 12 of 45,616 | |||
| specialty › textPractitionerRole.specialty.text | error sub-field of a must-support element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 7 of 45,616 Medicaid: 3 of 50,411 | |||
| telecom › systemPractitionerRole.telecom.system | error required element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 8 of 45,616 Medicaid: 1 of 50,411 | |||
| location › referencePractitionerRole.location.reference | error sub-field of a must-support element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 8 of 45,616 Medicaid: 1 of 50,411 | |||
| period › startPractitionerRole.period.start | error sub-field of a must-support element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 5 of 45,616 Medicaid: 4 of 50,411 | |||
| location › typePractitionerRole.location.type | error sub-field of a must-support element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 4 of 45,616 Medicaid: 1 of 50,411 | |||
| meta › sourcePractitionerRole.meta.source | error sub-field of an optional element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 3 of 45,616 Medicaid: 1 of 50,411 | |||
| activePractitionerRole.active | error required element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 4 of 45,616 | |||
| extension › extension › value › start (inside the profile's extension family — the message text names the failing item)PractitionerRole.extension.extension.value[x].start | error sub-field of a required element | <0.1%n=96,027 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 4 of 45,616 | |||
13 smaller findings in this cell are in the accompanying dataset.
The records mechanically stamp version “4.0.1” — the FHIR specification's own version number — onto every code system they cite (provider taxonomies, organization types, …). The codes themselves may be fine, but they claim a version that does not exist, so version-aware consumers cannot validate them. One mechanical publishing defect, repeated on nearly every record.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | 1.4%n=605,951 |
| Medicaid | 4.7%n=309,388 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| extension › extension › value › coding › system (inside the profile's extension family — the message text names the failing item)Location.extension.extension.value[x].coding.system | error sub-field of a required element | 1.6%n=915,339 | 1.0× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicaid: 14,531 of 309,388 | |||
| extension › extension › value › coding › version (inside the profile's extension family — the message text names the failing item)Location.extension.extension.value[x].coding.version | warning sub-field of a required element | 1.6%n=915,339 | 1.0× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicaid: 14,531 of 309,388 | |||
| type › coding › versionLocation.type.coding.version | warning sub-field of a must-support element | 1.0%n=915,339 | 3.0× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicare Advantage: 8,754 of 605,951 | |||
| type › coding › systemLocation.type.coding.system | warning sub-field of a must-support element | 1.0%n=915,339 | 1.0× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicare Advantage: 8,754 of 605,951 | |||
| extension › value › coding › system (inside the profile's extension family — the message text names the failing item)Location.extension.value[x].coding.system | warning sub-field of a mixed-class element | 0.2%n=915,339 | 4.8× |
| The record claims version “4.0.1” of a known code system; that version does not exist, so the code could not be checked at the claimed version. Medicaid: 1,869 of 309,388 | |||
| extension › value › coding › version (inside the profile's extension family — the message text names the failing item)Location.extension.value[x].coding.version | warning sub-field of a mixed-class element | 0.2%n=915,339 | 4.8× |
| The record stamps a different code-system version than the one the profile's value set is defined against. Medicaid: 1,869 of 309,388 | |||
The validator's own machinery failed (pattern-check timeouts). These are not data defects and are excluded from every data-quality rate; they are counted here for completeness.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | <0.1%n=218,574 |
| Medicaid | <0.1%n=267,236 |
| Other (ODS) | <0.1%n=1,376,431 |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| address › lineOrganization.address.line | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 11 of 218,574 Medicaid: 5 of 267,236 Other (ODS): 9 of 1,376,431 | |||
| identifier › type › coding › codeOrganization.identifier.type.coding.code | error sub-field of a must-support element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 2 of 218,574 Medicaid: 4 of 267,236 Other (ODS): 14 of 1,376,431 | |||
| address › postalCodeOrganization.address.postalCode | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 8 of 218,574 Other (ODS): 5 of 1,376,431 | |||
| telecom › valueOrganization.telecom.value | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 8 of 218,574 Medicaid: 2 of 267,236 Other (ODS): 2 of 1,376,431 | |||
| address › extension › extension › value (inside the profile's extension family — the message text names the failing item)Organization.address.extension.extension.value[x] | error sub-field of a mixed-class element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 11 of 218,574 | |||
| identifier › valueOrganization.identifier.value | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 2 of 218,574 Medicaid: 2 of 267,236 Other (ODS): 6 of 1,376,431 | |||
| address › stateOrganization.address.state | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 3 of 218,574 Medicaid: 3 of 267,236 Other (ODS): 4 of 1,376,431 | |||
| address › cityOrganization.address.city | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 5 of 218,574 Other (ODS): 4 of 1,376,431 | |||
| address › countryOrganization.address.country | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 6 of 218,574 Other (ODS): 3 of 1,376,431 | |||
| type › coding › displayOrganization.type.coding.display | error sub-field of a required element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 3 of 218,574 Other (ODS): 4 of 1,376,431 | |||
| address › textOrganization.address.text | error mixed slices | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 218,574 Medicaid: 2 of 267,236 Other (ODS): 3 of 1,376,431 | |||
| meta › profileOrganization.meta.profile | error sub-field of an optional element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 218,574 Medicaid: 1 of 267,236 Other (ODS): 4 of 1,376,431 | |||
| type › coding › codeOrganization.type.coding.code | error sub-field of a required element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 2 of 218,574 Medicaid: 1 of 267,236 Other (ODS): 2 of 1,376,431 | |||
| address › useOrganization.address.use | error optional element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Other (ODS): 4 of 1,376,431 | |||
| address › typeOrganization.address.type | error mixed slices | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 218,574 Other (ODS): 3 of 1,376,431 | |||
| identifier › systemOrganization.identifier.system | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicaid: 2 of 267,236 Other (ODS): 2 of 1,376,431 | |||
| telecom › systemOrganization.telecom.system | error must-support | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Other (ODS): 3 of 1,376,431 | |||
| meta › extension › url (inside the profile's extension family — the message text names the failing item)Organization.meta.extension.url | error sub-field of an optional element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicaid: 1 of 267,236 Other (ODS): 1 of 1,376,431 | |||
| identifier › type › coding › systemOrganization.identifier.type.coding.system | error sub-field of a must-support element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Other (ODS): 2 of 1,376,431 | |||
| telecom › useOrganization.telecom.use | error optional element | <0.1%n=1,862,241 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicaid: 1 of 267,236 | |||
3 smaller findings in this cell are in the accompanying dataset.
The validator's own machinery failed (pattern-check timeouts). These are not data defects and are excluded from every data-quality rate; they are counted here for completeness.
| source / line of business | records affected |
|---|---|
| Medicare Advantage | <0.1%n=205,454 |
| Medicaid | 0 of 15,718 records |
| element | severity / requirement | records affected | repeats per record |
|---|---|---|---|
| address › period › startPractitioner.address.period.start | error sub-field of an optional element | <0.1%n=221,172 | 1.0× |
| The validator's own pattern check timed out. Not a data defect. Medicare Advantage: 1 of 205,454 | |||
In plain terms: a validator can only judge what is present — it says nothing about an element that is simply missing. This section closes that blind spot: for every element the profiles require or mark must-support, the audit counts how many records of that type actually populate it, per line of business. Shown below: every such element populated on fewer than 95% of records anywhere. The element-population audit ran over the same capture, per source.
| element | requirement | populated, by source |
|---|---|---|
| appointmentRequiredHealthcareService.appointmentRequired | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| availabilityExceptionsHealthcareService.availabilityExceptions | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| availableTimeHealthcareService.availableTime | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| availableTime › allDayHealthcareService.availableTime.allDay | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| availableTime › availableEndTimeHealthcareService.availableTime.availableEndTime | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| availableTime › availableStartTimeHealthcareService.availableTime.availableStartTime | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| availableTime › daysOfWeekHealthcareService.availableTime.daysOfWeek | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| commentHealthcareService.comment | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| coverageAreaHealthcareService.coverageArea | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| endpointHealthcareService.endpoint | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 0 of 29,079 records |
| deliverymethodHealthcareService.extension:deliverymethod | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 3.8%n=29,079 |
| deliverymethod › typeHealthcareService.extension:deliverymethod.extension:type | required element | Medicare Advantage: 0 of 9,119 records Medicaid: 3.8%n=29,079 |
| deliverymethod › type › valueHealthcareService.extension:deliverymethod.extension:type.value[x] | required element | Medicare Advantage: 0 of 9,119 records Medicaid: 3.8%n=29,079 |
| deliverymethod › virtualModalitiesHealthcareService.extension:deliverymethod.extension:virtualModalities | must-support | Medicare Advantage: 0 of 9,119 records Medicaid: 3.8%n=29,079 |
| deliverymethod › virtualModalities › valueHealthcareService.extension:deliverymethod.extension:virtualModalities.value[x] | required element | Medicare Advantage: 0 of 9,119 records Medicaid: 3.8%n=29,079 |
26 further under-populated elements in the dataset.
| element | requirement | populated, by source |
|---|---|---|
| aliasInsurancePlan.alias | must-support | Medicare Advantage: 0 of 1 records |
| coverage › benefitInsurancePlan.coverage.benefit | required element | Medicare Advantage: 0 of 1 records |
| coverage › benefit › typeInsurancePlan.coverage.benefit.type | required element | Medicare Advantage: 0 of 1 records |
| coverage › typeInsurancePlan.coverage.type | required element | Medicare Advantage: 0 of 1 records |
| coverageAreaInsurancePlan.coverageArea | must-support | Medicare Advantage: 0 of 1 records |
| endpointInsurancePlan.endpoint | must-support | Medicare Advantage: 0 of 1 records |
| identifier › typeInsurancePlan.identifier.type | must-support | Medicare Advantage: 0 of 1 records |
| nameInsurancePlan.name | must-support | Medicare Advantage: 0 of 1 records |
| networkInsurancePlan.network | must-support | Medicare Advantage: 0 of 1 records |
| periodInsurancePlan.period | must-support | Medicare Advantage: 0 of 1 records |
| plan › coverageAreaInsurancePlan.plan.coverageArea | must-support | Medicare Advantage: 0 of 1 records |
| plan › specificCost › benefit › cost › typeInsurancePlan.plan.specificCost.benefit.cost.type | required element | Medicare Advantage: 0 of 1 records |
| plan › specificCost › benefit › typeInsurancePlan.plan.specificCost.benefit.type | required element | Medicare Advantage: 0 of 1 records |
| plan › specificCost › categoryInsurancePlan.plan.specificCost.category | required element | Medicare Advantage: 0 of 1 records |
| plan › typeInsurancePlan.plan.type | must-support | Medicare Advantage: 0 of 1 records |
| element | requirement | populated, by source |
|---|---|---|
| aliasLocation.alias | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| availabilityExceptionsLocation.availabilityExceptions | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| descriptionLocation.description | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| endpointLocation.endpoint | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| accessibilityLocation.extension:accessibility | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0.6%n=309,388 |
| accessibility › valueLocation.extension:accessibility.value[x] | required element | Medicare Advantage: 0 of 605,951 records Medicaid: 0.6%n=309,388 |
| newpatientsLocation.extension:newpatients | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 4.7%n=309,388 |
| newpatients › acceptingPatientsLocation.extension:newpatients.extension:acceptingPatients | required element | Medicare Advantage: 0 of 605,951 records Medicaid: 4.7%n=309,388 |
| newpatients › acceptingPatients › valueLocation.extension:newpatients.extension:acceptingPatients.value[x] | required element | Medicare Advantage: 0 of 605,951 records Medicaid: 4.7%n=309,388 |
| newpatients › characteristicsLocation.extension:newpatients.extension:characteristics | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| newpatients › characteristics › valueLocation.extension:newpatients.extension:characteristics.value[x] | required element | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| newpatients › fromNetworkLocation.extension:newpatients.extension:fromNetwork | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| newpatients › fromNetwork › valueLocation.extension:newpatients.extension:fromNetwork.value[x] | required element | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| regionLocation.extension:region | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
| hoursOfOperationLocation.hoursOfOperation | must-support | Medicare Advantage: 0 of 605,951 records Medicaid: 0 of 309,388 records |
21 further under-populated elements in the dataset.
| element | requirement | populated, by source |
|---|---|---|
| address › geolocationOrganization.address.extension:geolocation | must-support | Medicare Advantage: 22.8%n=218,574 Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contactOrganization.contact | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › nameOrganization.contact.name | must-support | Medicare Advantage: 0 of 36 records Medicaid: no signal, n=0 Other (ODS): no signal, n=0 |
| contact › telecomOrganization.contact.telecom | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › contactpoint-availabletime › allDayOrganization.contact.telecom.extension:contactpoint-availabletime.extension:allDay | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › contactpoint-availabletime › availableEndTimeOrganization.contact.telecom.extension:contactpoint-availabletime.extension:availableEndTime | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › contactpoint-availabletime › availableStartTimeOrganization.contact.telecom.extension:contactpoint-availabletime.extension:availableStartTime | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › contactpoint-availabletime › daysOfWeekOrganization.contact.telecom.extension:contactpoint-availabletime.extension:daysOfWeek | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › via-intermediary › valueOrganization.contact.telecom.extension:via-intermediary.value[x] | required element | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › systemOrganization.contact.telecom.system | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › useOrganization.contact.telecom.use | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| contact › telecom › valueOrganization.contact.telecom.value | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| endpointOrganization.endpoint | must-support | Medicare Advantage: 0 of 218,574 records Medicaid: 0 of 267,236 records Other (ODS): 0 of 1,376,431 records |
| location-referenceOrganization.extension:location-reference | must-support | Medicare Advantage: 0 of 36 records Medicaid: no signal, n=0 Other (ODS): no signal, n=0 |
| location-reference › valueOrganization.extension:location-reference.value[x] | required element | Medicare Advantage: 0 of 36 records Medicaid: no signal, n=0 Other (ODS): no signal, n=0 |
41 further under-populated elements in the dataset.
| element | requirement | populated, by source |
|---|---|---|
| address › geolocationPractitioner.address.extension:geolocation | must-support | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| communication › communication-proficiencyPractitioner.communication.extension:communication-proficiency | must-support | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| communication › communication-proficiency › valuePractitioner.communication.extension:communication-proficiency.value[x] | required element | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| qualification › practitioner-qualification › whereValidPractitioner.qualification.extension:practitioner-qualification.extension:whereValid | must-support | Medicare Advantage: 21.3%n=205,454 Medicaid: 0 of 15,718 records |
| qualification › practitioner-qualification › whereValid › valuePractitioner.qualification.extension:practitioner-qualification.extension:whereValid.value[x] | required element | Medicare Advantage: 21.3%n=205,454 Medicaid: 0 of 15,718 records |
| qualification › identifierPractitioner.qualification.identifier | must-support | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| qualification › issuerPractitioner.qualification.issuer | must-support | Medicare Advantage: 44.9%n=205,454 Medicaid: 0 of 15,718 records |
| qualification › periodPractitioner.qualification.period | must-support | Medicare Advantage: 42.9%n=205,454 Medicaid: 0 of 15,718 records |
| telecom › contactpoint-availabletime › allDayPractitioner.telecom.extension:contactpoint-availabletime.extension:allDay | must-support | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| telecom › contactpoint-availabletime › availableEndTimePractitioner.telecom.extension:contactpoint-availabletime.extension:availableEndTime | must-support | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| telecom › contactpoint-availabletime › availableStartTimePractitioner.telecom.extension:contactpoint-availabletime.extension:availableStartTime | must-support | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| telecom › contactpoint-availabletime › daysOfWeekPractitioner.telecom.extension:contactpoint-availabletime.extension:daysOfWeek | must-support | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| telecom › via-intermediary › valuePractitioner.telecom.extension:via-intermediary.value[x] | required element | Medicare Advantage: 0 of 205,454 records Medicaid: 0 of 15,718 records |
| communicationPractitioner.communication | must-support | Medicare Advantage: 6.6%n=205,454 Medicaid: 99.2%n=15,718 |
| qualification › practitioner-qualificationPractitioner.qualification.extension:practitioner-qualification | must-support | Medicare Advantage: 23.2%n=205,454 Medicaid: 82.0%n=15,718 |
7 further under-populated elements in the dataset.
| element | requirement | populated, by source |
|---|---|---|
| availableTimePractitionerRole.availableTime | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| availableTime › allDayPractitionerRole.availableTime.allDay | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| availableTime › availableEndTimePractitionerRole.availableTime.availableEndTime | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| availableTime › availableStartTimePractitionerRole.availableTime.availableStartTime | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| availableTime › daysOfWeekPractitionerRole.availableTime.daysOfWeek | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| codePractitionerRole.code | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 37.4%n=50,411 |
| endpointPractitionerRole.endpoint | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| network-referencePractitionerRole.extension:network-reference | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| network-reference › valuePractitionerRole.extension:network-reference.value[x] | required element | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| newpatientsPractitionerRole.extension:newpatients | must-support | Medicare Advantage: 64.3%n=45,616 Medicaid: 0 of 50,411 records |
| newpatients › acceptingPatientsPractitionerRole.extension:newpatients.extension:acceptingPatients | required element | Medicare Advantage: 64.3%n=45,616 Medicaid: 0 of 50,411 records |
| newpatients › acceptingPatients › valuePractitionerRole.extension:newpatients.extension:acceptingPatients.value[x] | required element | Medicare Advantage: 64.3%n=45,616 Medicaid: 0 of 50,411 records |
| newpatients › characteristicsPractitionerRole.extension:newpatients.extension:characteristics | must-support | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| newpatients › characteristics › valuePractitionerRole.extension:newpatients.extension:characteristics.value[x] | required element | Medicare Advantage: 0 of 45,616 records Medicaid: 0 of 50,411 records |
| newpatients › fromNetworkPractitionerRole.extension:newpatients.extension:fromNetwork | must-support | Medicare Advantage: 64.3%n=45,616 Medicaid: 0 of 50,411 records |
36 further under-populated elements in the dataset.
In plain terms: this section answers, element by element, “what should be here, and is it?” — the expected value type, how many are allowed (cardinality, e.g. 0..1 = optional single, 1..1 = exactly one required), and the code set the value must come from where one is bound.
required element = the profile demands the element itself (minimum cardinality ≥ 1). must-support = optional (0..1 or 0..*), but a conforming system must be able to populate and consume it. sub-field of a required / must-support / optional element = the message sits on a core-FHIR field inside such an element. Read those rows carefully: a “sub-field of an optional element” finding does NOT mean the optional element is missing — it means the record populated the optional parent and the content inside it is defective (e.g. the 0..1 period.end inside an optional 0..1 address period, filled with a placeholder date). Each such row states the parent's own cardinality and class in its “what the profile expects” column. whole record = the message applies to the record, not an element. base-FHIR element = no profile-enumerated element within two levels above.
Of 31,320,889 validator messages: 9,712,048 sit directly on profile-enumerated elements, 18,345,865 on sub-fields inside them, 3,262,976 apply to whole records, and 0 sit on base-FHIR elements outside the profile's reach. All groups are itemized below; nothing is dropped. Records-affected counts are exact per (element, category) row; the same record can appear in several rows.
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| activePractitioner.active | Practitioner | type boolean, 1..1 | structural conformance | 22.8%n=221,172 | 50,492 |
| qualification › extension › extension › valuePractitioner.qualification.extension.extension.value[x] | Practitioner | type varies by slice, 1..1, binding varies by slice | required code sets | 19.8%n=221,172 | 49,990 |
| qualification › extension › extension › valuePractitioner.qualification.extension.extension.value[x] | Practitioner | type varies by slice, 1..1, binding varies by slice | structural conformance | 13.1%n=221,172 | 32,942 |
| extension › extension › valuePractitionerRole.extension.extension.value[x] | PractitionerRole | type varies by slice, 1..1, binding varies by slice | required code sets | 14.7%n=96,027 | 7,062,435 |
| activeOrganization.active | Organization | type boolean, 1..1 | structural conformance | 0.3%n=1,862,241 | 5,177 |
| extension › extension › urlPractitionerRole.extension.extension.url | PractitionerRole | 1..1 | validator limitation | 0.3%n=96,027 | 363 |
| extension › urlPractitionerRole.extension.url | PractitionerRole | 1..1 | validator limitation | <0.1%n=96,027 | 88 |
| nameOrganization.name | Organization | type string, 1..1 | structural conformance | <0.1%n=1,862,241 | 43 |
| telecom › valuePractitionerRole.telecom.value | PractitionerRole | type string, 1..1 | validator limitation | <0.1%n=96,027 | 31 |
| telecom › systemPractitionerRole.telecom.system | PractitionerRole | type code, 1..1, required binding to contact-point-system | validator limitation | <0.1%n=96,027 | 9 |
| activePractitionerRole.active | PractitionerRole | type boolean, 1..1 | validator limitation | <0.1%n=96,027 | 4 |
| typeInsurancePlan.type | InsurancePlan | 1..1, extensible binding to InsuranceProductTypeVS | preferred code sets | 1 of 1 records | 1 |
| extension › extension › valuePractitionerRole.extension.extension.value[x] | PractitionerRole | type varies by slice, 1..1, binding varies by slice | validator limitation | <0.1%n=96,027 | 1 |
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| identifier › typeOrganization.identifier.type | Organization | 0..1, extensible binding to identifier-type | preferred code sets | 95.9%n=1,862,241 | 1,786,308 |
| identifier › typePractitioner.identifier.type | Practitioner | 0..1, extensible binding to identifier-type | preferred code sets | all 221,172 records | 442,344 |
| name › textPractitioner.name.text | Practitioner | type string, 0..1 | structural conformance | 44.4%n=221,172 | 98,188 |
| specialtyPractitionerRole.specialty | PractitionerRole | 0..*, required binding to IndividualAndGroupSpecialtiesVS | preferred code sets | 98.9%n=96,027 | 142,277 |
| telecom › systemLocation.telecom.system | Location | type code, 0..1, required binding to contact-point-system | required code sets | 0.3%n=915,339 | 6,248 |
| address › lineLocation.address.line | Location | type string, 0..* | structural conformance | 0.1%n=915,339 | 1,330 |
| codePractitionerRole.code | PractitionerRole | 0..*, required binding to PractitionerRoleVS | preferred code sets | <0.1%n=96,027 | 73 |
| address › lineOrganization.address.line | Organization | type string, 0..4 | validator limitation | <0.1%n=1,862,241 | 25 |
| qualificationPractitioner.qualification | Practitioner | 0..* | structural conformance | <0.1%n=221,172 | 48 |
| address › postalCodeOrganization.address.postalCode | Organization | type string, 0..1 | validator limitation | <0.1%n=1,862,241 | 13 |
| telecom › valueOrganization.telecom.value | Organization | type string, 0..1 | validator limitation | <0.1%n=1,862,241 | 12 |
| address › stateOrganization.address.state | Organization | type string, 0..1, extensible binding to us-core-usps-state | validator limitation | <0.1%n=1,862,241 | 10 |
| identifier › valueOrganization.identifier.value | Organization | type string, 0..1 | validator limitation | <0.1%n=1,862,241 | 10 |
| address › cityOrganization.address.city | Organization | type string, 0..1 | validator limitation | <0.1%n=1,862,241 | 9 |
| address › countryOrganization.address.country | Organization | type string, 0..1 | validator limitation | <0.1%n=1,862,241 | 9 |
| identifier › systemOrganization.identifier.system | Organization | type uri, 0..1 | validator limitation | <0.1%n=1,862,241 | 4 |
| specialtyPractitionerRole.specialty | PractitionerRole | 0..*, required binding to IndividualAndGroupSpecialtiesVS | required code sets | <0.1%n=96,027 | 4 |
| telecom › systemOrganization.telecom.system | Organization | type code, 0..1, required binding to contact-point-system | validator limitation | <0.1%n=1,862,241 | 3 |
| address › cityOrganization.address.city | Network | type string, 0..1 | validator limitation | 5.6%n=36 | 2 |
| address › lineOrganization.address.line | Network | type string, 0..4 | validator limitation | 5.6%n=36 | 2 |
| address › countryOrganization.address.country | Network | type string, 0..1 | validator limitation | 2.8%n=36 | 1 |
| address › stateOrganization.address.state | Network | type string, 0..1, extensible binding to us-core-usps-state | validator limitation | 2.8%n=36 | 1 |
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| type › coding › systemOrganization.type.coding.system | Organization | core-FHIR sub-field coding.system inside an element (cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | all 1,862,241 records | 2,320,009 |
| type › coding › versionOrganization.type.coding.version | Organization | core-FHIR sub-field coding.version inside an element (cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | all 1,862,241 records | 1,862,241 |
| qualification › code › coding › systemPractitioner.qualification.code.coding.system | Practitioner | core-FHIR sub-field coding.system inside an element (1..1, extensible binding to IndividualSpecialtyAndDegreeLicenseCertificateVS) — these messages can only fire in records that populated the parent | code-system version stamping | 48.9%n=221,172 | 147,587 |
| qualification › extension › extension › value › coding › systemPractitioner.qualification.extension.extension.value[x].coding.system | Practitioner | core-FHIR sub-field coding.system inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 19.8%n=221,172 | 49,990 |
| extension › extension › value › coding › systemPractitionerRole.extension.extension.value[x].coding.system | PractitionerRole | core-FHIR sub-field coding.system inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 45.2%n=96,027 | 7,315,970 |
| extension › extension › value › coding › versionPractitionerRole.extension.extension.value[x].coding.version | PractitionerRole | core-FHIR sub-field coding.version inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 30.6%n=96,027 | 253,535 |
| extension › extension › value › coding › systemHealthcareService.extension.extension.value[x].coding.system | HealthcareService | core-FHIR sub-field coding.system inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 76.1%n=38,198 | 30,177 |
| extension › extension › value › coding › versionHealthcareService.extension.extension.value[x].coding.version | HealthcareService | core-FHIR sub-field coding.version inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 76.1%n=38,198 | 30,177 |
| extension › extension › value › coding › systemPractitionerRole.extension.extension.value[x].coding.system | PractitionerRole | core-FHIR sub-field coding.system inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | uncheckable codes | 16.9%n=96,027 | 16,864 |
| extension › extension › value › coding › systemLocation.extension.extension.value[x].coding.system | Location | core-FHIR sub-field coding.system inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 1.6%n=915,339 | 14,531 |
| extension › extension › value › coding › versionLocation.extension.extension.value[x].coding.version | Location | core-FHIR sub-field coding.version inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 1.6%n=915,339 | 14,531 |
| extension › extension › value › endPractitionerRole.extension.extension.value[x].end | PractitionerRole | core-FHIR sub-field end inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | structural conformance | 13.6%n=96,027 | 13,575 |
| extension › extension › value › coding › codePractitionerRole.extension.extension.value[x].coding.code | PractitionerRole | core-FHIR sub-field coding.code inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | 1.3%n=96,027 | 1,635 |
| extension › extension › value › coding › displayPractitionerRole.extension.extension.value[x].coding.display | PractitionerRole | core-FHIR sub-field coding.display inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | 1.3%n=96,027 | 1,538 |
| extension › extension › value › coding › versionPractitionerRole.extension.extension.value[x].coding.version | PractitionerRole | core-FHIR sub-field coding.version inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | 0.9%n=96,027 | 931 |
| extension › extension › value › coding › systemPractitionerRole.extension.extension.value[x].coding.system | PractitionerRole | core-FHIR sub-field coding.system inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | 0.2%n=96,027 | 211 |
| type › coding › systemOrganization.type.coding.system | Network | core-FHIR sub-field coding.system inside an element (cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | all 36 records | 36 |
| type › coding › versionOrganization.type.coding.version | Network | core-FHIR sub-field coding.version inside an element (cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | all 36 records | 36 |
| extension › extension › value › referencePractitionerRole.extension.extension.value[x].reference | PractitionerRole | core-FHIR sub-field reference inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 32 |
| type › coding › displayOrganization.type.coding.display | Organization | core-FHIR sub-field coding.display inside an element (cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 7 |
| type › coding › codeOrganization.type.coding.code | Organization | core-FHIR sub-field coding.code inside an element (cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 5 |
| extension › extension › value › startPractitionerRole.extension.extension.value[x].start | PractitionerRole | core-FHIR sub-field start inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 4 |
| extension › extension › value › displayPractitionerRole.extension.extension.value[x].display | PractitionerRole | core-FHIR sub-field display inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 1 |
| extension › extension › value › endPractitionerRole.extension.extension.value[x].end | PractitionerRole | core-FHIR sub-field end inside an element (type varies by slice, 1..1, binding varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 1 |
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| identifier › type › coding › systemOrganization.identifier.type.coding.system | Organization | core-FHIR sub-field coding.system inside an element (0..1, extensible binding to identifier-type) — these messages can only fire in records that populated the parent | uncheckable codes | 95.3%n=1,862,241 | 1,774,701 |
| identifier › type › coding › systemPractitioner.identifier.type.coding.system | Practitioner | core-FHIR sub-field coding.system inside an element (0..1, extensible binding to identifier-type) — these messages can only fire in records that populated the parent | uncheckable codes | all 221,172 records | 221,172 |
| specialty › coding › systemPractitionerRole.specialty.coding.system | PractitionerRole | core-FHIR sub-field coding.system inside an element (0..*, required binding to IndividualAndGroupSpecialtiesVS) — these messages can only fire in records that populated the parent | code-system version stamping | 98.9%n=96,027 | 142,273 |
| qualification › period › endPractitioner.qualification.period.end | Practitioner | core-FHIR sub-field end inside an element (0..1) — these messages can only fire in records that populated the parent | structural conformance | 10.6%n=221,172 | 24,966 |
| specialty › coding › systemHealthcareService.specialty.coding.system | HealthcareService | core-FHIR sub-field coding.system inside an element (0..*, required binding to SpecialtiesVS) — these messages can only fire in records that populated the parent | code-system version stamping | 61.1%n=38,198 | 27,462 |
| code › coding › versionPractitionerRole.code.coding.version | PractitionerRole | core-FHIR sub-field coding.version inside an element (0..*, required binding to PractitionerRoleVS) — these messages can only fire in records that populated the parent | code-system version stamping | 19.6%n=96,027 | 18,985 |
| code › coding › systemPractitionerRole.code.coding.system | PractitionerRole | core-FHIR sub-field coding.system inside an element (0..*, required binding to PractitionerRoleVS) — these messages can only fire in records that populated the parent | code-system version stamping | 19.6%n=96,027 | 18,912 |
| type › coding › systemLocation.type.coding.system | Location | core-FHIR sub-field coding.system inside an element (0..*, extensible binding to v3-ServiceDeliveryLocationRoleType) — these messages can only fire in records that populated the parent | code-system version stamping | 1.0%n=915,339 | 8,754 |
| type › coding › versionLocation.type.coding.version | Location | core-FHIR sub-field coding.version inside an element (0..*, extensible binding to v3-ServiceDeliveryLocationRoleType) — these messages can only fire in records that populated the parent | code-system version stamping | 1.0%n=915,339 | 26,262 |
| identifier › type › coding › codeOrganization.identifier.type.coding.code | Organization | core-FHIR sub-field coding.code inside an element (0..1, extensible binding to identifier-type) — these messages can only fire in records that populated the parent | code-system version stamping | 0.4%n=1,862,241 | 7,654 |
| specialty › coding › codePractitionerRole.specialty.coding.code | PractitionerRole | core-FHIR sub-field coding.code inside an element (0..*, required binding to IndividualAndGroupSpecialtiesVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 21 |
| identifier › type › coding › codeOrganization.identifier.type.coding.code | Organization | core-FHIR sub-field coding.code inside an element (0..1, extensible binding to identifier-type) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 20 |
| specialty › coding › displayPractitionerRole.specialty.coding.display | PractitionerRole | core-FHIR sub-field coding.display inside an element (0..*, required binding to IndividualAndGroupSpecialtiesVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 17 |
| specialty › coding › versionPractitionerRole.specialty.coding.version | PractitionerRole | core-FHIR sub-field coding.version inside an element (0..*, required binding to IndividualAndGroupSpecialtiesVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 12 |
| specialty › textPractitionerRole.specialty.text | PractitionerRole | core-FHIR sub-field text inside an element (0..*, required binding to IndividualAndGroupSpecialtiesVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 10 |
| location › referencePractitionerRole.location.reference | PractitionerRole | core-FHIR sub-field reference inside an element (type Reference, 0..*) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 9 |
| period › startPractitionerRole.period.start | PractitionerRole | core-FHIR sub-field start inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 9 |
| location › typePractitionerRole.location.type | PractitionerRole | core-FHIR sub-field type inside an element (type Reference, 0..*) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 5 |
| practitioner › typePractitionerRole.practitioner.type | PractitionerRole | core-FHIR sub-field type inside an element (type Reference, 0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 3 |
| specialty › coding › systemPractitionerRole.specialty.coding.system | PractitionerRole | core-FHIR sub-field coding.system inside an element (0..*, required binding to IndividualAndGroupSpecialtiesVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 3 |
| identifier › type › coding › systemOrganization.identifier.type.coding.system | Organization | core-FHIR sub-field coding.system inside an element (0..1, extensible binding to identifier-type) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 2 |
| code › coding › codePractitionerRole.code.coding.code | PractitionerRole | core-FHIR sub-field coding.code inside an element (0..*, required binding to PractitionerRoleVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 1 |
| code › coding › systemPractitionerRole.code.coding.system | PractitionerRole | core-FHIR sub-field coding.system inside an element (0..*, required binding to PractitionerRoleVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 1 |
| code › coding › versionPractitionerRole.code.coding.version | PractitionerRole | core-FHIR sub-field coding.version inside an element (0..*, required binding to PractitionerRoleVS) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 1 |
| healthcareService › referencePractitionerRole.healthcareService.reference | PractitionerRole | core-FHIR sub-field reference inside an element (type Reference, 0..*) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 1 |
2 smaller rows of this class are in the accompanying dataset.
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| meta › extensionOrganization.meta.extension | Organization | core-FHIR sub-field extension inside an element (0..1) — these messages can only fire in records that populated the parent | publisher infrastructure | all 1,862,241 records | 1,862,241 |
| meta › extensionLocation.meta.extension | Location | core-FHIR sub-field extension inside an element (0..1) — these messages can only fire in records that populated the parent | publisher infrastructure | all 915,339 records | 915,339 |
| meta › extensionPractitioner.meta.extension | Practitioner | core-FHIR sub-field extension inside an element (0..1) — these messages can only fire in records that populated the parent | publisher infrastructure | all 221,172 records | 221,172 |
| address › period › endPractitioner.address.period.end | Practitioner | core-FHIR sub-field end inside an element (0..1) — these messages can only fire in records that populated the parent | structural conformance | 86.1%n=221,172 | 764,915 |
| meta › extensionPractitionerRole.meta.extension | PractitionerRole | core-FHIR sub-field extension inside an element (0..1) — these messages can only fire in records that populated the parent | publisher infrastructure | all 96,027 records | 96,027 |
| meta › extensionHealthcareService.meta.extension | HealthcareService | core-FHIR sub-field extension inside an element (0..1) — these messages can only fire in records that populated the parent | publisher infrastructure | all 38,198 records | 38,198 |
| communication › coding › codePractitioner.communication.coding.code | Practitioner | core-FHIR sub-field code inside an element (0..*) — these messages can only fire in records that populated the parent | code-system version stamping | 7.0%n=221,172 | 15,583 |
| communication › coding › systemPractitioner.communication.coding.system | Practitioner | core-FHIR sub-field system inside an element (0..*) — these messages can only fire in records that populated the parent | code-system version stamping | 6.1%n=221,172 | 17,504 |
| communication › coding › systemPractitioner.communication.coding.system | Practitioner | core-FHIR sub-field system inside an element (0..*) — these messages can only fire in records that populated the parent | uncheckable codes | 4.4%n=221,172 | 9,680 |
| communication › coding › versionPractitioner.communication.coding.version | Practitioner | core-FHIR sub-field version inside an element (0..*) — these messages can only fire in records that populated the parent | code-system version stamping | 1.8%n=221,172 | 3,912 |
| meta › extensionOrganization.meta.extension | Network | core-FHIR sub-field extension inside an element (0..1) — these messages can only fire in records that populated the parent | publisher infrastructure | all 36 records | 36 |
| address › period › startPractitioner.address.period.start | Practitioner | core-FHIR sub-field start inside an element (0..1) — these messages can only fire in records that populated the parent | structural conformance | <0.1%n=221,172 | 26 |
| meta › profilePractitionerRole.meta.profile | PractitionerRole | core-FHIR sub-field profile inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 17 |
| meta › profileOrganization.meta.profile | Organization | core-FHIR sub-field profile inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 6 |
| meta › sourcePractitionerRole.meta.source | PractitionerRole | core-FHIR sub-field source inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 4 |
| meta › extension › valuePractitionerRole.meta.extension.value[x] | PractitionerRole | core-FHIR sub-field extension.value[x] inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 3 |
| meta › lastUpdatedPractitionerRole.meta.lastUpdated | PractitionerRole | core-FHIR sub-field lastUpdated inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=96,027 | 3 |
| meta › extension › urlOrganization.meta.extension.url | Organization | core-FHIR sub-field extension.url inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 2 |
| meta › extensionInsurancePlan.meta.extension | InsurancePlan | core-FHIR sub-field extension inside an element (0..1) — these messages can only fire in records that populated the parent | publisher infrastructure | 1 of 1 records | 1 |
| meta › lastUpdatedOrganization.meta.lastUpdated | Organization | core-FHIR sub-field lastUpdated inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 1 |
| address › period › startPractitioner.address.period.start | Practitioner | core-FHIR sub-field start inside an element (0..1) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=221,172 | 1 |
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| addressOrganization.address | Organization | cardinality varies by slice | structural conformance | 0.3%n=1,862,241 | 28,126 |
| identifierOrganization.identifier | Organization | 0..* | structural conformance | <0.1%n=1,862,241 | 582 |
| address › textOrganization.address.text | Organization | type string, 0..1 | structural conformance | <0.1%n=1,862,241 | 295 |
| address › extensionOrganization.address.extension | Organization | cardinality varies by slice | structural conformance | <0.1%n=1,862,241 | 1,080 |
| address › extensionOrganization.address.extension | Network | cardinality varies by slice | structural conformance | 66.7%n=36 | 3,408 |
| identifierPractitioner.identifier | Practitioner | cardinality varies by slice | structural conformance | <0.1%n=221,172 | 22 |
| address › textOrganization.address.text | Organization | type string, 0..1 | validator limitation | <0.1%n=1,862,241 | 6 |
| qualification › extension › extensionPractitioner.qualification.extension.extension | Practitioner | cardinality varies by slice, binding varies by slice | structural conformance | <0.1%n=221,172 | 12 |
| address › textOrganization.address.text | Network | type string, 0..1 | structural conformance | 11.1%n=36 | 8 |
| address › typeOrganization.address.type | Organization | type code, 0..1, required binding to address-type | validator limitation | <0.1%n=1,862,241 | 4 |
| address › textOrganization.address.text | Network | type string, 0..1 | validator limitation | 2.8%n=36 | 1 |
| address › typeOrganization.address.type | Network | type code, 0..1, required binding to address-type | validator limitation | 2.8%n=36 | 1 |
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| category › coding › systemHealthcareService.category.coding.system | HealthcareService | core-FHIR sub-field coding.system inside an element (cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | all 38,198 records | 38,198 |
| extension › value › coding › systemLocation.extension.value[x].coding.system | Location | core-FHIR sub-field coding.system inside an element (type varies by slice, cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 0.2%n=915,339 | 9,048 |
| extension › value › coding › versionLocation.extension.value[x].coding.version | Location | core-FHIR sub-field coding.version inside an element (type varies by slice, cardinality varies by slice, binding varies by slice) — these messages can only fire in records that populated the parent | code-system version stamping | 0.2%n=915,339 | 9,048 |
| address › extension › extension › valueOrganization.address.extension.extension.value[x] | Organization | core-FHIR sub-field extension.value[x] inside an element (cardinality varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 11 |
| address › extension › extension › valueOrganization.address.extension.extension.value[x] | Network | core-FHIR sub-field extension.value[x] inside an element (cardinality varies by slice) — these messages can only fire in records that populated the parent | validator limitation | 8.3%n=36 | 3 |
| address › extension › urlOrganization.address.extension.url | Network | core-FHIR sub-field url inside an element (cardinality varies by slice) — these messages can only fire in records that populated the parent | validator limitation | 5.6%n=36 | 2 |
| address › extension › extension › urlOrganization.address.extension.extension.url | Network | core-FHIR sub-field extension.url inside an element (cardinality varies by slice) — these messages can only fire in records that populated the parent | validator limitation | 2.8%n=36 | 1 |
| address › extension › extension › urlOrganization.address.extension.extension.url | Organization | core-FHIR sub-field extension.url inside an element (cardinality varies by slice) — these messages can only fire in records that populated the parent | validator limitation | <0.1%n=1,862,241 | 1 |
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| address › useOrganization.address.use | Organization | type code, 0..1, required binding to address-use | validator limitation | <0.1%n=1,862,241 | 4 |
| idOrganization.id | Organization | 0..1 | validator limitation | <0.1%n=1,862,241 | 1 |
| telecom › useOrganization.telecom.use | Organization | type code, 0..1, required binding to contact-point-use | validator limitation | <0.1%n=1,862,241 | 1 |
| element | record type | what the profile expects here | issue category | records affected | messages |
|---|---|---|---|---|---|
| the Organization record as a wholeOrganization | Organization | a record-level rule (a profile invariant or record-wide check), not any single element | advisory practices | all 1,862,241 records | 1,862,241 |
| the Location record as a wholeLocation | Location | a record-level rule (a profile invariant or record-wide check), not any single element | advisory practices | all 915,339 records | 915,339 |
| the Practitioner record as a wholePractitioner | Practitioner | a record-level rule (a profile invariant or record-wide check), not any single element | advisory practices | all 221,172 records | 221,172 |
| the Organization record as a wholeOrganization | Organization | a record-level rule (a profile invariant or record-wide check), not any single element | structural conformance | 7.0%n=1,862,241 | 129,829 |
| the PractitionerRole record as a wholePractitionerRole | PractitionerRole | a record-level rule (a profile invariant or record-wide check), not any single element | advisory practices | all 96,027 records | 96,027 |
| the HealthcareService record as a wholeHealthcareService | HealthcareService | a record-level rule (a profile invariant or record-wide check), not any single element | advisory practices | all 38,198 records | 38,198 |
| the PractitionerRole record as a wholePractitionerRole | PractitionerRole | a record-level rule (a profile invariant or record-wide check), not any single element | structural conformance | <0.1%n=96,027 | 96 |
| the Network record as a wholeOrganization | Network | a record-level rule (a profile invariant or record-wide check), not any single element | advisory practices | all 36 records | 36 |
| the Network record as a wholeOrganization | Network | a record-level rule (a profile invariant or record-wide check), not any single element | structural conformance | all 36 records | 36 |
| the InsurancePlan record as a wholeInsurancePlan | InsurancePlan | a record-level rule (a profile invariant or record-wide check), not any single element | advisory practices | 1 of 1 records | 1 |
| the InsurancePlan record as a wholeInsurancePlan | InsurancePlan | a record-level rule (a profile invariant or record-wide check), not any single element | structural conformance | 1 of 1 records | 1 |
In plain terms: “conformance” is really three stacked rulebooks — core FHIR R4, US Core, and Plan-Net — plus the code sets they point at. This section says which rulebook each failure belongs to, so the right team owns the fix.
Records were validated against the Plan-Net 1.2.0 profiles, which build on FHIR R4. The first three rows attribute by the standard that owns the failing rule (named in the message itself: an R4, US Core, or Plan-Net invariant, or a fixed-value / cardinality constraint whose defining profile the message cites). Code-set membership failures get their own row: a message that cites a value set does not say which standard's profile imposed the binding (a Plan-Net slice can require a US Core value set), so counting them under the set's owner would misattribute the rule — the exact failing sets, per source, are in §B's binding drill-downs.
| rule owner | Medicare Advantage | Medicaid | Other (ODS) |
|---|---|---|---|
| Plan-Net 1.2.0 | 99,603 | 113,599 | 5,901 |
| US Core | 102 | 10 | 0 |
| FHIR R4 base | 1,990,245 | 679,231 | 1,376,546 |
| code-set membership (set owner ≠ rule owner) | 16,683,577 | 1,705,211 | 5,505,724 |
| not attributable to one standard | 1,112,877 | 671,832 | 1,376,431 |
Counts are validator messages, not records; one record can appear under several rows.
Separate from validator rules: for each USCDI v3 data class that has a directory counterpart, how many records actually populate it. No official USCDI-to-directory mapping exists, so every row carries its mapping quality. These figures are population-wide (this lens does not split by source); the per-line-of-business completeness picture is §C.
| record type | USCDI data class | mapping | populated |
|---|---|---|---|
| Endpoint | provenance author timestamp USCDI-required | proxy measurement | no signal, n=0 |
| Group | group identifier USCDI-required | not measurable here | no signal, n=0 |
| HealthcareService | provenance author timestamp USCDI-required | proxy measurement | all 38,198 records |
| InsurancePlan | insurance plan identifier | weak proxy | 1 of 1 records |
| InsurancePlan | provenance author timestamp USCDI-required | proxy measurement | 1 of 1 records |
| Location | demographics email USCDI-required | closest directory analog | 0 of 915,339 records |
| Location | demographics location address complete USCDI-required | closest directory analog | >99.9%n=915,339 |
| Location | demographics phone USCDI-required | closest directory analog | 15.1%n=915,339 |
| Location | demographics phone type | closest directory analog | <0.1%n=915,339 |
| Location | provenance author timestamp USCDI-required | proxy measurement | all 915,339 records |
| Organization | demographics email USCDI-required | closest directory analog | 0.7%n=1,862,241 |
| Organization | demographics phone USCDI-required | closest directory analog | 84.9%n=1,862,241 |
| Organization | demographics phone type | closest directory analog | 8.5%n=1,862,241 |
| Organization | provenance author timestamp (denominator includes the 36 network records) USCDI-required | proxy measurement | all 1,862,277 records |
| OrganizationAffiliation | provenance author timestamp USCDI-required | proxy measurement | no signal, n=0 |
| Practitioner | care team member identifier npi USCDI-required | inferred mapping | all 221,172 records |
| Practitioner | care team member name family USCDI-required | inferred mapping | all 221,172 records |
| Practitioner | care team member name given USCDI-required | inferred mapping | all 221,172 records |
| Practitioner | care team member telecom phone USCDI-required | inferred mapping | 65.0%n=221,172 |
| Practitioner | care team member telecom phone format | closest directory analog | 65.0%n=221,172 |
| Practitioner | demographics communication presence USCDI-required | closest directory analog | 13.2%n=221,172 |
| Practitioner | demographics communication rfc5646 | closest directory analog | 12.9%n=221,172 |
| Practitioner | demographics email USCDI-required | closest directory analog | 0 of 221,172 records |
| Practitioner | demographics phone USCDI-required | closest directory analog | 65.0%n=221,172 |
| Practitioner | demographics phone type | closest directory analog | 18.9%n=221,172 |
| Practitioner | provenance author timestamp USCDI-required | proxy measurement | all 221,172 records |
| PractitionerRole | care team member location USCDI-required | inferred mapping | >99.9%n=96,027 |
| PractitionerRole | care team member role USCDI-required | inferred mapping | 19.6%n=96,027 |
| PractitionerRole | provenance author timestamp USCDI-required | proxy measurement | all 96,027 records |
| Provenance | provenance author organization USCDI-required | not measurable here | no signal, n=0 |
Mapping quality: closest directory analog = the directory field that carries the same fact (e.g. a practitioner's phone for the phone data class); proxy = a stand-in signal (e.g. a last-updated timestamp standing in for provenance); inferred = no official mapping exists, ours is a reasoned one; weak proxy = the stand-in is loose — read with care; not measurable here = the data class has no directory counterpart. Denominators count the captured tables directly (the organization figure includes the 36 network records).
In plain terms: CMS requires Medicare Advantage organizations to publish their provider directory in a machine-readable format (42 CFR 422.111(m)), and the CMS implementation guide names Plan-Net 1.2.0 — the same standard this report measures — with a specific list of required elements. This section checks each of them. As captured, this directory could not power a Medicare Plan Finder provider search for the Medicare Advantage line: the one published InsurancePlan record is a placeholder, not a real plan — its only identifier is the bare value "1", its required type is present solely as a data-absent-reason (the only occurrence of that pattern anywhere in this capture), it names no network, period, or coverage area, and it has not been modified since 2024-10-18 while the rest of the directory refreshes regularly. So this section cannot assess whether a real plan record would meet the guide's requirements — it can only report that no real plan data has been published to assess. 0 of 45,616 Medicare Advantage provider roles carry the NPI the guide requires at the role level.
| record type | guide element | populated (Medicare Advantage records) | |
|---|---|---|---|
| Isolated | InsurancePlan | identifier required by the guide | 1 of 1 records |
| Widespread | InsurancePlan | name required by the guide | 0 of 1 records |
| Widespread | InsurancePlan | network linkage required by the guide | 0 of 1 records |
| Widespread | InsurancePlan | plan period start required by the guide | 0 of 1 records |
| Widespread | InsurancePlan | CMS-format plan id (H/R/S/E contract shape) | 0 of 1 records |
| Isolated | Location | city required by the guide | >99.9%n=605,951 |
| Isolated | Location | complete address required by the guide | >99.9%n=605,951 |
| Isolated | Location | street line required by the guide | >99.9%n=605,951 |
| Isolated | Location | postal code required by the guide | >99.9%n=605,951 |
| Isolated | Location | state required by the guide | >99.9%n=605,951 |
| Widespread | Location | phone required by the guide | 0 of 605,951 records |
| Isolated | Organization | address required by the guide | 95.3%n=218,574 |
| Isolated | Organization | last-updated timestamp required by the guide | all 218,574 records |
| Isolated | Organization | name required by the guide | all 218,574 records |
| Widespread | Organization | NPI required by the guide | 76.8%n=218,574 |
| Isolated | Organization | organization type required by the guide | all 218,574 records |
| Widespread | Organization | type coded in NUCC system | 0 of 218,574 records |
| Widespread | OrganizationAffiliation | practice location linkage required by the guide | not published at all — the guide requires this record type |
| Widespread | OrganizationAffiliation | network linkage required by the guide | not published at all — the guide requires this record type |
| Widespread | OrganizationAffiliation | managing organization required by the guide | not published at all — the guide requires this record type |
| Widespread | OrganizationAffiliation | participating organization required by the guide | not published at all — the guide requires this record type |
| Widespread | OrganizationAffiliation | specialty required by the guide | not published at all — the guide requires this record type |
| Widespread | Practitioner | languages spoken required by the guide | 6.6%n=205,454 |
| Isolated | Practitioner | family name required by the guide | all 205,454 records |
| Isolated | Practitioner | given name required by the guide | all 205,454 records |
| Isolated | Practitioner | gender | all 205,454 records |
| Isolated | Practitioner | NPI at practitioner level | all 205,454 records |
| Isolated | PractitionerRole | last-updated timestamp required by the guide | all 45,616 records |
| Isolated | PractitionerRole | practice location linkage required by the guide | 99.8%n=45,616 |
| Widespread | PractitionerRole | network linkage required by the guide | 0 of 45,616 records |
| Widespread | PractitionerRole | NPI on the role required by the guide | 0 of 45,616 records |
| Isolated | PractitionerRole | specialty required by the guide | all 45,616 records |
| Isolated | PractitionerRole | phone on the role required by the guide | 99.8%n=45,616 |
| Widespread | PractitionerRole | accepting-new-patients flag | 64.3%n=45,616 |
| Isolated | PractitionerRole | updated within 30 days | all 45,616 records |
| Isolated | PractitionerRole | specialty in NUCC taxonomy format | all 45,616 records |
| Isolated | PractitionerRole | specialty coded in a standard system | all 45,616 records |
Only Medicare Advantage records are counted — the Plan Finder obligation attaches to the Medicare line, and the Other (ODS) feed and Medicaid records are excluded from every figure above. Isolated = 95% or more of Medicare Advantage records populate the element; Widespread = anything less, including a required record type that is not published at all. These checks were measured 2026-08-31 over the same captured population as the rest of this report (the analysis date in the identity strip refers to the validator run; this lens ran separately). Plan-Finder eligibility basis: the plan publicly sells Medicare Advantage products and the captured directory carries MA-designated network records; the automated MA classifier alone does not trip on this capture's naming, so eligibility is recorded as a documented public-record determination. Rule-set provenance: CMS Technical Implementation Guide for the MA/MAPD/PDP Provider/Facility Directory Digital Format (2026-02-18), under 42 CFR 422.111(m) (CMS-4208-F2), naming Da Vinci PDex Plan-Net 1.2.0 as the required format. cms.gov 403s automated fetches; read via a DocumentCloud mirror of the published PDF. Element list transcribed from that mirror, not cross-checked against a second independent source.
In plain terms: the same quality questions, asked separately of each line of business — because a pooled number would hide that the two lines often differ sharply.
| record type | source | records | ≥1 material finding | ≥1 error-severity | structural | required code sets | preferred code sets |
|---|---|---|---|---|---|---|---|
| HealthcareService | Medicaid | 29,079 | 0 of 29,079 records | 0 of 29,079 records | 0 of 29,079 records | 0 of 29,079 records | 0 of 29,079 records |
| HealthcareService | Medicare Advantage | 9,119 | 0 of 9,119 records | 0 of 9,119 records | 0 of 9,119 records | 0 of 9,119 records | 0 of 9,119 records |
| InsurancePlan | Medicare Advantage | 1 | 1 of 1 records | 1 of 1 records | 1 of 1 records | 0 of 1 records | 1 of 1 records |
| Location | Medicare Advantage | 605,951 | 0.2%n=605,951 | 0 of 605,951 records | 0.2%n=605,951 | 0 of 605,951 records | 0 of 605,951 records |
| Location | Medicaid | 309,388 | 1.0%n=309,388 | 1.0%n=309,388 | 0 of 309,388 records | 1.0%n=309,388 | 0 of 309,388 records |
| Network | Medicare Advantage | 36 | all 36 records | all 36 records | all 36 records | 0 of 36 records | 0 of 36 records |
| Organization | Other (ODS) | 1,376,431 | all 1,376,431 records | 0.4%n=1,376,431 | 0.4%n=1,376,431 | 0 of 1,376,431 records | all 1,376,431 records |
| Organization | Medicaid | 267,236 | 95.2%n=267,236 | 42.5%n=267,236 | 42.5%n=267,236 | 0 of 267,236 records | 90.6%n=267,236 |
| Organization | Medicare Advantage | 218,574 | 77.9%n=218,574 | 9.4%n=218,574 | 9.5%n=218,574 | 0 of 218,574 records | 76.8%n=218,574 |
| Practitioner | Medicare Advantage | 205,454 | all 205,454 records | 45.9%n=205,454 | 98.7%n=205,454 | 21.3%n=205,454 | all 205,454 records |
| Practitioner | Medicaid | 15,718 | all 15,718 records | 0 of 15,718 records | 46.2%n=15,718 | 0 of 15,718 records | all 15,718 records |
| PractitionerRole | Medicaid | 50,411 | 97.9%n=50,411 | <0.1%n=50,411 | <0.1%n=50,411 | <0.1%n=50,411 | 97.9%n=50,411 |
| PractitionerRole | Medicare Advantage | 45,616 | all 45,616 records | 31.0%n=45,616 | 28.7%n=45,616 | 30.9%n=45,616 | all 45,616 records |
FHIR's sanctioned mechanism for declaring absent data (data-absent-reason) appears on 1 record in the entire capture — the publisher does not use it. Placeholders here take other shapes: fixed values contradicted by the record's own status, sentinel dates, literal “Unknown” names, and a version number stamped mechanically on every code system (§B). The version-stamping defect alone accounts for 12,382,415 validator messages (40% of all output).
| signal | measured, by source |
|---|---|
| Inactive practitioners publishedactive = false where the profile fixes active = true | Medicare Advantage: 24.6%n=205,454 Medicaid: 0 of 15,718 records |
| Practitioner gender recorded as “unknown”a legal FHIR value; at scale it is a fill-in | Medicare Advantage: 1.9%n=205,454 Medicaid: 1.4%n=15,718 |
| Placeholder “never expires” datesrecords carrying 2999-12-31 or 9999-12-31 anywhere | Medicare Advantage: 92.8%n=205,454 Medicaid: 0 of 15,718 records |
| … in the address validity period (end date)Practitioner.address.period.end = 2999/9999-12-31: the address is declared valid forever | Medicare Advantage: 92.6%n=205,454 Medicaid: 0 of 15,718 records |
| … in qualification / licence validity periodsa 2999/9999-12-31 date inside Practitioner.qualification: the licence or certification is declared to never expire | Medicare Advantage: 11.4%n=205,454 Medicaid: 0 of 15,718 records |
| … placeholder start dates (1753-01-01)Practitioner.address.period.start set to a database-epoch placeholder | Medicare Advantage: <0.1%n=205,454 Medicaid: <0.1%n=15,718 |
| Services named “Unknown”a required name filled with a literal placeholder | Medicare Advantage: 0 of 9,119 records Medicaid: 34.6%n=29,079 |
| Locations with no geocoordinatesstructurally valid addresses that cannot be mapped | Medicare Advantage: 79.1%n=605,951 Medicaid: 98.4%n=309,388 |
| Networks with placeholder namesINVALID, NOT APPLICABLE, UNKNOWN, UNKNOWN-ERROR | 4 of 36 networks |
| Junk postal codes / location names00000-style postal codes; names like UNKNOWN / N/A | 23 junk postal codes, 5 junk names |
| source | locations | inside state boundaries | no state recorded |
|---|---|---|---|
| Medicare Advantage | 605,951 | 60.4%n=605,951 | 435 |
| Medicaid | 309,388 | 72.5%n=309,388 | 40 |
an out-of-state location no role references is a different problem from one a member can be routed to
| source | referenced locations | inside state boundaries |
|---|---|---|
| Medicare Advantage | 21,854 | 93.4%n=21,854 |
| Medicaid | 8,825 | 98.2%n=8,825 |
| source | organizations | inside state boundaries | no state recorded |
|---|---|---|---|
| Other (ODS) | 1,376,431 | 2.2%n=1,376,431 | 19,491 |
| Medicaid | 267,236 | 8.1%n=267,236 | 115,596 |
| Medicare Advantage | 218,610 | 25.1%n=218,610 | 10,475 |
Organization counts in this section read the captured tables directly and include the 36 network records; §G's per-type rates report Network as its own record type, so its Organization denominators are smaller by exactly that count.
| state | locations |
|---|---|
| CA | 60,745 |
| TX | 32,967 |
| FL | 16,538 |
| NV | 15,946 |
| IL | 14,192 |
| ME | 13,439 |
| UT | 12,143 |
| CO | 11,794 |
| MN | 10,686 |
| PA | 10,338 |
Out-of-state entries are not automatically wrong — border towns, national providers and telehealth exist — but their share, and the 12-point spread between the two lines of business, is directory signal a consumer should know.
In plain terms: directory records point at each other — a role points at its practitioner, its clinic, its locations. Here we follow every such pointer and report the ones that lead nowhere, the ones that lead into the other line of business, and the records nothing points at.
“crosses source” counts references that resolve, but to a record carrying a different source marker — intact for a pooled directory, broken from within one line of business. Unparseable references (non-Type/id forms) are counted separately, not as dangling.
| reference | source of the record | refs | dangling | crosses source | unparseable |
|---|---|---|---|---|---|
| HealthcareService → Location | Medicare Advantage | 173,167 | <0.1%n=173,167 | 0 | 0 |
| HealthcareService → Location | Medicaid | 17,391 | 64.8%n=17,391 | 0 | 0 |
| HealthcareService → Organization | Medicare Advantage | 9,119 | 2.8%n=9,119 | 0 | 0 |
| HealthcareService → Organization | Medicaid | 29,079 | all 29,079 records | 0 | 0 |
| InsurancePlan → Organization(ownedBy) | Medicare Advantage | 1 | 0 of 1 records | 0 | 0 |
| Location → Organization(managing) | Medicare Advantage | 605,951 | 0.2%n=605,951 | 0 | 0 |
| Location → Organization(managing) | Medicaid | 26,198 | <0.1%n=26,198 | 0 | 0 |
| PractitionerRole → Location | Medicare Advantage | 139,038 | 0 of 139,038 records | 0 | 0 |
| PractitionerRole → Location | Medicaid | 50,516 | 82.0%n=50,516 | 0 | 0 |
| PractitionerRole → Organization | Medicare Advantage | 45,616 | 0 of 45,616 records | 0 | 0 |
| PractitionerRole → Organization | Medicaid | 50,411 | 0 of 50,411 records | 0 | 0 |
| PractitionerRole → Practitioner | Medicare Advantage | 45,616 | 0 of 45,616 records | 0 | 0 |
| PractitionerRole → Practitioner | Medicaid | 50,411 | 0.7%n=50,411 | 35,603 | 0 |
| source | practitioners | with no role at all |
|---|---|---|
| Medicare Advantage | 205,454 | 85.7%n=205,454 |
| Medicaid | 15,718 | 51.5%n=15,718 |
| source | locations | referenced by no role or service |
|---|---|---|
| Medicare Advantage | 605,951 | 95.5%n=605,951 |
| Medicaid | 309,388 | 96.0%n=309,388 |
Network references are absent everywhere: no role, no affiliation and no plan references any of the 36 network records (§K).
In plain terms: before judging quality record by record, the shape of the population itself tells a story — what is published in abundance, what is nearly absent, and what exists but connects to nothing.
Published: one InsurancePlan record, and its contents mark it as a stub rather than real plan data — its identifier is the bare value "1", its required type element is present only as a data-absent-reason (the sole occurrence of that pattern in this entire capture), it names no network, period, or coverage area, it is owned by and administered by the payer's own organization, and it has not been touched since 2024-10-18 while the rest of the directory carries 2026-08 timestamps. Whether this is a deliberate stub or an abandoned load cannot be determined from the data; either way, no real plan-level data has been published. That said, the chain-break finding below does not rest on this one record: with 0 network references on 96,027 roles and 0 affiliation records, the plan→network→provider chain has no first link and no last link regardless of whether the plan record itself is real — the question “which providers are in this plan?” cannot be answered from the published directory, for either line of business, and a real InsurancePlan record would not by itself change that.
Of the 36 network records, 32 carry the plan's internal product and geography names (withheld here to preserve anonymity); 4 carry placeholder names (INVALID, NOT APPLICABLE, UNKNOWN, UNKNOWN-ERROR). The placeholder rows indicate an unfiltered export of an internal enumeration.
1,376,431 of 1,862,277 organizations (a count that includes the 36 network records) carry a third source marker — the one labeled Other (ODS) throughout this report. What the data says about it: the records span the whole country, are NPI-complete, and virtually none is referenced by any provider role — consistent with an externally sourced organization roster loaded alongside the directory rather than directory content. Provider roles reference only 14,138 distinct organizations — Medicare Advantage: 8,092. Medicaid: 6,046. Under 1% of published organizations participate in the provider graph; conformance rates on the Organization type are therefore dominated by records that never surface in a provider search.
The 915,339 location records collapse to 188,844 distinct street addresses (~4.8 records per address) — measured, the location table is largely the same addresses republished per practitioner context.
Every FHIR record captured from the plan's published Plan-Net directory (3,133,014 records, capture window 2026-08-25) was passed through the official HL7 validator (validator_cli 6.10.1) against Da Vinci PDex Plan-Net 1.2.0. No sampling. Three material facts about the setup:
The plan's directory does not allow deep pagination (bulk listing stops at a fixed offset), so the capture enumerated records through last-updated time windows, bisecting each window until every window returned fewer records than the server's page limit — i.e. until the published surface was exhausted for every record type. Referential findings in §J are relative to this capture: a target counted missing is one the published directory does not serve, to the completeness of this method. The capture completed 2026-08-25 and the validated population equals the captured population exactly (asserted at build time).
A finding is one defect pattern — one (record type, element, message, severity) combination — counted once per record it touches, with a repeats-per-record multiplier for array duplication. The 31,320,889 raw validator messages behind the findings are retained verbatim and every number here reproduces from them.
Each published record embeds a source marker (urn:source_name). Attribution covered 3,133,014 of 3,133,014 records. The third marker on organization records is a source system, not a line of business, and is never folded into either plan line. No cross-type pooled rate is reported anywhere in this document; every rate is per (record type, source).
Validator messages are grouped into data-quality categories (structural, required code sets, preferred code sets) and environment / advisory categories (uncheckable codes, version stamping, validator limitations, publisher infrastructure, missing narrative). Only the data-quality categories enter grades and headline rates; the others are fully reported in §B. Version stamping is data-borne but classified separately from structural conformance so that one mechanical defect cannot set the headline structural rate for the largest record type (12,382,415 messages).
Validator element paths are normalized and joined to the Plan-Net element definitions, collapsing profile slice discriminators (the validator emits positional paths). Where a collapsed path spans several profile slices, the row says so, and code-set failures are attributed by the failing code set itself, which is slice-exact. Sub-elements of profiled fields that core FHIR (not the profile) defines are classed “base-FHIR element”; whole-record messages are classed “whole record”. Nothing is dropped: §D accounts for 100% of messages.
Rates render in five 20-point bands with the record count always visible; no rate renders as 100.0% or 0.0%. Cells with fewer than 30 records show the exact count instead of a rate (this is a census; small cells have no sampling error, but a percentage over 1 record misleads). A cell with no records shows “no signal”. Grades (Isolated/Partial/Widespread) follow the fixed rule in §A and are never shown without the underlying rate.