Vendor detail: negotiated rate vs. network median

Inside a single vendor's detail overlay, a four-cell readout compares what HQ negotiated for that vendor against what the network is actually paying: **Negotiated**, **Network median**, **Overage**…

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

What this block is

Inside a single vendor's detail overlay, a four-cell readout compares what HQ negotiated for that vendor against what the network is actually paying: Negotiated, Network median, Overage, and Status. It only renders when the vendor has a captured negotiated rate on an active program. This is the per-vendor drill-in version of the same comparison the network-level Rate Drift row summarizes across every vendor at once, see Rate drift: the right vendor at the wrong price for that row. Here, the same math is shown for one vendor, with the exact dollar figures behind it and the programs and franchisees that feed it, all in one place.

Verinode does not renegotiate anything or contact the vendor. It reads the rate HQ captured on the program, compares it against what franchisees are actually paying, and shows you the gap. HQ decides whether to enforce the existing terms, go back to the vendor, or accept the variance.

Where to find it

Open Vendors from the HQ sidebar at hq.verinode.ai/vendors. Click any vendor tile (in Top Vendors, Rate Drift, or Off Program) to open that vendor's detail overlay, a modal that sits on top of the Vendors home rather than navigating away from it. The overlay's title bar shows the vendor's name.

Inside the overlay, content runs top to bottom in this order:

  1. The hero (logo, category, program status, Verinode Score)
  2. Headline KPIs (Annual spend, Franchisees using, Avg satisfaction)
  3. A Cost distribution section (Median / mo, p75 / mo, Network / mo)
  4. This block: "Negotiated rate vs network median"
  5. Verinode score breakdown, network team scores, Programs, and Per-franchisee participation

The negotiated-rate block sits directly below Cost distribution and above the Verinode score breakdown, because it is the natural next question once you've seen how much the network spends on this vendor: is that spend on the terms HQ agreed to.

What has to be true for this block to appear

The block is conditional on one thing only: a negotiated rate must be on file for this vendor on at least one active program. If no negotiated rate has been captured, this entire section is simply absent from the overlay, there is no placeholder or empty-state message for it specifically, the page just moves from Cost distribution straight to the score breakdown.

Capturing a negotiated rate today is a backend step on the program's approved-party record (program_approved_parties.terms.negotiated_monthly_cents), set up with your Verinode contact; a self-serve entry screen is on the roadmap. See Programs for how vendor-approval programs and their approved parties work.

There is a second, prior gate that applies to the whole overlay, not just this block: HQ's privacy boundary. If the vendor is used by too few franchisees for a per-vendor view to be safe to show, the overlay never gets far enough to render this block at all.

Note

In an independent operators network, HQ enforces a minimum-cohort rule: a vendor's detail overlay only opens in full once at least two franchisees use it. Below that, the overlay stops at a single message: "Aggregate-only view. This vendor is currently used by fewer than 2 franchisees in your network. Per-vendor metrics are suppressed to protect operator privacy (single-franchisee identification risk)." No headline KPIs, cost distribution, negotiated-rate block, score breakdown, or participation list render underneath that message. In a same entity network (company-owned, multi-location), there is no separately owned franchisee to protect, so this floor doesn't apply and every vendor's overlay opens in full regardless of location count. See The privacy boundary between HQ and franchisee data for the full mechanics.

What each of the four cells shows

  • Negotiated. The negotiated monthly rate captured on the program, as a dollar figure, with "per month" underneath. If the vendor sits on more than one active program with more than one negotiated rate, this is the strictest of them, the lowest negotiated monthly amount across all of that vendor's active programs in your group. That's a deliberate choice: it holds the network to the best deal on file, not an average of several.
  • Network median. The same median-monthly-spend-per-franchisee figure shown in the Cost distribution section just above this block, repeated here so the comparison sits side by side without you having to scroll back up. "Per month" underneath, matching the Negotiated cell's units.
  • Overage. The dollar gap between the network median and the negotiated rate (median minus negotiated), "per month" underneath. A positive overage (the network is paying more than negotiated) shows with a leading plus sign, for example +$180. When the network is paying at or below the negotiated rate, the figure has no plus sign and reads as the raw difference. This cell colors Ember Red when the vendor is in drift, and the platform's standard foreground color otherwise. It reads a dash when no median spend figure exists yet to compare.
  • Status. Either Drift (Ember Red) or On rate (Deere Green), with "vs negotiated terms" underneath. This is the same boolean the eyebrow line at the top of the overlay reflects, see below.

Tip

The eyebrow line directly under the vendor's logo, at the very top of the overlay, already tells you at a glance whether this vendor is in this state: it reads [Category] · [Program status], and appends "· Rate drift" in Ember Red whenever this vendor is drifting. The four-cell block further down is where you see the actual dollar figures behind that flag.

How Overage and Status are actually computed

The comparison is built from median monthly spend per franchisee, not the network's total spend. That distinction matters: a network total will always run past a single per-relationship negotiated rate once more than one franchisee uses the vendor, even with perfect compliance, because the total is the rate multiplied by however many franchisees pay it. The median is the one figure that reflects what a typical franchisee is actually paying, which is the only fair number to hold up against a single negotiated price.

The vendor is flagged as drifting (Status: Drift) when the network median exceeds the negotiated rate plus a tolerance cushion:

  • Each program can set its own tolerance percentage in its terms (tolerance_pct), covering normal per-region or per-job variance so the block doesn't flag every rate that runs a few dollars over.
  • If a program doesn't set its own tolerance, Verinode applies a default 10% cushion.
  • The threshold is negotiated rate × (1 + tolerance / 100). The vendor drifts once median spend exceeds that threshold, not the instant it ticks a dollar over the base negotiated figure.

Only a flat monthly negotiated rate is interpreted today; per-unit pricing and percent-off arrangements in a program's terms are not yet read into this comparison.

Note

The Overage figure itself is computed independently of the drift threshold, it's simply median minus negotiated. That means it's possible to see a small positive Overage alongside a Status: On rate read, when the median sits above the negotiated rate but still inside the tolerance cushion. Status answers "is this a problem," Overage answers "what's the exact gap," and they can disagree by design when the gap is inside tolerance.

Reading it alongside the rest of the overlay

Two other sections on the same overlay give this block context:

  • Programs (further down, a horizontal row of tiles) lists every active HQ vendor-approval program this vendor sits on, with its qualification tier (Approved, Preferred, or Required) and, on each program's own tile, that specific program's negotiated rate ("$X / mo negotiated") or "No rate set." If the vendor sits on multiple programs, the figure in the four-cell block above is the strictest across all of them, so it can be lower than what you see quoted on an individual program tile, that's expected, not a mismatch to chase down. When the vendor isn't on any active program, this row shows a single tile reading "Off program" with the sub-line "This vendor isn't on an active HQ vendor-approval program."
  • Per-franchisee participation (further down still) lists every franchisee using the vendor with their own monthly spend, rating, and Verinode Score. There is no per-franchisee breakdown of the negotiated-rate comparison itself, but this list is where you look to see the spread behind the median, whether the drift is a handful of outliers or the whole network running high.

How to use this block

If Status reads Drift: check the Programs row for which program(s) this vendor sits on and its qualification tier, then scan Per-franchisee participation to see whether a few franchisees are driving the median up or the whole network is running above terms. From there it's a leadership call: go back to the vendor to enforce the negotiated rate, tighten the program's terms, or accept the variance if it reflects a legitimate regional cost difference the tolerance wasn't sized for.

If Status reads On rate: the negotiated terms are holding for this vendor. No action needed here, though a small positive Overage inside tolerance is worth a glance if it's been trending upward across recoveries, before it crosses the threshold outright.

Empty states

  • No negotiated rate captured for this vendor. The block doesn't render at all, there is no placeholder message. The overlay goes straight from Cost distribution to the Verinode score breakdown.
  • Cohort not yet cleared. The whole overlay stops at the aggregate-only message quoted above; this block, along with everything else below the hero, never renders.
  • Negotiated rate captured, but no median spend on file yet. The Negotiated cell still shows its dollar figure; Overage shows a dash and Status defaults to On rate until franchisee spend data resolves a median to compare against.

Data sources

Data sources

  1. 1.Negotiated monthly rate and tolerance, captured on program terms. HQ program setup (program_approved_parties.terms).
  2. 2.Network median monthly spend per franchisee. Network aggregate rollup (the network data).
  3. 3.Per-franchisee spend, rating, and Verinode Score behind the median. Network aggregate, K-anonymity gated.
Was this helpful?