Recent and Resolved rows

Signals is the HQ page that surfaces cross-network patterns as soon as the nightly aggregator detects them (see [Signals: your network's early-warning feed](/help/hq-signals-overview) for the full…

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

What these two rows are

Signals is the HQ page that surfaces cross-network patterns as soon as the nightly aggregator detects them (see Signals: your network's early-warning feed for the full page). Two of its five rows are built around time rather than severity: Recent, everything detected in the last 7 days, and Resolved, everything closed out in the last 30 days. Where the Critical & High row and the By Domain row answer "what needs attention right now," Recent and Resolved answer a different question: "what changed, and when." This article covers those two rows in detail, plus the read window and status logic that feeds both of them.

Where to find it

Open Feed from the HQ sidebar at hq.verinode.ai/signals. Recent is the fourth row down the page, Resolved is the fifth and last. Both sit below the hero panel, Critical & High Severity, and By Domain. Click any tile in either row and the same right-side detail panel opens that every other signal tile on the page uses.

The 90-day read window

Every row on the Signals page is built from one query: the last 90 days of the network data rows for your network, open and resolved together, sorted newest-detected first. Recent and Resolved don't run their own separate queries against the database, they slice that same 90-day pull down further:

  • Recent keeps every row (any status) whose detected_at falls in the last 7 days.
  • Resolved keeps every row whose status is resolved, whose resolved_at is set, and whose resolved_at falls in the last 30 days.

Everything else on the page, the hero panel's counts, the Critical & High row, and the By Domain grouping, only looks at rows still open (status new or seen) and isn't time-boxed within that 90-day pull at all. An open critical signal detected 60 days ago still counts toward the hero's open total and still shows in Critical & High; it simply won't appear in Recent, because Recent only looks back 7 days from today.

Heads up

The 90-day window is a hard cutoff, not a rolling archive. A signal that has been sitting open for more than 90 days without being resolved or dismissed drops out of the query entirely, it disappears from the hero counts, Critical & High, By Domain, and both Recent and Resolved, because none of them ever see it again. In practice this shouldn't happen: a genuine network pattern either gets resolved as the underlying cause clears, or gets dismissed by whoever reviewed it. But if a stale open signal ever seems to have quietly vanished from the page, this is why, check with Verinode support rather than assuming the underlying pattern cleared on its own.

The Recent row

What it is. Every signal detected in the last 7 days, most recently detected first, up to 8 tiles. Unlike Recent's name might suggest, this row is not limited to signals that are still open, a signal that fired and was resolved within the same week shows up here too, sitting alongside signals that are still open. Recent is your "what changed this week" list: it catches a new pattern before it necessarily rises into Critical & High, and it's the only row on the page that shows you a signal's entire lifecycle, from fresh detection to same-week resolution, in one place.

What each tile shows.

  • A severity label (Critical, High, Medium, or Low) in the tile's top-left, colored Ember Red for Critical/High and Hard Hat Yellow for Medium.
  • The signal's title as the tile headline, in plain language.
  • A subtitle showing the signal's domain (Margin, Cash, Carrier, Team, and so on; domain labels are humanized, and the operator "growth" domain reads as "Sales & Marketing" here to avoid confusion with franchise-network Recruit & Grow activity).
  • A meta line giving how long ago it was detected: "today," "yesterday," "Nd ago" for 2 to 6 days.

Recent tiles are the standard, single-width tile size, plainer than the Critical & High row's wider tiles: there's no coverage dot-grid, no affected-count subtitle, and no domain icon here. Click a tile to open the full detail panel, where you get the affected-member count, network reach, and the rest of the drill-down.

Empty state. When nothing has been detected in the last 7 days, the row reads:

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

The Resolved row

What it is. Every signal resolved in the last 30 days, most recently resolved first, up to 8 tiles, in the green Expand accent. This is where you confirm a pattern actually cleared, useful after you've made a network-level change (a new vendor rate card, an updated process template, a carrier escalation) and want to see the effect show up as signals closing out rather than piling up in Critical & High.

What each tile shows.

  • A fixed "Resolved" label in green (Expand accent), replacing the severity label entirely, once a signal resolves, its original severity no longer shows on the tile (open the detail panel if you need to see what severity it fired at).
  • The signal's title as the tile headline.
  • A subtitle showing the signal's domain, same humanized labels as the Recent row.
  • A meta line giving how long ago it resolved, using the same "today / yesterday / Nd ago / Nw ago / Nmo ago" relative format as the rest of the page.

How this ties to the hero panel. The hero panel's third secondary number, "Resolved 30d," subtitled "Closed in the last month," is the full count behind this row, not just the 8 tiles you can see. If your network resolved 12 signals in the last 30 days, the hero reads 12, but the Resolved row itself only ever shows the 8 most recent as tiles. Treat the hero number as the total and the row as a recent sample, not a complete list.

Empty state. When nothing has resolved in the last 30 days, the row reads:

"No signals resolved in the last 30 days."

How open vs. resolved status is derived

Every signal carries one status: new, seen, resolved, or dismissed. That single field is what every row on the page reads to decide where a signal belongs:

  • Open (counted in the hero's total, Critical & High, and By Domain) means status is new or seen. A signal starts life as new; nothing on this page distinguishes new from seen visually, both read as simply "open."
  • Resolved (counted in the Resolved row and the hero's Resolved 30d number) means status is resolved and resolved_at is set and that resolution date falls inside the last 30 days. All three have to be true.
  • Dismissed signals, closed out without being confirmed as resolved, are not counted as open and don't appear in Critical & High, By Domain, or the hero's open total. They also never appear in the Resolved row, dismissed is not the same status as resolved, and this page has no row dedicated to dismissed signals. A dismissed signal can still surface once, in the Recent row, if it was detected within the last 7 days, since Recent looks at detection date regardless of status. Once it ages past 7 days, a dismissed signal disappears from every row on the page.

In short: Recent is detection-driven and status-agnostic (it shows anything, in any state, detected this week), while every other row, including Resolved, is status-driven. That asymmetry is deliberate, it's what lets Recent double as your single "what happened this week" view, whatever the outcome.

Reading Recent and Resolved together

Because Recent looks at detection date and Resolved looks at resolution date, a signal that both fires and clears inside the same week shows up in both rows at once, once under its severity label in Recent, once again under the green Resolved label lower on the page. That overlap is the fastest confirmation on this page that something got fixed quickly: if you made a network-level change on Monday and by Thursday the signal it was meant to address shows up in Resolved while also still sitting fresh in Recent, that's the loop closing in the same week you acted.

The reverse case matters too. A signal in Recent that is not also in Resolved is either still open (check Critical & High or By Domain for it) or was dismissed rather than confirmed fixed. If you expected a change to resolve a pattern and it's showing in Recent without a matching Resolved tile, the underlying cause likely hasn't cleared yet.

  1. 1Open Feed from the HQ sidebar and scroll to Recent for a plain "what changed this week" list, regardless of outcome.
  2. 2For anything in Recent that looks concerning, click through to the detail panel to check whether it's still open or already resolved.
  3. 3Scroll to Resolved to confirm which patterns actually cleared in the last 30 days, and compare that count against the hero panel's Resolved 30d number if you want the full total.
  4. 4After making a network-level change (a program update, a vendor renegotiation, a carrier escalation), revisit both rows over the following week or two to see whether the pattern you targeted shows up as resolved rather than staying open.
  5. 5If a signal you expect to have cleared is missing from both Critical & High and Resolved, remember the 90-day cutoff, a very old, still-open signal can age out of the query entirely.

Tip

Resolved tiles drop the original severity label in favor of a flat green "Resolved," so if you want to know how severe a resolved signal was when it fired, that detail only lives inside the detail panel, not on the tile itself.

Note

Neither row exposes any single franchisee's private numbers. Both show pattern-level detail only, title, domain, timing, and (inside the detail panel) the anonymized list of which members were affected. See Network health for the aggregate-only boundary that holds across every row on this page.

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 inside the detail panel. Your network's member roster.
Was this helpful?