Lakewright solutions / brief

Eligible vs funded: finding the capitated members you aren't being paid for

In a value-based practice the payer tells you who you are responsible for, and separately tells you who it is paying you for — and those two files do not agree. Nobody is lying; rosters carry retroactive adds and terms, capitation runs are cut on a different date, and every payer sends both files in a different shape. The gap is real money and real risk: members you are managing, and being measured on, without the premium. Lakewright lands both sides as governed tables so the reconciliation is a query instead of a monthly spreadsheet ritual.

Why this is hard in practice

The eligible side arrives as an X12 834 from one payer and, if you are lucky, a well-formed CSV with demographics and attribution from another — assigned PCP, clinic, risk tier. The funded side is an X12 820 premium payment from the first and a plain capitation CSV from the second. Four files, four shapes, one question. Most practices answer it with a VLOOKUP that one person maintains, which means it happens monthly at best and silently rots when that person is on holiday.

What Lakewright does with them

Each file is identified by evidence, not by filename: the 834 by its envelope and implementation convention, the 820 by its own, the CSVs by structure. Each becomes a governed Iceberg table — one row per member for rosters, one row per remitted member detail for payments — with member identifiers hashed or masked per the approved plan before anything lands.

lakewright scan  sftp://payer-drop/           # 834, 820 and two CSV shapes, identified
lakewright approve plans/roster.plan.yaml     # your data owner signs off
lakewright load  plans/roster.plan.yaml --rest $CATALOG

FAQ

Do you need the whole 834?No. The reconciliation needs member id, coverage dates and maintenance type; everything else is landed because it is there, not because the query needs it.
What about retroactive adds and terms?The 834 maintenance type codes come through, so an add applied in August for a July effective date is visible as exactly that — which is usually the explanation for a gap.
Our payers send different identifiers.Common. The plan is where the mapping is declared and reviewed, rather than living inside somebody's spreadsheet.
Can this run itself?Yes — the watcher lands each month's drop as it arrives, and an after-load hook can rebuild the reconciliation model immediately.

The question that matters

"Which members are we responsible for this month that nobody is paying us for — and who are their doctors?"

Seven members, across two payers, none of them obvious from either file alone.

Three came from the 834/820 pair: M1004 Nakamura, M1011 Vargas and M1017 Ivanov — all three carry an August 1 coverage start on the roster and appear nowhere in the capitation remittance. Four came from the CSV payer: H2016 Quinn and H2022 Walsh at risk tier 3, H2009 Jensen at tier 2, H2003 Duarte at tier 1 — attributed to Dr. Lindqvist, Dr. Osei (twice) and Dr. Reyes, across the Riverside, Northside and Eastgate clinics. At the average PMPM in those same files, roughly $8,900 a month, or $107,000 a year, of premium the practice is entitled to and is not receiving — while carrying the clinical and quality risk for every one of them.

Two members deserve immediate attention rather than a batch dispute: the tier-3 pair are the highest-acuity people on the unfunded list, which means they are both the most expensive to manage and the most valuable to have correctly enrolled.

Run in reverse, the same join found no members being paid for who had fallen off the roster — so this month the exposure is one-directional. Every figure traces back through its Iceberg snapshot to the exact payer file and its content digest, which is what you want in hand when you open the dispute.

Want this run against your data?

We start with a read-only scan and an inventory report — no installation on your systems, nothing leaves your environment. Most engagements produce findings the team didn't know about in the first afternoon.

Start a conversation