NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Code Table6 min read

HL7 Table HL70002: Marital Status

HL70002 is the HL7-defined code table for marital status, present since HL7 v2.1 and expanded several times since. It sits behind PID-16 Marital Status on patient demographic messages and behind NK1-14 Next of Kin Marital Status on related-party segments. v2.8.1 publishes sixteen single-letter codes covering legal statuses (Married, Divorced, Annulled), social statuses (Living together, Domestic partner), and administrative placeholders (Unknown, Unreported, Other).

Purpose

HL70002 records the legal and social marital state of a person for registration, demographic reporting, and downstream billing. It is intentionally finer-grained than common civil registries — it distinguishes Separated (A) from Legally Separated (E), Common law (C) from Married (M), and Domestic partner (P) from Registered domestic partner (R) — because U.S. healthcare workflows need to compute next-of-kin authority, insurance dependent eligibility, and beneficiary defaults from this single field.

The table is HL7-defined and aligned with HL7 v3 vs.MaritalStatus, which is what allows the FHIR Patient.maritalStatus element to bind directly to the v3 ValueSet and consume v2 values without remapping.

Where it's used

  • PID-16 Marital Status — primary home of HL70002, carried on ADT, ORM, ORU, and SIU messages.
  • NK1-14 Marital Status — same code set applied to next-of-kin relationships on the NK1 segment.

Code list

CodeDisplayComment/Description
ASeparatedSpouses living apart but not legally separated; informal separation.
BUnmarriedPerson has never married and is not partnered; broader than Single.
CCommon lawCommon-law marriage recognized under jurisdiction-specific rules.
DDivorcedMarriage legally dissolved.
ELegally SeparatedCourt-ordered separation; not the same as Divorced.
GLiving togetherCohabiting; no legal marriage or domestic partnership.
IInterlocutoryPending divorce; interlocutory decree issued, final decree not yet entered.
MMarriedCurrently legally married.
NAnnulledMarriage declared null and void retroactively.
OOtherMarital status that does not fit any other code.
PDomestic partnerDomestic partnership, not formally registered with the state.
RRegistered domestic partnerDomestic partnership recorded in a jurisdictional registry.
SSingleNever married, not currently partnered.
TUnreportedPerson declined to report marital status.
UUnknownMarital status is not known.
WWidowedSpouse is deceased; surviving spouse has not remarried.

Code system OID

  • OID: 2.16.840.1.113883.18.3
  • Canonical URI: http://terminology.hl7.org/CodeSystem/v2-0002

HL7-defined vs user-defined

HL70002 is HL7-defined. The code set is normative — receivers are required to recognize all sixteen letters without local extension. Sites occasionally want to add a Z for "civil union (non-U.S.)" or local rollups; the conformant approach is to extend a separate value set bound to the same CWE field, never to extend HL70002 itself.

Version differences

  • v2.1 – v2.2 — Small core: M, S, D, W, A, U.
  • v2.3C (Common law) and O (Other) added.
  • v2.3.1B (Unmarried), G (Living together), N (Annulled), P (Domestic partner), R (Registered domestic partner) added to reflect changing civil-status practice.
  • v2.4E (Legally Separated), I (Interlocutory), T (Unreported) added; finer-grained legal distinctions for billing systems.
  • v2.5 – v2.8.1 — Set frozen at sixteen codes; no further additions.
  • v2.7+ — PID-16 data type widened from IS to CWE, allowing OID metadata in CWE.14.

Common mistakes

  • Sending the display word — Married — in PID-16 instead of M. The field carries the single-letter code, not the label.
  • Defaulting unknown marital status to S (Single) because the EHR demands a non-null value. U (Unknown) and T (Unreported) exist for exactly this case.
  • Confusing A (Separated) with E (Legally Separated). A is informal; E requires a court order. Downstream billing logic depends on the distinction.
  • Treating P and R as synonyms. R (Registered domestic partner) implies a state-issued registration that affects insurance eligibility; P does not.
  • Extending HL70002 locally with X, Z, or vendor codes. HL70002 is HL7-defined; non-conformant codes break FHIR mapping and partner integrations.

Examples

A PID with marital status M (Married):

PID|1||10456^^^MRN^MR||DOE^JANE^A||19850412|F|||123 MAIN ST^^BOSTON^MA^02118||(617)555-1212|||M||10456|123-45-6789

Widowed patient:

PID|1||10456^^^MRN^MR||DOE^JANE^A||19350412|F|||123 MAIN ST^^BOSTON^MA^02118||(617)555-1212|||W||10456

Registered domestic partner with CWE-typed PID-16 (v2.7+ profile):

PID|1||10456^^^MRN^MR||SMITH^ALEX||19800101|F|||...|R^Registered domestic partner^HL70002

Same M value translated to a FHIR Patient.maritalStatus snippet:

{
  "resourceType": "Patient",
  "id": "10456",
  "maritalStatus": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/v3-MaritalStatus",
      "code": "M",
      "display": "Married"
    }]
  }
}

Mapping failure example — unknown vendor code:

PID|1||10456^^^MRN^MR||DOE^JANE||19850412|F|||...|Z

Z is not in HL70002. A conformant engine should preserve Z in the audit log, emit Patient.maritalStatus with a text fallback or a data-absent-reason extension, and route the message to terminology curation rather than silently dropping the value.

FHIR mapping

The HL7 v2-to-FHIR Implementation Guide publishes ConceptMap-table-hl70002-to-v3-maritalstatus. Most HL70002 codes are equivalent to v3 vs.MaritalStatus codes of the same letter:

HL7 v2 (HL70002)FHIR (v3-MaritalStatus)
AA (Annulled in v3, but mapped via IG) — see IG for resolution
DD (Divorced)
II (Interlocutory)
LL (Legally Separated) — note FHIR uses L, v2 uses E
MM (Married)
PP (Polygamous) — IG remaps v2 P (Domestic partner) explicitly
SS (Never Married)
TT (Domestic partner) — IG remaps
UUNK (Unknown)
WW (Widowed)

Because v3 vs.MaritalStatus reuses some letters with different meanings, the IG ConceptMap is mandatory — do not assume letter-equality. Patient.maritalStatus is a CodeableConcept bound to http://terminology.hl7.org/ValueSet/v3-MaritalStatus.

Engine considerations

  • Case sensitivity — HL70002 codes are uppercase single letters; lowercase variants must be normalized on ingest.
  • Letter collisions with v3 — the v2 → v3 mapping is not always a no-op; engines must consult the IG ConceptMap rather than passing the v2 letter through unchanged.
  • CWE upgrade path — In v2.7+ profiles PID-16 may be CWE rather than IS, allowing CWE.14 to carry the HL70002 OID for OID-bound profiles.
  • Round-trip preservation — Store the original HL70002 code as a secondary Coding so v2 outbound channels can restore distinctions (P vs R, A vs E) that v3 collapses.

How Vorro handles HL70002

Vorro validates PID-16 against the sixteen HL70002 codes on ingest. Conformant codes are routed unchanged; non-conformant values land in the terminology curation queue, where Vorro either creates a remap rule (e.g. XO for a specific partner) or surfaces the original code as Patient.maritalStatus.text while flagging the message for review. The IG ConceptMap is consulted on every FHIR translation; we never assume letter-equality between HL70002 and v3-MaritalStatus.

On outbound, Vorro emits HL70002 as IS for v2.5 and earlier profiles and as CWE with CWE.14 populated for v2.7+ destinations. The HL7 v3 code is preserved as a secondary Coding to support lossless round-trip.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides
HL7 Table HL70002: Marital Status | Vorro Academy | Vorro