Wisconsin gives you something most states do not: two named EVV denial codes that tell you exactly why a claim did not pay. EOB 1047 means ForwardHealth found no EVV visit for the billed date. EOB 1048 means a visit exists, but the verified EVV units came in below the units you billed. That clarity is useful, but it also means the denials are precise and unforgiving. A visit that ran a few minutes short of the billed time, or one that never reconciled to a verified Sandata record, lands on one of these two codes and waits. If nobody works it, it ages out.

This page is about where that money leaks in Wisconsin specifically, and why catching it means reconciling your Sandata visits against the claims rather than trusting that a delivered visit was paid in full.

ForwardHealth home-care, at a glance

Program
Wisconsin Medicaid, branded ForwardHealth, administered by DHS; LTSS through Family Care, Partnership and PACE, and the participant-directed IRIS program
EVV system
Sandata, state-sponsored and free, under an Open Model with Alternate EVV permitted via the Sandata aggregator
EVV hard launch
Personal care and supportive home care: dates of service on or after May 1, 2023. Home health care services and code 99509: October 1, 2024
Timely filing
365 days from date of service for claims, corrected claims, and adjustments

EOB 1047 and EOB 1048: the two ways ForwardHealth says no

ForwardHealth matches every personal-care claim against a verified Sandata EVV visit, and when the match fails, it returns one of two specific codes. EOB 1047, "EVV System Visit not found," means there is no EVV record for the billed date of service. The claim went out, but the aggregator has nothing to tie it to. EOB 1048, "EVV system units do not meet requirements of visit," means a visit does exist, but the verified EVV units are less than the billed units. The recorded visit was too short to support the amount billed.

In Wisconsin, EOB 1048 is the quiet one. The visit happened, the claim was not rejected outright, but the verified EVV units came in under what you billed, and the difference does not pay.

The resolution is mechanical but it has to be done. The agency's EVV administrator compares the billed units to the verified EVV units, then either corrects the claim or corrects and verifies the visit in the Sandata portal, so the billed units are no greater than the verified units and the visit is in verified status. Then the claim is resubmitted. That is straightforward when you catch it. The problem is that EOB 1048 denials are easy to miss in a busy remittance, because the claim was not flatly rejected, it was just trimmed, and on a 365-day clock the unworked ones quietly expire.

Sandata Open Model, and the hard-launch dates that matter

Wisconsin runs EVV through Sandata under an Open Model. A provider can use the free state Sandata system, or run an Alternate EVV vendor that integrates with and sends visit data to the Sandata aggregator. Either path ends at the same place: the claim has to reconcile to a verified Sandata visit.

The enforcement dates are specific. The personal care and supportive home care hard launch took effect for dates of service on or after May 1, 2023, after an earlier target was delayed. The home health care services hard launch, which includes the registered nurse supervisory visit code 99509, took effect October 1, 2024. So an agency that delivers across personal care, supportive home care, and home health has been under full EVV claim consequences on every line since late 2024, and every one of those lines can land on EOB 1047 or 1048.

Where the margin actually leaks in Wisconsin

None of these are visible from inside the scheduling view. The schedule says the visit happened. The EVV system says the caregiver clocked in. It is only when you reconcile the Sandata visits against the claims and the ForwardHealth remittances that the gap appears.

Why a read-only recovery layer is the right tool for this

Reeve sits read-only over whatever EMR and EVV export an agency already runs, whether that is WellSky, AxisCare, HHAeXchange, AlayaCare, or anything else, and compares what was delivered with what was authorized and what ForwardHealth actually paid. For a Wisconsin agency, that means lining up the Sandata visits, the claim lines, and the prior authorizations, then surfacing every place they fail to reconcile: the EOB 1047 visit-not-found denials, the EOB 1048 unit shortfalls, the unverified visits, and the silent underpayments.

Because Reeve is read-only and neutral across every EMR, it never writes to your billing workflow without your control, and it has no reason to look past a finding that implicates a billing module. It hands you a ranked list of recoverable dollars with the reason attached, the missing visit or the unit shortfall. The ones still inside the 365-day window are the ones you can rebill now.

This is the same engine described across the rest of the site. For the broader map of revenue loss in home care, see where home-care margin leaks. For the visit-matching mechanics specifically, see home-care visit reconciliation. For the full playbook on getting uncollected revenue back, see home care revenue recovery.

What the free Wisconsin Margin Teardown does

The way to find out whether EOB 1047 and 1048 denials are draining your margin is to look at a real, de-identified slice of your own data, before you spend a dollar. The Margin Teardown is a one-time, read-only read of where margin is leaking in your book: the visit-not-found denials, the unit shortfalls, the authorization gaps, and the underpayments. It is free, and it is yours to keep whether or not you ever work with Reeve. It carries the same 3×-or-free guarantee the rest of the engine does. If Reeve does not surface at least three times its monthly fee in recoverable margin you agree is real, you do not pay.

See where your Wisconsin margin is leaking.

A free, de-identified Margin Teardown reconciles your Sandata visits, authorizations, and ForwardHealth remittances and shows you exactly what slipped. Read-only. Yours to keep.

Start a free Margin Teardown →