Fee schedules for independent practices
See what your payers agreed to pay you, and where they paid less.
Your published rates across your payers, code by code, in one sheet. Upload your allowed amounts and we’ll show the codes paid below it.
From $99/month · cancel anytime
UnitedHealthcare, Blue Cross, Aetna, Cigna and Medicare — read from the files they’re required to publish.
Reading this as an AI agent or crawler? Get this page as Markdown → · site index for agents
The payer’s published negotiated rate for your NPI, for the six codes your specialty bills most. For a primary care practice:
| Code | Visit | Negotiated rate |
|---|---|---|
| 99213 | Office visit, established patient, 20–29 min | — |
| 99214 | Office visit, established patient, 30–39 min | — |
| 99215 | Office visit, established patient, 40–54 min | — |
| 99203 | Office visit, new patient, 30–44 min | — |
| 99204 | Office visit, new patient, 45–59 min | — |
| 99212 | Office visit, established patient, 10–19 min | — |
Every figure comes from the payer’s own file, with the network and file date it was published under. We never invent a benchmark.
How it works
Know your rates. Check what you were paid. Hear when they change.
- 01
Know your rates
Sign up, enter your billing NPI and the CPT codes you bill (or start from your specialty’s typical codes), and pick the payers you take: the local Blue plan in 49 states and DC, plus UnitedHealthcare, Aetna, Cigna, Ambetter, Oscar and Medicare — 66 in all. We build your fee schedule from each payer’s published file: one row per code, one column per payer, with the source behind every number. Most payers are in within minutes.
- 02
Check what you were paid
Export your allowed amounts from your practice management system, totalled by code, modifier and place of service, with a claim count. That’s no patient data, and a few dozen rows for most practices. Upload them, and we compare each code with the rate your payer published for you: the codes allowed below it, how many claims, and the dollar gap, worst first.
- 03
Hear when a rate changes
Payers republish their files every month, and a rate can change without a letter. When one on your fee schedule moves, you see which code, by how much and when, and we can email you.
All three are on every paid plan, from $99 a month. Get started →
What a check finds
The codes you were allowed below your rate.
Underpaid claims usually close at a zero balance: the shortfall is posted as a contractual adjustment and nothing flags it. The check lines your allowed amounts up against the rate your payer published, code by code. Claims with a modifier that changes payment are set aside, not counted as underpaid.
$1,680.00 across 2 codes, worst first
| Code | Service | Published rate | Claims | Below | Gap |
|---|---|---|---|---|---|
| 99214 | Office visit, established, 30–39 min | $128.40 | 412 | 96 | $1,152.00 |
| 99396 | Preventive visit, 40–64 | $171.25 | 88 | 88 | $528.00 |
| 99213 | Office visit, established, 20–29 min | $92.10 | 538 | 0 | — |
| 20610 | Joint injection, major joint | $64.00 | 31 | 0 | — |
| 12 claims carry modifier 50, which changes what the payer pays — not compared | |||||
| 90834 | Psychotherapy, 45 min | — | 120 | — | — |
| Published as a percentage of charges — no dollar rate to compare | |||||
A gap is worth checking, not a guaranteed recovery: a contract amendment, bundling edits or a secondary payer can explain a real difference.
What stands between you and your rate
This is the file. That is your number.
What your payer published
One of 8 files. 1.1 GB. Updated monthly.
{"reporting_entity_name":"...","reporting_entity_type":"health
insurance issuer","last_updated_on":"2026-09-01","version":"2.0.0",
"in_network":[{"negotiation_arrangement":"ffs","name":"Office o/p
visit est","billing_code_type":"CPT","billing_code_type_version":
"2026","billing_code":"99214","description":"Office or other
outpatient visit, established patient, 30-39 minutes",
"negotiated_rates":[{"provider_references":[418823,418824,418901,
419002,419118,419230,419884,420117,420553,421009,421887,422340,
423115,423998,424207,425663,426012,427745,428330,429104,430221],
"negotiated_prices":[{"negotiated_type":"negotiated",
"negotiated_rate":104.86,"expiration_date":"9999-12-31",
"service_code":["11","22"],"billing_class":"professional",
"billing_code_modifier":[]},{"negotiated_type":"derived",
"negotiated_rate":111.40,"expiration_date":"9999-12-31",
"service_code":["02"],"billing_class":"professional",
"billing_code_modifier":["95"]}]},{"provider_references":[431004,
431556,432219,433870,434112,435006,436221,437889,438003,439114,…1,099,527,395 bytes in this one fileWhat it says about you
One line. Read in about a minute.
The file above is a faithful excerpt of the real format. Everything hard about this product is in the gap between those two panels. How it works ↑
What you can do
Your rates, in one place, and watched.
CPT codes down the side, one column per payer, the negotiated dollar in each cell. The same visit can pay $104.86 at one payer and $137.16 at another. →
Underpayment checkUpload your allowed amounts by code. We compare each with the rate your payer published for you and show the codes allowed below it. Totals only, no patient data. →
Rate monitoringPayers republish monthly. Every refresh shows which rates moved, by how much, and when — so a quiet cut doesn’t slip past. →
Free rate lookupTwo a month with no account, ten with a free account. A payer and your NPI — get the published rates and the file they came from. The local Blue plan in 49 states and DC, plus UnitedHealthcare, Aetna, Cigna, Ambetter, Oscar and Medicare. →
Why this exists
You are the only one at the table negotiating blind.
Your payer knows exactly what it pays you. It also knows what it pays every practice in your county, your specialty, and your size bracket. You know one number: what lands in the bank.
So when the renewal letter arrives saying “rates unchanged for the coming year,” you have no way to know whether that is fair, generous, or an insult. You sign it, because what else is there to do.
In 2022 the federal government tried to fix exactly this. It worked — on paper.
The Transparency in Coverage rule forced every commercial payer to publish every negotiated rate, for every contracted provider, by NPI. The asymmetry was supposed to end that day. Instead the disclosure arrived as terabytes of machine-readable JSON, posted at URLs nobody circulated, in a format no practice could open. Compliance achieved. Nothing changed.
The information has been yours for four years. Nobody ever handed it to you. That is the whole of what we do — we read your payer’s file and tell you what is in it about you.
Fit
Built for a practice with no contracts person.
This is for you if
- You run 2–10 providers and nobody’s job title contains “contracting”
- You are renegotiating this year, or have been meaning to for three
- A renewal letter just landed saying rates are unchanged
- You have bounced off a competitor’s “request a demo” form
This is not for you if
- You are a health system with a revenue-cycle team and enterprise tools
- You need Medicaid or Medicare Advantage rates — neither is in the files we read
- You need every payer and every code in a data warehouse
- You want continuous automated claim monitoring — we work in batches, on purpose
Get started
Your rates, what you were paid, and what changed.
The Practice plan is $99 a month: your fee schedule across the payers you take, underpayment checks and rate monitoring, for unlimited teammates. Priced by specialties and locations, nothing per seat. Cancel anytime.
Live today across 66 payers: the local Blue plan in 49 states and DC, plus UnitedHealthcare, Aetna, Cigna, Ambetter, Oscar and Medicare.