Program rates: what your network accepts on a TPA vs the industry cohort

A TPA (third-party administrator) doesn't just route claims, it sets the commercial terms a franchisee accepts to work its program: a discount conceded off the price list, an admin fee, a referral…

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

What this section is

A TPA (third-party administrator) doesn't just route claims, it sets the commercial terms a franchisee accepts to work its program: a discount conceded off the price list, an admin fee, a referral fee, or a flat fee per job. Those terms get negotiated office by office, usually without any way to know whether a given franchisee's deal is ordinary or a lot worse than what the rest of the industry accepts from the same TPA. Program rates is the section on a TPA's own detail page that closes that gap.

It reads what your franchisees have logged as their accepted rate for a given TPA, rolls that into a network average per rate type, and sets the average against an anonymized industry cohort, other operators outside your network working the same TPA. Lower is better on every rate type shown here: each one is something a franchisee gives up (a discount conceded, a fee paid), never something received. Where your network's ownership model allows it, a per-location breakdown sits underneath the average so leadership can see the spread behind it, not just the mean.

Program rates does not tell you what to do about a rate. It surfaces the comparison, your network's terms against the market, so leadership can decide whether a renegotiation conversation with that TPA is worth having. Verinode never sells this data to TPAs or carriers, and no peer operator behind the industry figure is ever named or identifiable.

Note

Program rates is one section on a TPA's detail page, alongside its billing volume, days to pay, and (inside the detail overlay) supplement pushback and line-item cuts. For the rest of that page, see Opening a TPA: the detail view and its Verinode Score.

Where to find it

Program rates lives only on a TPA's standalone detail page, not inside the quick-view overlay you get by clicking a tile.

  1. 1Open Accounts from the HQ sidebar (under the Revenue group). It lands on the Carriers pill at hq.verinode.ai/carriers.
  2. 2Click the TPAs pill (of Carriers · TPAs · Commercial) to reach hq.verinode.ai/tpas, the list of every TPA your network has worked with.
  3. 3Clicking a TPA tile on that page opens a quick-view modal overlay with billing, days to pay, and (once you have enough network history) supplement pushback and line-item cut detail. Program rates is not shown in that overlay.
  4. 4To reach Program rates, open the TPA's standalone page at hq.verinode.ai/tpas/[the TPA's id]. The fastest way there is HQ's global search (⌘K): type the TPA's name and its search result links straight to this page. A shared link, a bookmark, or a link pasted into a report or digest email lands here too.
  5. 5On that standalone page, scroll past the top row of tiles (Billed, Franchisees serving, Avg days to pay, Avg fee) and the Job volume & collection row underneath it. Program rates is the section directly below, followed by Per-franchisee participation.

A ← All TPAs link at the top of the page returns to the TPAs list.

Tip

If you're actively working the TPAs list and want supplement pushback or line-item cut detail alongside billing, open the TPA from a tile instead, that opens the fuller quick-view overlay. Come back to the standalone page specifically for Program rates.

The section header

The section opens with a small label, Program rates, and one line directly underneath: "What your network accepts on this TPA, against the industry cohort. Lower is better. Locations outside your network are never named." That second sentence is the whole privacy posture in one line, everything below is either your own network's data or an anonymized industry average.

One row per rate type

Below the header, one row appears for each distinct rate type your network has on file for this TPA. A TPA can carry more than one term at once, a price-list discount and a separate admin fee, for example, so you may see several rows stacked, each divided by a hairline.

Verinode recognizes five rate types, and every label is written as a plain description rather than a raw database term:

| Label on screen | What it means | |---|---| | Discount off price list | The percentage your franchisees concede off the standard price list (Xactimate, Symbility, or a custom list) to work this TPA's program. | | Admin fee | A percentage the TPA charges to administer the claim. | | Referral fee | A percentage paid for the TPA routing the job to your franchisee. | | Flat fee per job | A fixed dollar amount per claim, rather than a percentage. | | Other terms | Any rate term that doesn't fit the four kinds above. |

For a price-list discount, the label appends the price-list basis in parentheses only when it's something other than Xactimate or an unspecified basis, for example "Discount off price list (Symbility)" or "Discount off price list (Custom price list)." Xactimate is the default basis on nearly every program, so naming it on every row would just be noise, the label stays plain when that's what's in effect. Every other rate type shows its label with no basis suffix at all, basis only matters for the price-list discount.

The headline number

To the right of each label sits the bold headline figure: your network's average value for that rate type, with "network avg" underneath it in smaller type. Percentage rate types show as a plain percentage (for example "12%"); Flat fee per job shows as a dollar amount (for example "$85").

The detail line

Underneath the label and headline number, a line of small text carries up to three more pieces of information:

  • Locations reporting. How many of your own franchisees have logged a rate for this specific term, phrased as "1 location reporting" or "N locations reporting." This is always your network's real count, it is never suppressed or gated, since it's your own network's data. It is a different number from the "franchisees serving" count in the page header above the tiles, which counts every franchisee with jobs through this TPA, not just the ones who've logged a rate.
  • Range. When more than one location reports a value and those values differ, a range appears: "range 8%–15%" (or the dollar equivalent for a flat fee). This is your network's own spread, one office paying meaningfully more than another for the identical program. If every reporting location shows the same value, or only one location reports, the range is omitted, there's nothing to spread.
  • Industry comparison, in one of two forms, covered next.

The industry anchor

This is the piece that turns "here's what we accept" into "here's whether that's good." When Verinode's anonymized cross-operator cohort for this exact TPA, rate type, and price-list basis is large enough to publish safely, the line reads something like "industry 14% · 7 operators · below market" or "industry 9% · above market."

Reading each part:

  • The industry figure ("industry 14%") is the mean rate that anonymized cohort of operators outside your network accepts on this same TPA and rate type.
  • The operator count ("· 7 operators") is how many distinct operators contribute to that mean, so you can judge how settled the figure is. No individual operator behind that count is ever identifiable, and Verinode never discloses which operators, franchises, or regions make it up.
  • "below market" appears, colored green, when your network's average sits at or under the industry figure, meaning your network is accepting a better (lower) rate than the industry typically does. "above market" appears, colored red, when your network's average sits above the industry figure, meaning your network is paying more than the industry typically accepts.

If Verinode doesn't yet have a large enough anonymized cohort for this exact combination of TPA, rate type, and basis, the line reads "industry cohort still forming" instead of a number. That's not an error, it means too few operators outside your network have reported this exact combination yet for Verinode to publish a figure without risking exposing an individual contributor's own contract. Your network's own average, reporting count, and range are unaffected either way, those are your own data and always display in full.

Tip

"Below market" is good news on every rate type shown here, since each one is a cost your franchisees carry: a discount given away, a fee paid. A network average that reads below the industry figure means your franchisees are, on average, keeping more of the price list or paying a smaller fee than peers working the same TPA elsewhere. "Above market" is the one worth raising at your next TPA renewal or panel review.

By location: the per-location breakdown

Underneath the rate rows, a By location block breaks the same rate terms out franchisee by franchisee, when your network's ownership model allows it.

Whether this list renders at all depends on your network's entity model, the same setting that governs whether locations show up by name elsewhere in HQ:

  • Same entity networks (a multi-location enterprise or PE-backed roll-up where every location is legally the same business) see the full By location list: one row per franchisee per rate type, with the location's real name, the rate type label, the program name in parentheses when one is on file (for example "Admin fee (Storm Season 2026)"), and the location's own accepted value on the right.
  • Every other network model (a franchise system of independently owned locations, an association, a cooperative) sees this message instead of the list, exactly as written on screen: "Per-location rate detail is off for association and cooperative networks. Members keep their own pricing private. Only the network aggregate is shown." Members in these networks own their own pricing data. HQ still gets the network average, the reporting count, the range, and the industry comparison above, just not a name-by-name breakdown.

How to use it

Start with the industry comparison color on each rate row. A red "above market" tag on a heavily used TPA is the fastest signal that your network is leaving money on the table relative to what the rest of the industry accepts from the same administrator, worth a direct renegotiation conversation.

Then check the range in the detail line, or the full By location list for same-entity networks. A wide spread between your best- and worst-negotiated location on the identical TPA and rate type is a coaching opportunity: your best location's rate is proof of what's achievable inside your own network, and it's a template to hand to the locations paying more.

For association and cooperative networks where the per-location view is withheld, the network average is still the useful lever: an "above market" network average is a case for negotiating a better group-wide program on members' behalf, even without seeing whose individual rate is dragging the average down.

Empty states

  • No Program rates section at all. If Verinode hasn't turned the flag-gated surface on for your account, or your network has no rate terms on file for a given TPA across any of the five rate types, the section doesn't render below the Job volume & collection row, there is no placeholder or "coming soon" banner.
  • "industry cohort still forming." Shown per rate row when Verinode has a rate on file from your network but the anonymized peer cohort for that exact TPA, rate type, and basis hasn't cleared yet. Your network's own average, reporting count, and range still display in full.
  • Range omitted. When only one location reports a rate for a term, or every reporting location reports the identical value, the range segment simply doesn't appear in that row's detail line.
  • "Per-location rate detail is off for association and cooperative networks…" Shown in place of the By location list for any network that isn't in same-entity mode. This is a permanent state for that ownership model, not a data-maturity gap, more rate data flowing in will not change it.
  • Whole TPA in aggregate-only view. If this TPA is served by too few of your own franchisees for your network's entity model to safely show per-TPA detail, the entire standalone page collapses to a single message and Program rates never loads at all. See Opening a TPA: the detail view and its Verinode Score for that guard.

Best-practice example

Say you search a national TPA and land on its standalone page. Program rates shows two rows: Discount off price list at 11% network avg, "6 locations reporting," "range 8%–14%," and "industry 13% · 9 operators · below market" in green, and Admin fee at 4.5% network avg, "6 locations reporting," no range shown (every location reports the same figure), and "industry 3.1% · 9 operators · above market" in red. Your network is beating the industry on the price-list discount but paying a heavier, and uniform, admin fee than peers. Since this is a same-entity network, the By location list confirms the price-list discount spread: your best-negotiated location sits at 8%, two others at 14%. The read: bring the 8% rate to the locations at 14% as a template, and raise the admin fee specifically at the next program review, since every location is carrying it equally, it's a program-level term, not one office's weak negotiation.

Data sources

Data sources

  1. 1.Your franchisees' accepted TPA rate terms. Your network (logged in each location's Verinode IQ account, rolled up nightly).
  2. 2.Anonymized cross-operator industry rate cohort. Verinode intelligence layer.
Was this helpful?