Platform

Reporting & Analytics

Findings deduped across every scanner. Live dashboards. Bidirectional Jira sync. One source of truth, not six tabs.

Schedule a Technical Demo →
Keygraph security analytics dashboard with vulnerability metrics over time

Triage once, track once, remediate once. Keygraph deduplicates findings across SAST, SCA, Secrets, IaC, Container, and pentest agents into a single canonical entry per vulnerability per repository. They surface on a live security dashboard and sync bidirectionally with Jira.

01 · Visibility

What we surface.

Live KPIs for current exposure. Trend charts for whether the team is getting ahead of risk or falling behind.

Live KPIs
Open findings by severity SLA breach count Mean time to remediation Findings by source · SAST / SCA / Secrets / Pentest / Container / IaC
Trend charts
Risk

Open findings over time by severity, whether overall risk posture is improving.

Velocity

New findings discovered per day vs. findings resolved per day.

SLA compliance

Percentage of open findings meeting remediation deadline over time.

MTTR

Whether the team is getting faster or slower at remediation.

Each trend chart includes drill-down by repo, team, severity, status, source, and assignee, backed by daily snapshots that preserve historical accuracy permanently for compliance and audit.

02 · Deduplication

One finding per vulnerability.

The same vulnerability picked up by SAST, SCA, Secrets, IaC, Container, and pentest agents merges into a single entry per repo, not seven duplicates fighting for attention.

How dedup works
Stage 01
Content hash, milliseconds, no LLM.

Each finding gets a stable content fingerprint built from rule, file path, function signature, code scope, and organization context. Whitespace normalization ignores formatting changes, so refactors don't break dedup.

Stage 02
LLM semantic fallback, cross-scanner.

On a hash miss, candidates pass through an LLM semantic comparison gated by a confidence threshold. The same logic links matches across scanners: a SAST finding and a pentest exploit describing the same root cause become one canonical entry, with the source scanners recorded so you can see who flagged it.

What you get
Human-readable IDs

Every canonical gets a unique ID (e.g., KG-000042) for reference across tools and teams.

Persistent triage

Assignment, risk acceptance, and resolution status survive refactors. The hash rolls forward when non-flagged code changes.

Auto-reopen

If a resolved finding reappears in a subsequent scan, it automatically reopens, including expired risk acceptances.

Risk acceptance with expiry

Temporarily accept known risks with an expiration date. Findings auto-reopen when the acceptance lapses.

Immutable audit trail

Every status transition is appended to finding_status_history with timestamp and author.

Jira
03 · Workflow

Jira sync.

Bidirectional sync between canonical findings and Jira issues. One click to create, automatic to update, resilient when tickets get deleted.

Outbound
Finding → Jira

One-click ticket creation from any canonical finding. The ticket carries title, severity, rule, and description, and Keygraph stores the ticket key, ID, and URL on the finding for round-trip sync.

Inbound
Jira → Finding

A sync worker polls every 15 minutes, refreshing status and assignee on linked findings. Broken links (deleted tickets) are detected and flagged in the integration health view.

Bidirectional
Resolution + reopen push

When a finding resolves in Keygraph, the linked Jira ticket transitions automatically, and reopens too if the finding resurfaces. An hourly sweep catches out-of-sync pairs.

One source of truth for every finding.

Schedule a demo and see canonical findings, dashboards, trend charts, and Jira sync running against your stack.