Key takeaways

The meeting was supposed to be about outreach. It turned into an hour about a number.

Four teams had brought enrolled membership for the month that just closed. Four numbers went up on four slides, and no two of them matched. Not off by a rounding difference. Far enough apart that the outreach list built on one of them was pointed at a population the other three did not recognize.

Everyone in that room had pulled from the same warehouse.

Four clocks on one wall, each showing a different time. Nothing on a clock face tells you which face is the right one. The room argues for a while, and then everybody quietly goes back to reading the clock nearest their own desk.

All four numbers were right

What was actually different had very little to do with the warehouse.

One word, 'enrolled', doing four jobs and admitting to none of them
1
Finance counted member months, because premium is billed on member months and that is what the actuaries work in.
2
Operations counted heads enrolled on the last day of the month, because that is the number the board deck has shown for years.
3
Quality counted members who cleared the continuous enrollment rules NCQA defines for the measurement year, since a member who does not clear that window is not in the denominator.
4
Care management counted members active today, because you cannot call somebody who termed in March.

Four definitions. Four correct answers. Nobody in that room was reporting the wrong number, and nobody in that room knew they were answering a different question than the person sitting across from them.

Then add retroactive enrollment on top. CMS sends retro adds and retro terms for months that already closed, and they land on the MMR well after the board deck was printed. A state can restate a member's eligibility weeks after the fact. So the same query, against the same table, run on two different days, honestly returns two different answers for the same closed month. Nobody did anything wrong.

Real-world scenario: one query, two honest answers
Month close
March closes. The membership extract runs that night, the enrolled count goes into the board deck, and the outreach list is built from the same pull.
Three weeks later
CMS sends retroactive adds and terms for March on the MMR. The state restates eligibility for a handful of members going back to February. Nothing about the query changed. The month underneath it did.
Re-run
Somebody runs the identical query against the identical table and gets a different March. Both runs were correct on the day they ran, and neither report says which day that was.

The hour always goes to the schedule

When numbers do not match, the first hour goes to refresh timing. It is the visible difference and the easy one to check, so somebody pulls up the job log. Finance's extract ran Tuesday at eleven at night, before that week's 834 landed. Operations refreshed Thursday morning. There it is, everyone says. Meeting over.

The meeting ends with the cheap problem solved and the expensive one untouched.

Two failures are stacked here and they do not cost the same. Clock drift is the timing gap: different refresh windows, different load orders, one job that did not wait for a file another one waited for. It is visible, it is arguable, and a scheduler fixes it. Logic drift is the definition gap. It lives in SQL nobody has read since the person who wrote it changed jobs, it survives every scheduling fix you apply, and it is the half that puts a wrong outreach list in front of a care manager.

Clock drift is a real problem and I am not waving it away. It comes from something structural in the way warehouses and transactional systems are each built, and it deserves a piece of its own rather than a paragraph here. That is the next article, and it is the one that explains why all these copies exist in the first place. This piece is about the half still standing after you have fixed every schedule in the building. If you want the version of the timing argument that applies to claims rather than membership, we have written about claims data lag and what it does to a value-based contract.

Align the schedules and the numbers move closer together. Close enough that people stop looking. The four definitions are still sitting in four different scripts, and they will separate again the first time a measure changes or an analyst leaves.

Four clocks on a wall disagree about the time, and every person standing under them still agrees on what a minute is. Nobody counting members has ever agreed on what a member is, and that disagreement does not show up anywhere on the slide.

Two hours that tell you which one you have

Open the scheduler. Count the jobs producing a number that already exists somewhere upstream. Then, for each one, find the person who can tell you what that number means, as opposed to what the query does. In most organizations the first count is large and the second is close to zero.

Then ask your four teams to write down, in one sentence each and without conferring, what 'enrolled member' means. Compare the sentences.

If the sentences match, you have a scheduling problem and you can fix it this month. If they do not match, you never had one number to disagree about, and no refresh window was ever going to save you.

Almost nobody runs this exercise, because everybody assumes they already know the answer. The sentences never match.

Do not pick a winner

This is where most of these efforts die.

Somebody lays the four definitions side by side, declares one of them official, and expects the other three teams to migrate. Those three teams have just been told their work is unofficial, and they will defend it, quietly and effectively, for as long as it takes.

Certify all four instead.

Each definition gets a name, an owner, and one plain sentence: member months, end of month enrollment, HEDIS continuous enrollment, active today. Four legitimate questions, four certified answers, one place they live. A team needing a fifth asks for a fifth, and it gets a name too.

Then make certification worth having, because this is the step that decides whether anybody follows you. A certified number carries a guarantee. Quote it in a meeting, and if somebody challenges it, the definition owner defends it instead of you. Teams do not adopt certified measures out of governance discipline. They adopt them because being challenged in front of an executive is what they are actually afraid of, and certification is the only insurance on offer.

Leave the copies exactly where they are

The other reason these efforts die is that somebody turns them into a consolidation. Inventory every report, pick the survivors, migrate everyone onto one model, decommission the rest. It gets funded, it runs for three quarters, and it dies, because you are asking four directors to hand over the report their team runs on in exchange for a promise. Nobody trades a working Monday morning for a roadmap.

So take nothing away from anyone.

Leave every extract where it is. The team keeps its report, its refresh schedule, its column names, the tile on its dashboard, the muscle memory of the analyst who runs it every month. Change one thing. The logic deciding who counts as enrolled stops living inside that team's SQL and starts reading the certified definition upstream. The copy survives. It becomes a shell around a definition it no longer owns.

Start with the extract that has caused the most arguments. Rewire that one, then say so publicly in the forum where the arguments usually happen. Nothing visible changed for the team that owns it, and they stopped losing meetings. The second and third teams will come to you on their own.

While you work through them, count what the drift has been costing. Reconciliation meetings per month, times attendees, times hours. Engineer days spent repairing extracts every time a source system changes. You need that figure, because an architecture complaint gets deferred and an hours number gets a budget line.

The part that stays messy

This work decays, and it decays in a predictable shape.

The certified measures go in. The copies get hollowed out. The reconciliation meeting comes off the calendar, and for a while the organization looks fixed. Then a year later a new director arrives with a new question and a six week wait in front of them, and the first private extract of the next generation shows up in the scheduler.

There is no clean answer to that one. The technical work is the easier half. Keeping the shared layer faster than the workaround is a permanent operating commitment, and most organizations will happily fund a project and not a commitment.


None of this shows up as a defect. No system threw an error, no job failed, no analyst wrote bad SQL. Four competent teams answered four reasonable questions correctly, and the organization spent an hour deciding which of its correct answers to believe. That hour repeats every month, and it is the visible part of a cost that is mostly invisible.

Ask your teams to define 'enrolled member' in one sentence each, separately, and compare what comes back. That exercise costs nothing, needs nobody's approval, and it will tell you within a day which of the two problems you actually have.

Which is why, if you want to know how a data organization is really run, the architecture diagram will not tell you. Open its scheduler.

Getting a different membership number from every team?

We help health plans, IPAs, and MSOs separate the timing problem from the definition problem, certify the measures that matter with real owners behind them, and rewire existing extracts to read shared logic without taking a single report away from the team that depends on it.

Book a Call Send a Message
Ajay Chaudhary
Founder & Principal Consultant, Vavion Health

Many years working inside healthcare's data and technology infrastructure. Value-based care contract operations, claims data pipelines, EDI and FHIR integrations, and the analytics workflows that determine what gets measured, what gets acted on, and what gets missed.