TPA rates and line-item pricing benchmarks

The Benchmarks page carries two pricing surfaces that read your prices against the anonymized network, not just against yourself. The first, **TPA program rates**, shows the discount and fees you a…

9 min read·Updated July 11, 2026
On this page

What these pricing benchmarks show

The Benchmarks page carries two pricing surfaces that read your prices against the anonymized network, not just against yourself. The first, TPA program rates, shows the discount and fees you accept on each TPA program next to what peers on the same program accept. The second, Pricing (line-item peer intelligence), shows the per-line-item unit prices you get approved next to the cohort that bills the same work.

Both are peer benchmarks: your numbers sit against a k-anonymized network cohort. That is what makes them different from the Pricing tab on the Margin page, which is your own private cross-carrier comparison with no peer layer at all. If you want to see what one carrier pays you versus another for the same line, that is the cross-carrier Pricing view. If you want to see how your prices land against the wider network, you are in the right place.

Verinode is an independent data trust. Your own prices always show to you, the peer aggregates behind them are k-anonymized, peers are never named, and none of this is ever sold to carriers.

TPA program rates: what each TPA program costs you

Where to find it

Open Benchmarks from the sidebar and go to the Carriers & TPAs tab. The league table of carriers and TPAs leads. Below it sits the panel headed "What each TPA program costs you", one grouped block per TPA program you are on.

Each TPA you work with (your own program, named, because you are logged in) gets its own sub-heading. Under it, one row per rate term you have accepted on that program.

The rate terms

A TPA program's cost to you is not one number, it is a set of terms. Verinode reads them from the rate terms on file for each of your TPAs and labels each in plain language, never the raw field name:

  • Discount off price list, the percentage you knock off the price list to stay on the program.
  • Admin fee, a percentage administrative fee.
  • Referral fee, a percentage referral fee.
  • Flat fee per job, a flat dollar amount per job (this one reads in dollars, the rest read in percent).
  • Other terms, anything that does not fit the above.

For a discount-off-price-list term, the price-list basis is named only when it is worth naming. Xactimate is the basis on nearly every program, so appending it would be noise and is hidden. A non-default basis, Symbility or a Custom price list, is shown in parentheses after the label, for example "Discount off price list (Symbility)".

How to read a row

Each row compares two values on the same term:

  • Your accepted value, the discount or fee you are on. This is your own data, so it is never gated or blurred. You always see it.
  • The peer cohort value, the mean of that same term across other operators on the same TPA program. Lower is better on every one of these terms, a smaller discount and smaller fees keep more of the job with you, so the row scores that way.

Under a comparison, a sub-line reads "Cohort of N operators on this program." That N is the count of distinct operators standing behind the peer number. If the cohort is still thin it is marked "early signal, still forming" so you read it as a number that is settling, not a settled one. When the program or panel name is known it is appended too.

Note

The peer value is scarce network intelligence. On the Contributor (free) tier it is blurred behind the paywall, your own accepted value stays fully visible, because it is yours. Upgrading unblurs the peer comparison. The paywall is interaction-gated, not visibility-gated, so you see the full layout either way.

The k-anonymity floor

A peer number only appears once enough operators stand behind it. The TPA-rate cohort publishes at a floor of five real operators on the program, matching the network minimum for a national cohort. Below that floor the peer cell simply does not render, and you see your own value alone. Demo and tester accounts read a separate seeded demo cohort at a looser floor so the surface is not blank while you explore, they never mix with real operator data.

The entire TPA-rate surface is dark by default. It renders only when the TPA_RATE_BENCHMARK environment flag is set to on (Decision D in the TPA rate transparency work). This is competitive pricing data, and the gate is held closed pending a legal go-ahead. In the code, the section is passed an enabled prop and returns nothing at all when the flag is off:

  1. 1The page reads the flag with isTpaRateBenchmarkEnabled(), which is true only when TPA_RATE_BENCHMARK === "on".
  2. 2That value is passed to the section as enabled.
  3. 3The section renders nothing when enabled is false or when you have no rate comparisons on file. There is no partial or placeholder state, the whole panel is simply absent.

So if you do not see "What each TPA program costs you" on the Carriers & TPAs tab, either the flag is off in your environment or you have not entered any TPA rate terms yet.

Pricing: line-item peer intelligence

Where to find it

The Pricing section renders on the main Benchmarks page, below the tab content, as its own headed block. Unlike the TPA-rate panel, it is not behind the TPA_RATE_BENCHMARK flag, it is always on. It appears whenever there is at least one line to surface across its three lists, and is absent entirely when all three are empty.

Its subtitle states the one thing you must know to read it right: cohort medians reflect approved-as-billed prices, not list prices. Every peer number here is outcome-conditioned on lines that were approved as billed, so you are comparing what actually gets paid, not what people wrote down first.

The three columns

1. You leave money on the table. Canonicals where your approved-as-billed median sits at least 10% below the cohort's p50 (median), ranked by the annual dollars at stake. Each card shows the line name, an estimated ~$X/yr figure (the per-line gap multiplied by your annual volume on that line), then "Your median $X, cohort p50 $Y, Z% below," and a footer with the cohort size label and how many approved lines you billed in the last 12 months. This is where your prices are quietly running under the network on work you do a lot of.

2. You over-price the cohort. Canonicals where your median sits above the cohort's p75 (upper quartile), shown with a +X% premium over p75. The card frames this as a denial-vulnerability readout, "above the upper quartile, denial-risk surface for downstream review", and it never tells you to change a price. It is a heads-up about where a line is priced high enough that a reviewer may cut it, not advice.

3. Industry-wide cut zones. The canonicals with the highest cohort cut rate, regardless of whether you bill them. Each card reads "X% cut" with the approved-as-billed rate beside it and the note "Industry-wide pattern, not specific to your book." This column is operator-agnostic, a pure network benchmark of which line items the network tends to get cut on.

Tip

Read column 1 top-down, it is already ranked by dollars. A small per-unit gap on a line you bill constantly outweighs a wide gap on something rare, and the ~$X/yr figure has done that math for you.

How the comparison is built

The line-item benchmark reads your own approved lines and matches each to the network cohort on the same canonical service code:

  1. 1Read your line items from the last 365 days where the supplement disposition is approved, the unit price is above zero, and the line has been mapped to a canonical service code.
  2. 2Group them by canonical code and take your median unit price on each, so a single outlier estimate never sets your number.
  3. 3Require at least 3 of your own approved lines on a canonical before it is eligible, one or two lines is not a rate.
  4. 4Look up the cohort's p25 / p50 / p75, approval rate, and cut rate for that canonical from the network's line-item peer stats (outcome = approved).
  5. 5Pick the cohort scope: your state-and-size-band cohort when it has reached the "Observed" size (8+ operators), otherwise fall back to the national cohort. Either way, the cohort must clear the "Indicative" floor of 3 operators or the canonical is skipped.
  6. 6Compare your median against the cohort percentiles and place the canonical into the leave-money, over-price, or cut-zone list. Each list is capped at 10 rows.

The cohort-size label on each card comes straight from that operator count: Early signal (under 3), Indicative (3 to 7), Observed (8 to 19), or Verified (20 or more). It tells you how much weight the peer number carries.

Note

Demo and tester accounts read a separate demo cohort and real operators read only the real cohort. The two worlds never cross, so a seeded demo book never pollutes a real benchmark and vice versa.

Voice and independence

The Pricing lists narrate outcomes and never prescribe. Column 2 flags denial risk but does not tell you to drop a price, and no competitor or provider is ever named. A build-time check enforces that discipline against the code, so the copy cannot drift into advice. The peer numbers are anonymized network aggregates, never traceable to an operator, and never sold to carriers.

How this relates to the Margin Pricing view

Keep the three straight:

  • Margin, Pricing tab (cross-carrier pricing) is operator-private. It compares one line's unit price across your own carriers, Liberty versus USAA on the same dehumidifier rental. No peer layer, no cohort, nothing leaves your account.
  • Benchmarks, Carriers & TPAs, program rates compares the terms you accept on a TPA program against peers on that same program. Peer aggregates, k-anonymized, flag-gated pending legal.
  • Benchmarks, Pricing compares your approved-as-billed unit prices against the network cohort on the same canonical line. Peer aggregates, k-anonymized, always on.

The Margin view answers "who pays me more." These benchmarks answer "where do I stand against everyone else." For the wider benchmark surfaces, see the Benchmarks overview, the Carriers & TPAs benchmarks, and the materials benchmarks.

Empty states

  • No TPA program-rate panel at all. Either TPA_RATE_BENCHMARK is off in your environment, or you have not entered any TPA rate terms. The section renders nothing rather than an empty frame.
  • A rate row with no peer number. Your accepted value shows, but the cohort has not cleared the five-operator floor on that term, so no peer cell renders.
  • Pricing, "You leave money on the table" empty. "Nothing material to surface yet, a few more approved lines unlock this list."
  • Pricing, "You over-price the cohort" empty. "No canonicals are priced above the cohort's upper-quartile yet."
  • Pricing, "Industry-wide cut zones" empty. "Cohort cut data is still building, fills in as more outcomes land."
  • The whole Pricing section absent. All three lists are empty, so nothing renders. It reappears the moment one canonical qualifies.

Data sources

Data sources

  1. 1.Your accepted TPA program rate terms. Your business.
  2. 2.Your approved-as-billed line items (last 12 months). Your business.
  3. 3.Anonymized peer cohort rate and price statistics. Verinode network intelligence.

Every peer figure on these surfaces is a k-anonymized network aggregate. Peers are never named, your own values are yours alone, and as an independent data trust Verinode never sells operator pricing data to carriers.

Was this helpful?