
Most people who lose coverage were still eligible.
Onfile pulls verified income, household and residency records straight from the source, with the applicant’s consent, and hands the caseworker a structured report instead of a folder of PDFs. It sits behind the portal your state already uses, because the proof is already on file somewhere.
Consent-based. Read-only. The applicant approves every field.
SNAP recertification, demo data
M. AlvarezThe paperwork is the failure point.
13.3 million
More than 13.3 million people were cut from Medicaid in 2023 during the unwinding, with procedural issues cited in just over 70% of cases, according to KFF Health News.
13% and 7%
When Utah surveyed the people it had dropped, 13% said the paperwork was too difficult and 7% said they did not have the documents to prove eligibility.
$233bn to $521bn
The GAO estimates the federal government loses between $233 billion and $521 billion a year to fraud. A pay stub can now be generated convincingly in seconds.
$15 a report
The dominant commercial income verification product is the highest-cost option, at roughly $15 a report according to CBPP analysis, with per-query rates raised 126% in Colorado and 120% in Kansas over four years, and it does not cover gig workers properly.
Those last two are the same problem. A system that cannot verify anything cheaply ends up verifying nothing well.
Nine fields. She approves each one.
Demo dataWhat you’re sharing with the agency
M. Alvarez · Demo data
From payroll
- Active, W-2, 1 employer
Employment status
3 days old
- 31.00
Hours per week
3 days old
- $19.40
Hourly rate
3 days old
From gig platform
- $412.00 / mo
Gig income, 6-month average
2 days old
- Aug $618.00Sep $244.00Oct $391.00
Gig income, last 3 months
2 days old
From bank
- Match confirmed
Deposits match income records
1 day old
From residency record
- 3 people
Household size
6 days old
- 2 of 3 confirmed
Household member residency
6 days old
- Current, 14 months
Address
6 days old
9 of 9 fields shared.
Sent to the caseworker exactly as written.
Never shared, whatever you choose
Onfile reads these to compute the fields on the left. The agency never receives them.
- Individual bank transactionsHeld back
- Employer contact detailsHeld back
- Account balancesHeld back
- Anything from a source not listed aboveHeld back
Nothing is pre-checked, nothing is bundled, and declining a field is not treated as a red flag.

Payroll said she was still employed.
Demo data1 · Payroll record
Active, W-2
Last updated 3 days ago
2 · Flag
! Discrepancy. The applicant has stated this job ended. The payroll record predates that, because the final pay cycle has not closed.
3 · Applicant’s context
“This job ended on the 17th. My last check was the 24th and there won’t be another one.”
4 · Caseworker sees
Both the record and the statement, side by side. Next payroll refresh in about 9 days will confirm it.
It does not resolve this and it does not try. A verification layer that quietly picks one version over the other is worse than a pay stub, because nobody can see it happen.
A report, not a shoebox.
Verification report · SNAP recertification
M. AlvarezDemo data| Field | Value | Source | Age | State |
|---|---|---|---|---|
| Employment status | Active, W-2, 1 employer | Payroll | 3d | ! Flagged Applicant states this job ended on the 17th. Record predates that. Next payroll refresh in about 9 days. |
| Hours per week | 31.00 | Payroll | 3d | ✓ Verified |
| Hourly rate | $19.40 | Payroll | 3d | ✓ Verified |
| Gig income, 6-month average | $412.00 / mo | Gig platform | 2d | ✓ Verified |
| Gig income, last 3 months | Aug $618.00Sep $244.00Oct $391.00 | Gig platform | 2d | ✓ Verified |
| Deposits match income records | Match confirmed | Bank | 1d | ✓ Verified |
| Household size | 3 people | Residency record | 6d | ✓ Verified |
| Household member residency | 2 of 3 confirmed | Residency record | 6d | ! Unverifiable The residency record for one household member is not available in this state. One document is requested for that member only. |
| Address | Current, 14 months | Residency record | 6d | ✓ Verified |
Applicant’s context, unedited
“This job ended on the 17th. My last check was the 24th and there won’t be another one.”
Document requested: proof of residency for one household member. Nothing else.
Onfile verifies records. The eligibility decision is yours.

It arrives in your existing eligibility system. There is no new portal and no new login.
Every field carries where it came from and how old it is, so a caseworker can see what they are relying on.
Where we cannot verify something, we say so and ask for that one document rather than restarting the application.
The same profile, the next application.
Once the sources are linked, the next application does not start from nothing. It is already on file. The applicant refreshes the profile, approves the fields that programme needs, and that is the whole process. Consent is per programme, per field, and expires.
SNAP recertification
9 fields- Employment status✓ Shared
- Hours per week✓ Shared
- Hourly rate✓ Shared
- Gig income, 6-month average✓ Shared
- Gig income, last 3 months✓ Shared
- Deposits match income records✓ Shared
- Household size✓ Shared
- Household member residency✓ Shared
- Address✓ Shared
Medicaid six-month check
4 fields- Employment status✓ Shared
- Hours per weekNot shared
- Hourly rateNot shared
- Gig income, 6-month average✓ Shared
- Gig income, last 3 monthsNot shared
- Deposits match income recordsNot shared
- Household size✓ Shared
- Household member residencyNot shared
- Address✓ Shared
What Onfile holds and what it does not.
- Read-only access to every source. Onfile cannot change a record anywhere.
- Consent is per programme, per field, with an expiry date the applicant can see and revoke at any time.
- Agencies receive computed eligibility fields. They never receive raw transactions, credentials or source access.
- An applicant can see every share that has ever been made from their profile, including which agency and when.

Priced per verified profile, not per query.
A per-profile fee that covers the initial verification and every refresh for that programme cycle, because charging per query is how verification costs end up rising 126% in four years. Agencies see the price before they integrate and it does not change mid-contract.
! Discrepancy
“This job ended on the 17th. My last check was the 24th and there won’t be another one.”
Flagged, not resolved. Demo data.
Walk through one recertification.
Nine fields, one flag, one document request, and the same profile reused for a Medicaid check.