Members are charged cost share past their out-of-pocket maximum
benefits.accumulator holds rows where oop_after exceeds oop_limit, so the cap was not enforced and the member paid.
Applies to
benefits.accumulatorbenefits.filed_benefitbenefits.plan_configConnected
Part of Accumulators
View in graph
The accumulator ledger replays each member’s claims in service-date order and applies no cap. Where adjudication did not honor the out-of-pocket maximum, the member was charged cost share and the ledger recorded it. The result needs no join to find.
Select from benefits.accumulator where oop_after is greater than oop_limit. Each row already carries the member, plan year, plan, claim, service date, and the cost share applied, so the member and the refund amount are both on it.
Nothing in cases.inquiry_case explains this. No case type covers an out-of-pocket breach, so every row found this way is a confirmed overcharge, not a population to triage.
There is a second, quieter way the cap can be wrong. oop_limit comes from the configured plan in benefits.plan_config, which disagrees with the filed plan in benefits.filed_benefit for some plans. Join benefits.filed_benefit on plan and benefit element to check the limit itself.
The remedy is a member refund and a fix to how claims apply the cap.