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

HL7 RMC Data Type: Room Coverage

The RMC (Room Coverage) data type was introduced in HL7 v2.3 to express what an insurance policy pays toward an inpatient room. It is a three-component composite carrying the room type (private, semi-private, ward), the kind of amount being expressed (a dollar limit or a percentage), and the numeric coverage amount. RMC appears in the IN2 segment's room-coverage fields and is one of the few data types that exists almost exclusively in the insurance domain.

Purpose

Inpatient billing distinguishes sharply between a private room and a semi-private room: a policy may cover semi-private at 100% but only contribute a fixed daily amount toward a private upgrade. RMC was designed to carry that distinction in a single composite — the room type, whether the next number is a dollar cap or a percentage, and the number itself — so eligibility responses and benefit detail can be exchanged without prose.

Component table

Source: HAPI HL7v2 v2.8.1 javadocs (RMC). Length is shown as because v2.7+ deprecated fixed maximum lengths in favour of conformance-profile constraints.

CompNameSub-typeLengthRequiredDescription
RMC.1Room Typeis (HL70145)ORoom category: PRI private, SPR semi-private, WRD ward, ICU, and similar facility-level codes.
RMC.2Amount Typeis (HL70146)OIndicator that classifies RMC.3: LIMIT a dollar/unit cap; PCT (or PERCENTAGE) a percentage of allowed charges.
RMC.3Coverage AmountnmOThe numeric amount; interpretation governed by RMC.2 (currency-aligned magnitude vs. a 0–100 percentage).

Most-used components

  • RMC.1 Room Type — without it, the receiver cannot tell which room tier the rule applies to.
  • RMC.2 Amount Type — flips the meaning of RMC.3 from currency to percentage; missing or wrong here is the most common defect.
  • RMC.3 Coverage Amount — the number the receiver actually adjudicates against.

Where it's used

  • IN2 Insurance Additional Information — RMC populates the room-coverage benefit fields when an inpatient policy enumerates per-room-type rules.
  • Eligibility / benefits responses ferried through HL7 v2 (where 270/271 X12 traffic is not available end-to-end).
  • Vendor Z-segments that pre-date a richer benefit model.

Version differences

  • HL7 v2.3 — RMC introduced with the three-component layout above.
  • HL7 v2.4 — HL70145 (Room Type) and HL70146 (Amount Type) value sets refined.
  • HL7 v2.5 / v2.6 — structure unchanged; usage thinned as 5010 X12 270/271 absorbed most benefit-detail traffic.
  • HL7 v2.7 / v2.8 / v2.8.1 — structure stable; fixed maximum lengths deprecated. HAPI v2.8.1 javadoc shows the three-component layout above.

Common mistakes

  • Omitting RMC.2 — a bare 100 is ambiguous: 100 dollars per day or 100 percent?
  • Sending RMC.2 = PCT with RMC.3 = 1.0 when the intent was 100% — RMC.3 is a percentage, not a ratio.
  • Free-text RMC.1 (Private Room) instead of the HL70145 code (PRI) — receivers will not match.
  • Currency drift: RMC.3 has no embedded currency code. The currency is implied by the policy's facility context, which is fragile across cross-border claims.
  • Treating RMC as a single string PRI/LIMIT/100 (slash-separated) — HL7 v2 composites are ^-separated.

Examples

Minimal — semi-private fully covered (percentage):

SPR^PCT^100

Private room with a $250/day dollar cap:

PRI^LIMIT^250

Populated — private room 100% coverage (the fact form):

PRI^LIMIT^100

In context — IN2 carrying a per-room-type benefit pair (semi-private 100%, private capped at $250):

MSH|^~&|REG|MERCY|BILLING|MERCY|20260624081500||ADT^A08^ADT_A01|MSG0301|P|2.8.1
PID|1||MR884412^^^MERCY^MR||TESTPATIENT^ALEX^Q||19720508|F
IN1|1|MEDA^Medicare A^HL70072|MEDA|Medicare|||||||||||TESTPATIENT^ALEX^Q|18^Self^HL70063
IN2|||||||||||||||||||||||||||||||||||||||||||||||||SPR^PCT^100~PRI^LIMIT^250

Common pitfall — missing amount type:

PRI^^100

Without RMC.2 the receiver cannot tell whether the policy pays 100% of a private room or contributes 100 currency units per day. Eligibility logic typically falls back to "unknown" and quotes the patient nothing.

FHIR mapping

The v2-to-FHIR IG does not publish a dedicated RMC ConceptMap. Conceptually, RMC maps into a Coverage.benefit element with a category extension:

RMC componentFHIR targetNotes
RMC.1 Room TypeCoverage.benefit.type (extension category)Room tier coded against a value set that mirrors HL70145.
RMC.2 Amount Typedrives the value[x] choiceLIMITvalueMoney; PCTvalueQuantity with UCUM %.
RMC.3 Coverage AmountCoverage.benefit.value[x]Money or percent quantity depending on RMC.2.

For richer benefit responses, the FHIR ExplanationOfBenefit.benefitBalance element is the better landing place, and most implementations migrate room-tier rules there during v2-to-FHIR transformation.

Engine considerations

  • Value-set translation: HL70145 codes (PRI, SPR, WRD, ICU) do not exist in FHIR's standard benefit-category value set. Maintain an explicit map; do not coerce by matching display strings.
  • RMC.2 governs RMC.3's type. An engine that hard-codes RMC.3 as Money will silently corrupt percentage benefits.
  • Repetition: IN2 room-coverage fields commonly carry ~-separated repetitions to express per-tier rules. Treat each repetition as an independent Coverage.benefit entry.
  • Currency context: RMC.3 has no currency component. Resolve currency from the payer or the facility before emitting valueMoney.currency in FHIR.

How Vorro parses and produces RMC

Vorro parses RMC into a (roomType, amountType, amount) tuple typed against HL70145 and HL70146. Inbound currency context is resolved from the IN1/IN2 payer record; inbound percentage values are normalized to 0–100 (a stray 1.0 is flagged as suspect and held for review). Unknown room-type codes are preserved verbatim with a translation-pending tag rather than dropped.

On outbound, Vorro always emits RMC.2 when RMC.3 is populated, and emits PCT percentages on the 0–100 scale. When the source is a FHIR Coverage.benefit with valueMoney, Vorro renders RMC.2 = LIMIT and RMC.3 = the money amount, with currency resolved from the policy and carried in upstream IN1/IN2 metadata.

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 RMC Data Type: Room Coverage | Vorro Academy | Vorro