Here is a loss that never shows up as a denial, never gets a code, and never lands in a worklist: a visit your caregiver worked, that you paid them for, that no one ever billed. The labor cost is fully booked. The revenue simply never arrives. There is no rejection to appeal because there was never a claim. It is the cleanest possible way to lose money, which is exactly why it is the hardest to see. For a home-care agency running on Medicaid personal-care margins, a steady trickle of paid-but-unbilled visits is margin walking straight out the door with the lights off.
This is the operator's view of the payroll-to-billing gap: why the same visit ends up paid but not billed, why nobody notices, and what it takes to reconcile the two sides and recover the hours still inside the window.
One visit, two systems, two deadlines
Every home-care visit is supposed to land in two places. It goes into payroll, which pays the caregiver for the time they worked. And it goes into billing, which turns the same visit into a claim to the payer. In a clean operation those two are the same visit captured once and used twice. In most operations they are not, because payroll and billing usually run on different systems with different deadlines.
Payroll is non-negotiable and time-boxed. It closes on a fixed schedule, and caregivers get paid for the hours they worked whether or not the matching claim has gone anywhere. Billing has no such hard gun to its head, so it slips. The visit gets paid on Friday; the claim was supposed to follow but stalled. Nothing forces the two sides to agree, and so they quietly diverge.
Why a paid visit never becomes a claim
The reasons a visit reaches payroll but never reaches billing are the same handful of reasons claims stall everywhere, except here the stall is permanent because nothing chases it:
- Missing authorization. The visit cannot be billed without an active auth, so it sits on hold, gets paid in the meantime, and is forgotten once the auth question goes stale.
- EVV mismatch. A visit that failed to reconcile to the state aggregator gets held back from billing, even though it was real enough to pay.
- Billing hold or exception. The visit lands in an exception queue, the queue grows, and a paid visit ages out without anyone returning to it.
- The system gap. The visit lives in the EMR, gets paid through payroll, and never crosses into the claim that was supposed to transmit, so it falls into the seam between systems and is never seen again.
In each case the payment went out because payroll forced it out. The claim did not, because nothing forced it. The visit was real, the labor was paid, and the revenue never came.
The duplicate-and-re-entry tax
The gap gets wider every time visit data has to be keyed from one system into another. When time flows through several disconnected systems, the same visit gets logged in the EMR and then re-entered into payroll or billing, and re-entry is where duplicate visits and dropped visits both creep in. A visit typed twice can inflate payroll; a visit typed once and never carried forward to billing vanishes from revenue. Industry write-ups on home-care payroll and billing software consistently locate this kind of leakage in the gaps between disconnected systems, where manual re-entry replaces a single shared record. The more hand-offs between capturing a visit and billing it, the more places a visit can quietly fall out.
Finding the hours: three buckets
You find paid-but-unbilled visits by reconciling the two records against each other, visit by visit. Line the payroll record up next to the billing record and every visit sorts into one of three buckets:
The three-bucket reconciliation
- Paid and billed
- The visit produced a claim. The healthy case: labor matched to revenue.
- Paid, not billed
- You paid for the visit but never billed it. The leak, and the recoverable money.
- Billed, not paid
- A claim went out but the payer didn't pay it. A separate denial problem, not an unbilled one.
The middle bucket is the prize. Every visit in it is one where the agency already absorbed the labor cost, so any that can still be billed inside the timely-filing window is close to pure recovery, revenue against a cost you have already paid. The third bucket is a real problem too, but a different one, covered in home-care claim denials.
Making reconciliation a habit, not an autopsy
The agencies that do not bleed unbilled hours stop treating the payroll-to-billing comparison as a year-end discovery and start running it every pay cycle. Reconcile paid hours against billed hours on the same rhythm payroll runs, so an unbilled visit surfaces while it is still billable rather than after it has aged out. Resolve the upstream causes, the missing authorizations and EVV mismatches, that hold visits back in the first place. And watch the re-entry points where duplicates and drops are born. The principle is easy to say and hard to hold: every visit you pay for, you also bill for.
This is exactly the reconciliation Reeve runs. It sits read-only over whatever EMR, EVV, payroll, and billing exports an agency already runs, whether that is WellSky, AxisCare, HHAeXchange, AlayaCare, or anything else, and lines the paid visits up against the billed claims to surface the paid-but-unbilled bucket with the reason each visit stalled. Because Reeve does not sell payroll, scheduling, or billing software, it has no stake in any one system being the source of truth, which is what lets it sit neutrally across all of them. For the broader pattern, see where home-care margin leaks and what a margin teardown finds. For the full playbook this reconciliation feeds, see home care revenue recovery.
The hours you paid but never billed are the quietest line item in home care, because nothing about them feels like a loss. There is no denial, no code, no fight. Just a cost you carried and a revenue that never came. The only way to get it back is to look for it on purpose.
A free, de-identified Margin Teardown reconciles your paid visits against your billed claims and surfaces the unbilled ones still inside the window. Read-only. Yours to keep.