Vendor detail: programs and per-franchisee participation
Opening a vendor from the Vendors page takes you into the vendor detail overlay. Most of that overlay is about the vendor itself, its Verinode Score, its cost distribution, its research evidence. T…
On this page
What this part of vendor detail shows
Opening a vendor from the Vendors page takes you into the vendor detail overlay. Most of that overlay is about the vendor itself, its Verinode Score, its cost distribution, its research evidence. Two pieces of it are about the network's relationship with the vendor instead: the Programs row, which tells you whether this vendor is on an HQ-approved procurement program and at what rate, and the Per-franchisee participation list, which shows, one row per franchisee, who is using this vendor, what they pay, and how they rate it.
Both pieces exist to answer a governance question, not a curiosity question: is this vendor formally under contract with HQ, and if so, is the network actually holding to the terms. This article documents exactly what each field means, where the numbers come from, and how the privacy boundary that runs through all of HQ applies to a list that, by its nature, is closer to individual franchisee data than almost anything else on the platform.
Where to find it
Open Vendors from the HQ sidebar at hq.verinode.ai/vendors. Click any vendor tile in any row (Top Vendors, Off Program, Rate Drift, Renegotiation Candidates, Broadest Network Footprint, or All Vendors). That opens the vendor detail overlay as a centered modal over the Vendors page; nothing navigates away, and closing the overlay returns you to your scroll position. A dedicated page at /franchise/vendors/[id] exists as a direct-link fallback (for bookmarks or links shared outside the app) and shows the same content.
Inside the overlay, Programs and Per-franchisee participation sit near the bottom, after the vendor's headline figures, cost distribution, and score breakdown. Programs is a horizontally scrolling tile row, the same row-and-tile pattern used everywhere on HQ. Per-franchisee participation is a plain list of rows underneath it, one row per franchisee, with no tile framing, hairline separators only.
Note
Neither section renders at all for a vendor that hasn't cleared HQ's network-wide privacy floor. See the "Aggregate-only view" section below, and hq-vendors-privacy-boundary for the full mechanics of that floor. Everything else in this article assumes you're looking at a vendor that has cleared it.
The Programs row
What it is. This row lists every HQ vendor-approval program this vendor currently belongs to. A program is something HQ publishes in Programs: a formal designation that a vendor is approved, preferred, or required for franchisees to use, optionally with a negotiated rate attached. A vendor can sit on more than one program at once, for example an older program that's since gone quiet alongside a newer active one, or two parallel programs run by different regions of the network. Each program gets its own tile; nothing is collapsed into a single row.
Reading a program tile. Each tile shows:
- Label (top-left, small caps): the qualification tier on that specific program: Approved, Preferred, or Required.
- Headline: the program's name, exactly as HQ named it when publishing it in Programs.
- Sub-line: the negotiated monthly rate captured on this program's terms for this vendor, formatted as a dollar figure per month, or "No rate set" when the program doesn't carry a negotiated rate for this vendor.
- Meta (top-right corner): the program's own status, in capitals: DRAFT, ACTIVE, SUNSET, or ARCHIVED.
The tile's accent color follows the qualification tier: Ember Red for Required, Deep Purple for Preferred, Deere Green for Approved. A tile for an active program renders at higher visual intensity than one for a draft, sunset, or archived program, so a program that's no longer live still shows up in the list (for historical context) but visually recedes next to the one that's actually in force.
Empty state. When this vendor isn't on any HQ vendor-approval program at all, the row shows a single tile instead: label "No program", headline "Off program", sub-line "This vendor isn't on an active HQ vendor-approval program," and meta "ACTION", a visual nudge that this is something HQ can choose to do something about, not a broken state.
The negotiated rate shown on a program tile is the same figure that feeds the Negotiated rate vs network median block higher up in the overlay and the network-wide Rate Drift row back on the Vendors page (see hq-vendors-rate-drift). When a vendor sits on more than one active program with different negotiated rates, HQ's rate-drift math holds the network to the strictest (lowest) of them, on the logic that the tightest rate HQ actually negotiated is the one the network should be paying.
Per-franchisee participation
What it is. A list of every franchisee in the network with an on-file relationship with this vendor, one row each, sorted by monthly spend from highest to lowest. This is the most granular view HQ ever gets of a vendor relationship: not a network total, not a median, an actual per-franchisee row. That's exactly why it's the section with the most privacy machinery wrapped around it, covered in the next section.
Reading a participation row. Each row shows:
- Franchisee name, bold, on the left. Whether this is a real name or an anonymized label depends on how your network is configured, see below.
- Billing detail, a smaller line underneath the name, combining the billing model (humanized into title case, for example "Flat Fee" or "Per Seat") and the billing frequency on file, joined with a middot. If neither is on file, this line reads "Relationship on file" instead.
- Spend / mo, right-aligned: the franchisee's monthly spend with this vendor, in dollars.
- Rating, right-aligned (hidden on narrow screens): the franchisee's own satisfaction rating for this vendor, one decimal, or an em-dash-free double hyphen placeholder when no rating is on file. Note this is that one franchisee's individual rating, not the network average shown higher up in the overlay.
- Score, right-aligned (hidden below tablet width): the franchisee's own Verinode Score reading for this vendor relationship, one decimal, or a dash placeholder when not available.
Empty state. When no franchisee relationships are on file yet for this vendor, the entire list is replaced with one line: "No active franchisee relationships on file yet for this vendor. Rows populate after the nightly aggregator runs." This is the normal state for a vendor that just crossed onto the Vendors page for the first time; participation catches up on the next nightly aggregation cycle, no action needed from HQ.
How anonymization and the aggregate boundary apply to this list
The Programs row and the per-franchisee participation list sit on opposite sides of HQ's privacy design, and it's worth being precise about which protection does what.
First gate: does this vendor's detail render at all. Before a vendor's Programs row or participation list can appear, the vendor has to clear a network-wide cohort check. HQ enforces a minimum number of distinct franchisees using a vendor before it will show any per-vendor detail for it, on the reasoning that a vendor used by too few franchisees would functionally expose a single franchisee's private spend and rating the moment any number attached to it. This check happens once, for the whole vendor, before you ever get to Programs or participation. The exact franchisee-count floor isn't published here (or anywhere in the product), by design, the same way peer-benchmark cohort sizes aren't published elsewhere on the platform: what you need to know is that it exists, that it protects a real identification risk, and that it clears itself as more franchisees adopt the same vendor.
If a vendor hasn't cleared that floor, the whole overlay stops at a single message and nothing past it renders, no headline figures, no cost distribution, no Programs row, no participation list:
Aggregate-only view. This vendor is currently used by too few franchisees in your network for HQ to see per-vendor detail. Per-vendor metrics are suppressed to protect operator privacy (single-franchisee identification risk).
Read this as the platform working as designed, not an error. The fix is network growth, more franchisees adopting the vendor, not a settings change on your end. Full mechanics of this gate, including exactly how it interacts with the Vendors page's rows, live in hq-vendors-privacy-boundary.
Second gate: whose name shows up once the list does render. Clearing the vendor-level floor above only unlocks the list. It says nothing about whether each row identifies a real franchisee by name. That's a separate control, tied to how your network is configured, not to how many franchisees happen to be in this particular vendor's list:
- In an independent operators network (the default posture for franchise and association networks, where each location is a separately owned business), every franchisee name in the participation list is replaced with a stable anonymized label instead of the real business name. The label is built from part of that franchisee's internal record so it stays consistent every time that same franchisee shows up, in this vendor's list or any other, without ever exposing which business it actually is.
- In a same entity network (a single legal entity operating multiple company-owned locations, with no separately owned franchisee to protect), real location names pass through unmasked, because there's no independent business whose privacy the label would be protecting.
This second gate is intentionally independent of list size. Clearing the vendor-level cohort floor means the list is safe to show at all; it doesn't change whether names inside that list are safe to show, so the name-masking rule applies uniformly across every vendor's participation list in an independent-operators network, not just the smaller ones.
Why two separate gates. The vendor-level floor protects against a franchisee being identified by elimination, "only one location uses this tool, so any number attached to it is that location's number." The name label protects the reverse case, once a list legitimately has several franchisees in it, from a name on a row being tied back to a specific business by anyone reading the page. Together they mean HQ can see the shape of network procurement (who pays what, who rates well, who's driving spend on a given vendor) without HQ ever being handed a lookup table from franchisee identity to franchisee numbers.
Heads up
Neither gate is something HQ toggles from this page. The network's entity model (independent operators vs. same entity) is set once by Verinode during onboarding, based on your network's actual ownership structure, and changed only after Verinode confirms with you that your structure supports it. There's no self-service switch on the Vendors page to unmask names or force a vendor's detail open early.
How to use this section
- 1Open a vendor from any row on the Vendors page. If it opens straight to the aggregate-only message, there's nothing more to see for that vendor yet, move on to a different one or come back once more locations have adopted it.
- 2Check the Programs row first. If it reads "Off program," this vendor has real network spend with no formal HQ agreement behind it, that's the compliance question. If a program tile shows "No rate set," HQ has designated the vendor but hasn't captured pricing terms, worth doing before comparing anyone's spend against a rate that doesn't exist yet.
- 3Scan Per-franchisee participation sorted by spend, the default order. The top rows are your biggest individual relationships with this vendor, the ones where a rate conversation moves the most money.
- 4Look at Rating and Score side by side with spend. A franchisee paying well above others on the list, with a rating that isn't higher to match, is the clearest single case for asking why that relationship costs what it does.
- 5If names read as "Franchisee #XXXX" rather than a real business name, that's expected for an independent-operators network. Use the label consistently, it stays the same for that franchisee across every vendor's participation list, so you can track a pattern across vendors without needing the real name.
Related reading
- hq-vendors-overview: the full Vendors page this detail view opens from, including Off Program and Rate Drift on the network-wide rollup
- hq-vendors-privacy-boundary: the full mechanics of the vendor-level cohort floor and the documented PII-read carve-out behind the Network team scores section
- hq-vendors-rate-drift: how negotiated rates from the Programs row feed the network-wide rate-drift math
- hq-programs: where vendor-approval programs, qualification tiers, and negotiated-rate terms are published in the first place
- vendor-detail-alternatives-and-compare: the Score deep-dive and Compare alternatives actions that sit in this same overlay's header
- hq-compliance: network-wide compliance posture across every program type, vendor and otherwise
Data sources
Data sources
- 1.the network data / the network data (vendor-approval program membership, qualification tier, negotiated rate). Your HQ team.
- 2.the network data (per-franchisee spend, billing detail, rating, and score for this vendor). Your network's franchisees.
- 3.the network data.entity_model (independent operators vs. same entity, drives name anonymization). Set by Verinode at onboarding.