Findings — filter and navigate
The Findings page (/{tenant}/findings) is where every signal-emitted finding lands — one row per (signal × entity × time-bucket). For a tenant with dozens of signals and tens of thousands of findings, the table is too long to scan; what you need is the right slice.
This guide walks through the four ways to slice it.
Filter 1 — Severity
Section titled “Filter 1 — Severity”The four severity cards at the top double as filters. Click High and the table filters to high-severity findings. Click it again to clear.
| Card | URL becomes |
|---|---|
Total findings | (no filter — clears severity) |
High | ?severity=high |
Medium | ?severity=medium |
Low | ?severity=low |
Severity has been around since signals shipped. It’s the discrete-band view: “how bad?” mapped onto three labels.
Filter 2 — Polarity (new)
Section titled “Filter 2 — Polarity (new)”Right below the severity row, three pills:
| Pill | Means | Filters to |
|---|---|---|
▼ Risk | Negative-polarity findings — anomalies, gaps, problems | polarity = negative |
▲ Opportunity | Positive-polarity findings — strengths, healthy patterns, stability | polarity = positive |
● Neutral | Neutral findings — counts, classifications, no judgement | polarity = neutral |
Polarity is a different axis from severity. Severity says how bad; polarity says what kind:
| Negative | Positive | Neutral | |
|---|---|---|---|
| High severity | A material is leaking CHF 250K — urgent risk | A material has nearly perfect price stability — strong signal | A high-volume material with many active suppliers — informative count |
| Low severity | A minor catalogue typo — small risk | Marginal stability — weak positive signal | A small enumeration — minor count |
Click ▲ Opportunity to see only the strengths. Click again to clear. Toggle freely.
Filter 3 — Click any signal in the breakdown
Section titled “Filter 3 — Click any signal in the breakdown”The “Total money at risk — Signal” section lists every signal with its exposure total. Click any row to filter the table below to that signal’s findings.
The active signal gets:
- A primary-coloured ring around its row
- A small
filteringpill next to the signal name
Clicking the active signal again clears the filter. URL updates ?signal=signal_negative_margin.
The small → arrow on the right of each row navigates to the per-signal detail page (/findings/{signal_id}) without toggling the filter — a stopPropagation lets you drill in without leaving the filtered view.
Filter 4 — Search
Section titled “Filter 4 — Search”The search box accepts six progressive levels of grammar. Two examples that complement the pills above:
| Search | What it does |
|---|---|
26509 | Free-text match across entity_id, signal_id, entity_type, time_bucket |
!signal_id:negative_margin | Exact signal-id match (alternative to clicking the breakdown) |
!polarity:positive | Same as the ▲ Opportunity pill, in text form |
!score:90 | Findings whose score equals 90 (other operators: >, <, >=, <= — see Search Grammar) |
!direction:improving | Trend-aware filter (when direction is populated) |
See the Search Grammar guide for the full syntax.
Composing filters
Section titled “Composing filters”Every filter goes into URL search params. They compose freely:
?severity=high # one filter?severity=high&polarity=negative # two filters?severity=high&polarity=negative&signal=... # three filters?severity=high&polarity=negative&signal=...&q=... # four filtersFilters are AND’d: each one further narrows the table. A filter is active when its UI element shows the active state (border, ring, “filtering” pill). The “Clear filters” link in the polarity row appears whenever at least one filter is active and clears all of them in a single click.
URL persistence
Section titled “URL persistence”Because every filter lives in the URL:
- Refresh holds the view
- Browser back undoes the last filter change
- Bookmark the URL → saved filtered view
- Share the URL → teammate sees the same slice
- Restore later by reopening any URL with filters
This is the same pattern jinflow uses everywhere (see JinDesk Page Design Principles — “URL is the source of truth”).
Visual cue cheat sheet
Section titled “Visual cue cheat sheet”| What you see | What it means |
|---|---|
| Severity card with primary border | this severity is the active filter |
| Polarity pill with thick coloured border | this polarity is the active filter |
Signal row with ring + filtering pill | this signal is the active filter |
Clear filters link visible | at least one filter is active — click to wipe all |
Table row’s ▼ ▲ ● ScoreBadge | finding’s polarity coloured per the Score system |
A worked example
Section titled “A worked example”You want to find materials where pricing is stable enough to anchor a contract renegotiation:
- Open
/hrcentral.vai/findings - Click
▲ Opportunity— table filters to positive-polarity findings - Sort by
Scoredescending — the most stable materials surface first - Click any row to see the finding detail with
out_mean_price,out_coefficient_of_variation,out_observation_count
Or from the other direction — you’ve heard a particular signal is misbehaving:
- Open
/hrcentral.vai/findings - Find
signal_negative_marginin the breakdown list, click it - Filter active. Now sort by
Money at riskdescending — top-impact entities for that one signal - Add severity =
highfor the urgent subset
Or to investigate composition:
?severity=high&polarity=negative— high-impact risks only- Read the entities. Sort by money_at_risk. The top of this list is your week.
Related
Section titled “Related”- JinDesk Guide — navigation, JumpBar, keyboard shortcuts
- Search Grammar — the six progressive levels
- The jinflow — why findings sit at the meeting point of Observations, Knowledge, and Data
- Finding Explainer — the four levels of detail on a single finding