9 Member Months
An insured person can have no claims in a given month. If we build our population by selecting people from a claims table, we exclude enrolled people with no claims and can overstate utilization and cost per person.
In this chapter, we’ll turn eligibility spans into member months, the denominator used throughout claims analytics. We’ll work through partial months, overlapping spans, and benefit coverage, then show how the result connects to cost and utilization.
9.1 Measure exposure, not activity
A member month represents a person’s coverage during a calendar month under a specified rule. Twelve months of coverage usually contribute twelve member months. A person enrolled for three months contributes three under a whole-month counting rule, even if they have no claims in those months.
This is a measure of the population we can observe through a coverage arrangement. It is different from a count of patients treated, unique people enrolled during a year, or people assigned to a provider. Those quantities can all be useful, but they are not interchangeable denominators.
The underlying input is usually a set of enrollment spans. As discussed in eligibility and enrollment, the source may report a snapshot, a history, or a sequence of changes. Resolve that representation before expanding dates into months. Otherwise, a corrected span and the span it replaced can both contribute to the denominator.
9.2 Choose a partial-month rule
Consider three fictional people with medical coverage during the first quarter of 2025. In this example, coverage start and end dates are inclusive.
| Person | Coverage starts | Coverage ends |
|---|---|---|
| A | January 1 | March 31 |
| B | February 10 | March 31 |
| C | January 1 | January 20 |
Under an any-day rule, a person counts for a month if they were covered for at least one day in that month.
| Person | January | February | March | Total |
|---|---|---|---|---|
| A | 1 | 1 | 1 | 3 |
| B | 0 | 1 | 1 | 2 |
| C | 1 | 0 | 0 | 1 |
| Total member months | 2 | 2 | 2 | 6 |
A first-day rule counts five member months: B does not qualify in February. A full-month rule counts four: B does not qualify in February, and C does not qualify in January. All three calculations can be correct under their respective definitions.
A fourth approach measures covered days as a fraction of the calendar month. C contributes 20 ÷ 31 in January; B contributes 19 ÷ 28 in February. Together with A’s three full months and B’s full March, total exposure is approximately 5.32 fractional member months. This method handles partial coverage differently from counting any covered month as one. Label the result so readers know which denominator they are seeing.
There is no universal partial-month rule for every analytic or contractual purpose. Match the rule to the measure you are implementing or the question you are answering. If you publish several counting flags, name them explicitly and choose the appropriate one in each calculation.
9.3 Expand spans into months
A calendar table makes the transformation straightforward. For an any-day rule, an enrollment span overlaps a month when:
\[ \text{Coverage start} \leq \text{Month end} \quad\text{and}\quad \text{Coverage end} \geq \text{Month start} \]
Suppose medical_eligibility_span contains resolved medical coverage spans, and calendar_month has one row per calendar month with its first and last dates. This query creates member months for 2025:
select distinct
e.data_source,
e.person_id,
m.year_month
from medical_eligibility_span as e
inner join calendar_month as m
on e.coverage_start_date <= m.month_end_date
and coalesce(e.coverage_end_date, date '2025-12-31')
>= m.month_start_date
where m.month_start_date >= date '2025-01-01'
and m.month_end_date <= date '2025-12-31'Here, the source contract says a null end date means coverage remains open, and the analysis deliberately stops on December 31, 2025. Neither assumption should be inferred from a null by default. A missing date caused by a mapping error needs investigation, not an artificial period of coverage.
DISTINCT prevents overlapping spans for the same person and source from counting the same month twice. It does not resolve conflicting plan attributes. If the output includes payer, benefit, contract, or coverage tier, define how changes within a month are represented before adding those columns.
For a fractional method, count the union of covered days, not the sum of the lengths of overlapping spans. Two overlapping enrollment records do not mean a person was covered twice on the same day for a population denominator.
9.4 Decide the grain before attaching attributes
The natural grain depends on the question. A plan’s medical PMPM might need one row per source, member, plan, and month. A population study spanning multiple payers may need a resolved person identity and a different deduplication rule.
For example, a person can have both Medicare and supplemental coverage in January. Counting two policy months may be appropriate for analyzing two contracts. Counting the same person twice in a combined population denominator may not be. Keep policy exposure and person exposure distinct.
Medical and pharmacy benefits also deserve separate treatment. A medical member month does not establish that pharmacy coverage is present in the supplied data. If you calculate pharmacy PMPM, identify the population whose pharmacy spending you can observe.
Attributes such as age, product, provider attribution, or risk score can change. State whether a monthly attribute is measured at the beginning of the month, the end, or some other point. When a person switches products mid-month, preserving both records without an allocation rule can make product totals exceed the overall population.
9.5 Connect claims to coverage
After building the denominator, match claims to the appropriate member month using the selected person identity, source, benefit, and date convention. Keep enrolled people without claims in the analytic population.
A claim without a matching member month is a useful diagnostic. It might reflect late enrollment changes, missing coverage, a source identifier mismatch, or a payment date that falls after coverage ended. Count these claims and quantify their cost. Silently removing them can make a result look more precise while making it less complete.
Also keep measurement time separate from knowledge time. A January member month can change when a retroactive termination arrives in April. A report reproduced from the latest eligibility file may therefore differ from the one published in March. Preserve the source revision or extraction cutoff needed to explain that difference.
9.6 Use the denominator consistently
Member months support both cost and utilization rates. If a population contributes 6,000 medical member months and has 250 emergency department visits, it has 500 member years of exposure:
\[ \text{Visits per 1,000 member years} = \frac{250}{6{,}000 / 12} \times 1{,}000 = 500 \]
This annualizes an exposure-based rate. It does not predict that exactly 500 visits will occur in the next year, and it does not adjust for seasonal use or differences in health status. The ED analytics chapter develops that distinction further.
Before using a member-month table, reconcile its person counts and exposure against the source. Look for duplicate keys, coverage beyond the chosen cutoff, unexpected month-to-month changes, and differences introduced by partial-month rules. A small hand-worked example like the one above is a powerful check: it makes the intended behavior explicit before you apply it to millions of records.
9.7 A walkthrough
This Tuva video introduces the calculation with an enrollment example. Use the definitions in this chapter when adapting the example to your source.