Signals: your network's early-warning feed

A single franchisee having a bad month is normal. A pattern showing up across a meaningful share of your network at the same time is not, it's a signal that something structural is happening: a car…

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

What Signals is

A single franchisee having a bad month is normal. A pattern showing up across a meaningful share of your network at the same time is not, it's a signal that something structural is happening: a carrier changing behavior, a cost pressure hitting everyone at once, a process step that's stalling network-wide. Signals is the HQ page that surfaces those cross-network patterns as soon as the aggregator detects them, so you find out from Verinode instead of from a string of one-off calls from members.

Signals never shows you one franchisee's private numbers. It shows you that a pattern fired, how many members it touched, how severe it is, and when it appeared or cleared. Verinode surfaces the pattern; what you do with it, whether that's a network memo, a program change, or a call to the affected members, is your call.

Where to find it

Open Feed from the HQ sidebar at hq.verinode.ai/signals. The page is a straight vertical feed, five rows stacked top to bottom, no tabs. Click any signal tile anywhere on the page and a detail panel slides in from the right with the full picture.

How a signal gets here

Signals are written by a nightly aggregation job that scans every active member's operator-level data for shared patterns, the same signal types (margin pressure, carrier slowdowns, cost drift, process stalls, and so on) that show up on an individual operator's own Verinode IQ feed. When enough active members trip the same signal type within the same severity band in a given window, the aggregator writes one row to the network signal table: a title, a domain, a severity, and how many members it hit out of how many were eligible.

The exact share of the network required before a signal fires is a deliberately unpublished trip-wire, described qualitatively in the detail panel as a "fire threshold." Verinode doesn't publish the specific member-count math here for the same reason cohort sizes stay unpublished on Benchmarks: a threshold you can see is a threshold you can game, and a signal must represent a genuine cross-network pattern, not a low bar for a small handful of your worst-week members to be misread as a network trend.

The five rows

Row 1: the hero panel

At the top, a large headline number under the eyebrow "Network signals": your total count of currently open signals. Under the headline, a pill on the right reads either "N domains" (how many distinct domains, like Margin, Cash, or Carrier, have at least one open signal right now) or "All clear" when nothing is open.

Below the headline, a one-line summary of the open count by severity: for example, "1 critical · 2 high · 0 medium · 3 low." When there are zero open signals, that line is replaced with the empty-state sentence:

"No open network-level signals. The aggregator surfaces a signal here when a meaningful share of active members hit the same pattern within a severity threshold."

Three secondary numbers sit beside the headline:

  • Critical, the count of open critical-severity signals, subtitled "Open critical signals."
  • High + Medium, the combined count of open high- and medium-severity signals, subtitled "Open elevated signals."
  • Resolved 30d, how many signals closed out in the last 30 days, subtitled "Closed in the last month."

Each of these three carries its own color: red-toned when the count is above zero and something needs attention, green-toned when it's clear. The hero panel is a summary only, it isn't clickable into a filtered list; use the rows below for that.

Row 2: Critical & High Severity

Every open signal at critical or high severity, most severe and most recent first, up to eight tiles. Each tile shows:

  • A severity label (Critical or High) in the top-left, in Ember Red.
  • The signal's title as the tile headline, in plain language (for example, "Carrier X paying slower than usual across the network").
  • A subtitle reading "N of M franchisees affected" when the aggregator captured both counts, or the domain name (Margin, Cash, Carrier, and so on) when it didn't.
  • A "Detected Nd ago" (or "today," "yesterday," "Nw ago," "Nmo ago") meta line.
  • A domain-appropriate icon in the tile header (a dollar-sign glyph for cash and margin signals, a shield for carrier and risk signals, and so on).
  • A small coverage visual, a dot grid where each dot is one eligible member, with the affected members lit up in the signal's severity color, plus a caption reading "N of M · X%". This is the same evidence Verinode uses to decide the signal fired at all: how much of the network it actually touched.

Click any tile to open its detail panel (see below). When nothing is open at critical or high severity, the row reads:

"No critical or high-severity signals currently open across the network."

Row 3: By Domain

Every domain (Margin, Cash, Carrier, Client, Team, Process, and so on) that has at least one open signal, one tile per domain, sorted by the domain's worst open severity first. Each tile shows:

  • A severity label for the domain's single worst open signal (its "top severity").
  • The domain name as the headline (labels are humanized, for instance the operator "growth" domain reads as "Sales & Marketing" on HQ surfaces to avoid confusion with franchise-network Recruit & Grow activity).
  • A subtitle reading "N open signal(s)".

This row is a map of where pressure is concentrated across your network right now, not a drill-in. Clicking a domain tile doesn't currently open a filtered list (a per-domain filtered view is planned for a future signal-deck expansion); the row's job today is to tell you at a glance whether this week's pressure is a Margin week, a Carrier week, or spread everywhere. When no domains have open signals, the row reads:

"No open signals to group by domain."

Row 4: Recent

Every signal, open or already resolved, detected in the last 7 days, most recent first, up to eight tiles. Each tile shows its severity label, title, domain as the subtitle, and how long ago it was detected. This is your "what changed this week" list, it catches new signals before they necessarily rise into the Critical & High row, and lets you see a signal that fired and resolved within the same week. Click through to the same detail panel. Empty state:

"No new signals detected in the last 7 days."

Row 5: Resolved

Every signal resolved in the last 30 days, most recently resolved first, up to eight tiles. Each tile carries a "Resolved" label in green, the signal's title, its domain as the subtitle, and how long ago it resolved. This is where you confirm a pattern actually cleared, useful when you've made a network-level change (a new vendor rate card, an updated process template, a carrier escalation) and want to see it reflected as signals closing out rather than piling up. Empty state:

"No signals resolved in the last 30 days."

Inside the detail panel

Clicking any signal tile, in any row, opens the same right-side detail panel (a full re-fetch loads the richer drill payload; the panel starts from what the tile already had so it never renders empty while that finishes). The panel shows, top to bottom:

  • Header chips: severity (Critical / High / Medium / Low), domain, and status (New, Seen, or Resolved).
  • Body text, the plain-language explanation of the pattern, when the aggregator wrote one.
  • A four-number reach grid:

- Affected, the raw count of members the pattern hit, with "of M franchisees" beneath it. - Network reach, that count as a percentage of eligible active members. - Fire threshold, the minimum share of the network required before this pattern trips into a signal, shown as a percentage. - Detected, the full detection timestamp, with a resolved timestamp beneath it once the signal has closed.

  • Affected franchisees, a list of the specific members the pattern touched, each with an "Open profile →" link into that member's franchisee record. How a name renders here depends on your network's entity model, set under Settings: in independent_operators mode (the default for new networks), each row is anonymized to a stable label like "Franchisee #4F1A" derived from that member's ID, never their real business name; in same_entity mode (company-owned locations under one legal entity), the real location name passes through. If the signal predates the per-franchisee roster capture, the panel explains instead: "This signal predates the per-franchisee roster capture (2026-05-24). The next nightly aggregator run will populate the list; until then only the affected count is recorded." If the roster genuinely has none recorded, it reads "No affected franchisees recorded."
  • Sample signal, when the aggregator captured one, a representative example of the underlying pattern at the operator level, shown as a labeled excerpt with the raw evidence beneath it. This is the "for instance" that makes an abstract network pattern concrete.
  • Signal type, the raw internal type code, shown at the very bottom for reference when you need to describe the pattern precisely to Verinode support or in a network communication.

Note

The affected-franchisee list names which members hit the pattern and lets you open their profile, but it never shows you the private numbers behind why. A "Carrier X paying slower than usual" signal tells you five members are affected and lets you open their profiles to check in, it does not hand you their invoice ledgers or cash positions. That data stays theirs. See Network privacy and the aggregation boundary for how HQ's aggregate-only view holds throughout the platform.

How to use it

Read Signals like a morning briefing, not an inbox to clear. Start at the hero panel for the day's overall temperature (all clear, or N domains under pressure), scan Critical & High for anything that needs same-day attention, then check By Domain to see whether pressure is concentrated in one area or spread thin. Recent catches new patterns before they escalate; Resolved confirms the changes you made upstream, a program update, a vendor renegotiation, a carrier escalation, actually worked.

A signal is a starting point for a conversation, not a verdict. Verinode surfaces the pattern and the members it touched; deciding whether it's worth a network memo, a program change, or a direct call to the affected members is a leadership decision Verinode never makes for you.

  1. 1Open Feed from the HQ sidebar and read the hero panel's severity breakdown for the day.
  2. 2Scan Critical & High Severity for anything needing same-day attention; click a tile to open the detail panel.
  3. 3In the detail panel, check Network reach against the Fire threshold to gauge how far past the trip-wire the pattern has spread.
  4. 4Open the Affected franchisees list and click through to a member's profile if a direct check-in is warranted.
  5. 5Check By Domain to see whether this week's pressure is concentrated or spread across the network.
  6. 6Revisit Resolved after making a network-level change to confirm the pattern actually cleared.

Tip

A signal moving from Critical & High into Resolved within the same week, visible by comparing the Recent and Resolved rows, is a fast way to confirm a fix landed before you'd otherwise hear about it secondhand.

Heads up

The "N of M franchisees affected" number is a count, not a name-and-shame list dropped in the open. Names only appear inside the detail panel's Affected franchisees list, and even there they're anonymized unless your network is configured in same_entity mode. Don't read a domain or severity tile as calling out a specific member without opening the panel to check.

  • HQ overview: how the sidebar, feed, and network summary fit together.
  • Network health: the aggregate-only privacy boundary this page depends on.
  • HQ benchmarks: the cohort-comparison counterpart to Signals' pattern-detection feed.
  • HQ programs: where a signal-driven insight often turns into a network-wide initiative.
  • HQ standards: compliance-side patterns that surface alongside operational signals.
  • HQ compliance: the compliance-specific view of network-wide patterns.
  • HQ report library: where to export a signal's underlying pattern for a board or council update.
  • Broadcasting to your network: turning a signal into a message to affected members.

Data sources

Data sources

  1. 1.the network data, written nightly by the HQ aggregate-refresh cron. Your network's operator data, aggregated.
  2. 2.the network data, for affected-franchisee name resolution. Your network's member roster.
Was this helpful?