InsurancePlan — Health insurance product
The insurer-side product catalog: the "Premium Health 2026" contract with its benefits, network, pricing. Not to be confused with Coverage which is the policy a patient subscribes to.
Purpose
InsurancePlan describes a product: "Premium Health 2026", its coverages (medical, dental, vision), its network (partner Organizations), its tiers (gold, silver, bronze), its contacts. Where Coverage is the policy subscribed by a given patient, InsurancePlan is the product catalog.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | Product identifiers. |
status | code | 0..1 | draft, active, retired, unknown. |
type | CodeableConcept[] | 0..* | Insurance type (medical, dental, vision, drug, hearing). |
name | string | 0..1 | Commercial name. |
alias | string[] | 0..* | Synonyms. |
period | Period | 0..1 | Validity period. |
ownedBy | Reference(Organization) | 0..1 | Owner. |
administeredBy | Reference(Organization) | 0..1 | Administrator. |
coverageArea | Reference(Location)[] | 0..* | Geographic coverage area. |
contact | BackboneElement[] | 0..* | Contacts. |
endpoint | Reference(Endpoint)[] | 0..* | Technical endpoints. |
network | Reference(Organization)[] | 0..* | Provider network. |
coverage | BackboneElement[] | 0..* | Coverages: type, network, benefit[]. |
plan | BackboneElement[] | 0..* | Pricing tiers: identifier, type, coverageArea, network, generalCost, specificCost. |
JSON example
Premium Health 2026 plan with in-network no-upfront hospitalization:
{
"resourceType": "InsurancePlan",
"id": "ip-premium-2026",
"identifier": [{
"system": "urn:oid:1.2.34",
"value": "PLAN-PREMIUM-2026"
}],
"status": "active",
"type": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/insurance-plan-type",
"code": "medical"
}]
}],
"name": "Premium Health 2026",
"alias": ["Premium Santé 2026"],
"period": {
"start": "2026-01-01",
"end": "2026-12-31"
},
"ownedBy": { "reference": "Organization/insurer-x" },
"administeredBy": { "reference": "Organization/insurer-x-admin" },
"coverageArea": [{ "reference": "Location/usa" }],
"contact": [{
"purpose": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/contactentity-type",
"code": "PATINF"
}]
},
"telecom": [{
"system": "phone",
"value": "1-800-555-PLAN"
}, {
"system": "url",
"value": "https://insurer-x.example.org/premium-2026"
}]
}],
"coverage": [{
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "MEDC"
}]
},
"network": [{ "reference": "Organization/network-premium" }],
"benefit": [{
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/insurance-plan-type",
"code": "hospitalization"
}]
},
"requirement": "No upfront payment at in-network hospitals",
"limit": [{
"value": { "value": 100, "unit": "%" },
"code": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/benefit-type",
"code": "annual"
}]
}
}]
}]
}]
} Common pitfalls
- Confusing with Coverage — InsurancePlan = product catalog, Coverage = patient-subscribed policy.
- No
period— a plan without effective/expiration dates is timeless, which is never the case. - Missing
coverageArea— a plan sold in France does not cover Germany; specify viacoverageArea. - Vague benefits — without precise
limit[], the patient doesn't know the reimbursement amount. - No
network— a plan without a network is unsellable: the patient doesn't know where to go.
Related resources
- Coverage — subscribed policy.
- Organization — insurer, network.
- Location — geographic areas.
- Practitioner/PractitionerRole — network providers.