Skip to Content
CognitoLabs.AIDocs
Tools

Payer rates and providers

What insurers publish they pay hospitals, practices and doctors. Five tools, their parameters and what comes back.

Insurers must publish their in-network rates (the Transparency-in-Coverage files). We keep the rates for hospitals in the states we have loaded, plus rates for physician groups, practices and doctors. You don't call these tools yourself. Your assistant does, from your question.

Two of them are free lookups. Three return the rates themselves and need the payer rates plan; without it you get the first 8 rows as a preview, with the dollar columns (min_rate, median_rate, max_rate) removed. See Plans & access.

payer_rates_overview

Which states and insurers we hold rates for. Free, and a good first call.

ParameterTypeDefaultWhat it does

It returns states[]: the state, how many hospitals, billing codes and rates we hold, the newest file date, and the insurers (payers[]) with their hospital and code counts there.

search_payer_rates

What each insurer publishes it pays named hospitals for billing codes.

ParameterTypeDefaultWhat it does
codeslist of stringnoneCPT, HCPCS or MS-DRG codes to look up.
hospital_idslist of stringnoneUp to 25 hospital ids (UUIDs), as returned in the hospital_id field of earlier rows.
include_percentagesbooleanfalse
limitinteger50Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for.
offsetinteger0Rows to skip, for paging.
payerstringnoneOnly this insurer, as named in the data.
statestringrequiredTwo-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids.

Give a state, plus hospital_ids (up to 25, from find_hospitals) and/or codes. A whole state is not searchable. payer keeps insurers whose name contains the text, in any case ("aetna" finds "Aetna CVS - Fully Insured"). Results are dollar rates only; percent-of-charge rows (negotiated_type "percentage") come back only with include_percentages=true. Coverage is partial: insurer files match about three in four hospitals, so some hospitals have no rows. limit is 1 to 200, default 50; page with offset.

Each row is one hospital, code, insurer and rate type:

FieldMeaning
hospital_id, hospital_nameThe hospital.
billing_code, billing_code_typeThe code and its system (CPT, HCPCS, MS-DRG ...).
payerThe insurer, as payer_rates_overview names it.
negotiated_type, billing_classHow the rate is expressed, and professional or institutional.
min_rate, median_rate, max_rateThe spread of that insurer's distinct published prices.
n_ratesHow many distinct prices stand behind the spread.
file_dateThe newest insurer file the rate came from.

find_providers

Find a practice, group, health system or doctor by name, NPI or TIN. Free.

ParameterTypeDefaultWhat it does
limitinteger25Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for.
qstringrequiredSearch the service description, up to 200 characters.
statestringrequiredTwo-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids.

A provider here is a TIN, the tax id an insurer contracts with. A doctor's name finds the group they bill under. Rows carry tin, tin_type, name, city, npi_count (clinicians under it) and payers (insurers listing it). Pass the tin to the two tools below.

search_provider_rates

Insurers' published rates for named providers and codes.

ParameterTypeDefaultWhat it does
codeslist of stringrequiredCPT, HCPCS or MS-DRG codes to look up.
familystringnoneOnly this payer family.
limitinteger50Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for.
offsetinteger0Rows to skip, for paging.
statestringrequiredTwo-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids.
tinslist of stringrequiredUp to 25 provider tax ids (TIN), as returned by find_providers.

state, tins (1 to 25) and codes (at least one) are all required. family narrows to one insurer family such as BCBS, UHC, Cigna or Aetna. Rows have the same spread fields as above, plus tin, provider_name, provider_city and payer_family.

compare_provider_rates

One row per code and provider, one column per insurer family.

ParameterTypeDefaultWhat it does
billing_classstringprofessionalprofessional or institutional.
codeslist of stringrequiredCPT, HCPCS or MS-DRG codes to look up.
limitinteger50Most rows to return. Each tool has its own cap. On a free plan, paid data returns 8 rows whatever you ask for.
statestringrequiredTwo-letter US state, for example FL. A state on its own is not enough: add codes, apc, q or hospital_ids.
tinslist of stringrequiredUp to 25 provider tax ids (TIN), as returned by find_providers.

billing_class is professional (default) or institutional. Percentage-of-charge rates are left out, because they are not dollars. The result has families[] (commonest first) and rows[], each with families, a map from family to median, low, high and n. On the free preview each family has only n.

What every answer carries

FieldMeaning
count, totalRows in this answer, and the matching rows overall.
truncatedtrue when more rows exist. Page with offset, or narrow the search.
lockedtrue when your plan only gets the free preview.
subscribeOn a preview: a link and a sentence for turning the full data on. Your assistant should show you both.

Example questions

  • Which insurers do you have rates for in Florida?
  • What do insurers pay Mayo Clinic Florida for a 99213?
  • Find the orthopedic groups in Tampa.
  • Compare BCBS and UHC rates for 99213 across these three practices.

On this page