# 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.

```bash
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.
