Covendo  ·  Coverage monitoring for skilled nursing

Catch the coverage change before the claim does.

Covendo re-verifies every resident’s coverage on a schedule and reports only what changed. A check that finds nothing new emits nothing.

For facilities Book a walkthrough For developers Read the API

Medicare · CMS Medicaid · 47 states + DC Managed care · payer-direct Cadence · daily to monthly, per facility

Covendo — Change feed Illustration
Facility All facilities (4) Alerts6 Baseline41 Data entry3 Last 7 days
Illustration of the Covendo change feed. All residents, facilities and values shown are fabricated.
Resident Facility Change From → to Effective Severity
Marjorie Alvarezpt_81be04 River Bend Managed-care plan changed SENIOR WHOLE HEALTHWELLSENSE 2026-08-01 High
Dennis Whitfieldpt_40cc19 Oak Hollow Coverage terminated activetermed 2026-07-31 High
Rosalind Okoyept_2a7f55 Cedar Point QMB status added falsetrue 2026-08-01 High
Harold Benningpt_9d1e30 Oak Hollow Hospice elected noneelected 2026-08-05 High
Eleanor Pacept_66b0a2 River Bend Part A days remaining 4112 2026-08-09 Medium
Priscilla Nakamurapt_c3084b Marsh Creek Patient liability changed $0.00$184.00 2026-08-01 Medium
6 alerts · 41 baselines suppressed · 3 data-entry changes filed run_5c1d0e · weekly · Tue 05:00 UTC

Illustration of the change feed. Residents, facilities and values are fabricated; no real resident data appears anywhere on this site.

Verification routes 3 Medicare, Medicaid and managed care — all three read in one feed and one digest.
Coverage 50 States. Medicare and managed care run nationwide; Medicaid in 47 states and DC.
Cadence 4 Daily, weekly, biweekly or monthly — set per facility with an explicit day.
Signal 0 Changes emitted when a re-check finds nothing new. No digest, no page, no noise.

Two ways to use it

One engine. Two very different buyers.

For admissions and the business office

The monitored service

We watch every resident’s coverage and email you what changed. Nothing to install, nothing to integrate.

  • A managed-care switch surfaces on the next check — not on the remittance advice.
  • One email per person, covering every building they are responsible for.
  • Send the census you already produce. A spreadsheet is enough.
  • Filtered per recipient: managed care to the coordinator, the rest to billing.

Book a walkthrough

For EHRs, billing platforms and group IT

The API and change feed

A documented REST API over the same engine. Push a roster, pull the feed, drive the schedule from your own product.

  • sk_live_ bearer keys, one per tenant, rotatable without downtime.
  • Cursor-paginated change feed, filterable by kind and date.
  • Trigger a check for one facility or one resident, on demand.
  • Every screen in the portal is a documented endpoint underneath.

Read the API

What it catches

Coverage moves. Nobody tells the building.

A plan is reassigned, benefit days run out, a QMB flag appears. None of it arrives as a notice — it shows up weeks later as a denied claim, long after the days were delivered.

Every category below is a change type in the feed, with its own severity.
What changes What we report Why it costs money
Coverage starts and stops Terminations with an authoritative end date, new plans, coverage that begins in the future. Days billed to a payer that is no longer on the hook.
Plan identity Medicaid MCO switches, Medicare Advantage plan changes, roster payers the payer disagrees with. Claims and authorisations sent to a plan that dropped the resident.
Benefit depth Part A days remaining, lifetime reserve, hospital days, therapy dollars, deductible. A stay that quietly stopped being covered mid-month.
Liability Patient liability and coinsurance amounts moving up or down. Money collected from the wrong party, or never collected at all.
Dual and QMB status Dual eligibility appearing or lapsing, and QMB status changing. Billing a resident who cannot lawfully be billed.
Hospice and elections Hospice election and revocation, and other program flags. The wrong payer for every day from that date forward.
Census data quality Member numbers that fail at the payer, a date of birth the payer disputes, a dead plan. Rejections that look like coverage problems but are typing errors.

Verification routes

Three routes. One place to read them.

Real eligibility transactions through a clearinghouse — not screen scraping, not portal logins.

Medicare
CMS · entitlement, MA plan, benefit depth
Medicaid
state by state · 23 live
Managed care
payer-direct · commercial and MA plans

Whichever route a resident’s coverage comes through, it lands in the same feed and the same digest. You never have to know which one ran.

Medicaid, state by state

47states + DC

AK AL AR AZ CA CO CT DC DE FL GA HI IA ID IL IN KS KY LA MA MD ME MN MO MS MT NC ND NH NJ NM NV NY OH OK OR PA RI SC SD TN TX VA VT WA WI WV WY
Medicare runs through CMS and managed care runs payer-direct, so both cover all fifty states. Medicaid is a different programme in every state; these are the ones live today. Michigan, Nebraska and Utah are not yet available for Medicaid, and California needs your own portal credentials.
Covendo — River Bend Care Center Illustration
Run Tue 12 Aug · 05:00 UTC Alerts0

Nothing changed.

138 residents re-checked. No alerts, and no email went out.

weekly · Tue 05:00 UTC next run 19 Aug
Illustration. A quiet run is the common case, and it is silent on purpose.

Signal, not noise

The hard part is not looking things up. It is knowing what is new.

Re-check a few thousand residents every week and you get a few thousand pages of mostly-unchanged output, which nobody reads. You get the difference instead.

A quiet re-check
no alert · no email
Digests carry
alerts only
Census corrections
filed separately · never alerted
Every alert carries
severity · dates · old → new
A payer having a bad night does not turn into a false alarm. Covendo is built so that an outage stays an outage, and never reaches you looking like a resident who lost coverage.

The split that makes it usable

Three kinds of change. Only one of them is news.

Most monitoring tools drown you: onboarding a building floods the inbox, tidying the census floods it again, and within a fortnight the alerts are ignored. Your feed keeps the three apart, and only one of them ever reaches you.

alert

A real finding

A real coverage change at the payer, worth a person’s attention. This is what lands in a digest, with severity, dates and the old and new values on the face of it.

→ Emails you. Counts as signal.

baseline

First sighting

Where a resident’s coverage stood when they joined your feed. It is recorded so the history is complete from day one, and it is never treated as news.

This is why onboarding a facility does not fill anyone’s inbox on the first morning.

→ Recorded in the feed. Never emailed.

data_entry

Someone fixed a typo

A correction to your own census rather than a change at the payer — a transposed member number put right, a spelling fixed.

It is kept in the feed with its source, so the record is honest, but it is not a coverage event and it never pages anyone.

→ Kept and attributed. Never emailed.

Cadence and delivery

Checked on your schedule. Read in one email.

Each facility sets its own frequency with an explicit day. Recipients are people, not mailing lists — one person gets one email covering every building they cover.

daily weekly · day_of_week biweekly · day_of_week monthly · day_of_month
Set per facility
a fast-turnover building can run daily
Short months
day_of_month is clamped
Per recipient filter
by change type, no overlap
On demand
API or portal · same engine
Digests carry alerts only. Baselines and census corrections stay in the feed where you can see them, and never land in anyone’s inbox.

To: you Tue 12 Aug · 05:12 UTC Filter: managed care

3 facilities · 5 alerts since your last digest

River Bend Care Center 2 alerts

M. Alvarez MCO changed → WELLSENSE

E. Pace Part A days 41 → 12

Oak Hollow 2 alerts

D. Whitfield Coverage termed 2026-07-31

H. Benning Hospice elected 2026-08-05

Cedar Point 1 alert

R. Okoye QMB added false → true

41 baselines and 3 data-entry changes recorded and not included.

Illustration of a digest. Names and values are fabricated.

Ingestion

Getting the roster in is not the same as checking it.

Sending us a roster never silently starts a run. Sync the census as often as you like without spending a lookup or generating a finding.

01 · API

Push a roster

Full replace per facility, idempotent. Admits, discharges and payer changes are recorded and tagged as coming from your roster.

02 · or file

Forward a census

Send the spreadsheet you already produce. Rows that cannot be matched are quarantined for review, never guessed at.

03

One roster

However it arrives, you get one roster per facility and one view of it. The route in makes no difference to what you read.

04

Then, and only then

A check runs when your schedule says so, or when you ask for one. Never as a side effect of updating the roster.

For developers

API first. A portal for the people who want one.

Authenticate with a bearer key. Anything a person can do on a screen can be scripted, because the screen is calling the same endpoint.

Endpoints

GET /v1/changes The change feed. Filter by kind and since; cursor-paginated.
GET /v1/facilities Facilities, their status, cadence and last run.
POST /v1/facilities/{external_id}/change-check Run a check now. Returns a run id.
POST /v1/facilities/{external_id}/cadence Set frequency and the explicit day.
GET /v1/patients/{id}/changes Everything ever recorded for one resident.
Authentication every request
Authorization: Bearer sk_live_...
Keys
one per tenant · shown once · rotatable
Facility lifecycle
pending_setup → active → paused
Portal accounts
separate · by invitation only
GET /v1/changes?kind=alert&since=2026-08-01 200
{
  "changes": [
    {
      "id": "ch_3f9a2c",
      "kind": "alert",
      "type": "mco_changed",
      "patient": { "id": "pt_81be04", "name": "Marjorie Alvarez" },
      "facility": "river-bend",
      "payer_type": "medicaid",
      "field": "mco_name",
      "old_value": "SENIOR WHOLE HEALTH",
      "new_value": "WELLSENSE",
      "effective_date": "2026-08-01",
      "detected_at": "2026-08-11T05:04:12Z",
      "severity": "high",
      "source": "verification"
    }
  ],
  "next_cursor": "eyJ0IjoiMjAyNi0wOC0xMSJ9"
}
// Illustrative payload. Names are fabricated.
POST /v1/facilities/river-bend/change-check 202
// request
{ "types": ["medicare", "medicaid"] }

// response
{
  "run_id": "run_5c1d0e",
  "status": "queued",
  "patients": 138
}
POST /v1/facilities/river-bend/cadence 200
// request — weekly, every Tuesday
{
  "frequency": "weekly",
  "day_of_week": 1
}

// response
{
  "frequency": "weekly",
  "day_of_week": 1,
  "next_run_at": "2026-08-18T05:00:00Z"
}

See Covendo run against your census.

The quickest way to judge it is one facility, one check, and the list of what it found that nobody had noticed.

For facilities

Tell us which buildings you run and which states they are in. We set the account up and make you an administrator on it.

Book a walkthrough
For developers

Get an sk_live_ key, push a roster and pull the change feed against your own data.

Request API access