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**…
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:
- The hero (logo, category, program status, Verinode Score)
- Headline KPIs (Annual spend, Franchisees using, Avg satisfaction)
- A Cost distribution section (Median / mo, p75 / mo, Network / mo)
- This block: "Negotiated rate vs network median"
- 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.
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.
Related reading
- Rate drift: the right vendor at the wrong price, the network-level row this block is the per-vendor drill-in for.
- Vendors: your network's spend and procurement leverage, in aggregate, for how the Vendors home page around this overlay is laid out.
- The privacy boundary between HQ and franchisee data, for the K-anonymity cohort floor in full.
- Programs, for how vendor-approval programs, qualification tiers, and negotiated-rate terms are set up.
- Off program: vendors outside HQ's approved list, for the companion signal about vendor identity rather than price.
- Comparing vendors side by side, for the Compare alternatives action available from the same overlay.
Data sources
Data sources
- 1.Negotiated monthly rate and tolerance, captured on program terms. HQ program setup (program_approved_parties.terms).
- 2.Network median monthly spend per franchisee. Network aggregate rollup (the network data).
- 3.Per-franchisee spend, rating, and Verinode Score behind the median. Network aggregate, K-anonymity gated.