Risk Scoring Model
RhythmX uses a 7-factor weighted risk model to calculate a single 0–100 integer risk score for every actor (user, host, or IP) in the environment. The score drives risk tiering, SLA targets, incident creation, and automated ticket escalation — ensuring that the most dangerous threats surface first.
How Risk Scoring Works
flowchart TD
LR["<b>LogRhythm SIEM</b><br><i>Alarms</i>"] --> ACS["<b>Actor Cache Sync</b><br><i>Periodic recalculation</i>"]
SIG["<b>RhythmX Engine</b><br><i>RhythmX Rules + Correlation</i>"] --> ACS
ACS --> TC["<b>Threat Cases</b><br>30%"]
ACS --> SA["<b>RhythmX Alerts</b><br>20%"]
ACS --> VOL["<b>Volume</b><br>10%"]
ACS --> VEL["<b>Velocity</b><br>10%"]
ACS --> DIV["<b>Diversity</b><br>10%"]
ACS --> MIT["<b>MITRE ATT&CK</b><br>10%"]
ACS --> REC["<b>Recency</b><br>10%"]
TC --> FS["<b>Final Risk Score</b><br>0 – 100"]
SA --> FS
VOL --> FS
VEL --> FS
DIV --> FS
MIT --> FS
REC --> FS
FS --> RL["<b>Risk Level</b><br>Critical · High · Medium · Low"]
style LR fill:#0d47a1,stroke:#42a5f5,color:#fff
style SIG fill:#7b1fa2,stroke:#ce93d8,color:#fff
style ACS fill:#1a237e,stroke:#534bae,color:#fff
style TC fill:#b71c1c,stroke:#ef5350,color:#fff
style SA fill:#c62828,stroke:#ef9a9a,color:#fff
style VOL fill:#e65100,stroke:#ff9800,color:#fff
style VEL fill:#ef6c00,stroke:#ffb74d,color:#fff
style DIV fill:#f57f17,stroke:#ffee58,color:#fff
style MIT fill:#00695c,stroke:#4db6ac,color:#fff
style REC fill:#00838f,stroke:#4dd0e1,color:#fff
style FS fill:#880e4f,stroke:#f06292,color:#fff
style RL fill:#1b5e20,stroke:#66bb6a,color:#fff
Score Formula
Each factor produces a 0–100 component score, then all seven are combined using fixed weights:
flowchart LR
subgraph RhythmX["<b>RhythmX Intelligence — 50%</b>"]
TC["Threat Cases<br><b>× 0.30</b>"]
SA["RhythmX Alerts<br><b>× 0.20</b>"]
end
subgraph LogRhythm["<b>LogRhythm Behavioral — 10%</b>"]
DIV["Diversity<br><b>× 0.10</b>"]
end
subgraph Combined["<b>Combined Sources — 40%</b>"]
VOL["Volume<br><b>× 0.10</b>"]
VEL["Velocity<br><b>× 0.10</b>"]
MIT["MITRE ATT&CK<br><b>× 0.10</b>"]
REC["Recency<br><b>× 0.10</b>"]
end
TC --> SUM["<b>Σ Weighted Sum</b><br>= Final Score<br><i>0 – 100</i>"]
SA --> SUM
VOL --> SUM
VEL --> SUM
DIV --> SUM
MIT --> SUM
REC --> SUM
style RhythmX fill:#4a148c,stroke:#9c27b0,color:#fff
style LogRhythm fill:#0d47a1,stroke:#42a5f5,color:#fff
style Combined fill:#00695c,stroke:#4db6ac,color:#fff
style TC fill:#7b1fa2,stroke:#ce93d8,color:#fff
style SA fill:#7b1fa2,stroke:#ce93d8,color:#fff
style VOL fill:#00897b,stroke:#80cbc4,color:#fff
style VEL fill:#00897b,stroke:#80cbc4,color:#fff
style DIV fill:#1565c0,stroke:#64b5f6,color:#fff
style MIT fill:#00796b,stroke:#80cbc4,color:#fff
style REC fill:#00796b,stroke:#80cbc4,color:#fff
style SUM fill:#b71c1c,stroke:#ef5350,color:#fff
The 7 Factors
1. Threat Cases — 30% (RhythmX)
The highest-weighted factor. Measures active correlated threat cases involving this actor — attack patterns detected by RhythmX's sigma-case-correlation engine (lateral movement, ransomware, brute force, etc.).
flowchart LR
subgraph Input["<b>Active Threat Cases</b>"]
C0["0 cases"]
C1["1 case"]
C2["2 cases"]
C3["3+ cases"]
end
C0 --> S0["Score: <b>0</b>"]
C1 --> S1["Score: <b>40</b>"]
C2 --> S2["Score: <b>60</b>"]
C3 --> S3["Score: <b>80</b>"]
S1 --> BOOST["<b>+ Severity Boost</b><br>Low: +5 · Med: +10<br>High: +15 · Crit: +20"]
S2 --> BOOST
S3 --> BOOST
BOOST --> CAP["Capped at <b>100</b>"]
style Input fill:#1a237e,stroke:#534bae,color:#fff
style C0 fill:#37474f,stroke:#78909c,color:#fff
style C1 fill:#e65100,stroke:#ff9800,color:#fff
style C2 fill:#d84315,stroke:#ff7043,color:#fff
style C3 fill:#b71c1c,stroke:#ef5350,color:#fff
style S0 fill:#37474f,stroke:#78909c,color:#fff
style S1 fill:#e65100,stroke:#ff9800,color:#fff
style S2 fill:#d84315,stroke:#ff7043,color:#fff
style S3 fill:#b71c1c,stroke:#ef5350,color:#fff
style BOOST fill:#4a148c,stroke:#9c27b0,color:#fff
style CAP fill:#880e4f,stroke:#f06292,color:#fff
Threat cases carry the most weight because correlated attack patterns spanning multiple alerts are the strongest signal of a real attack in progress.
2. RhythmX Alerts — 20% (RhythmX)
Individual RhythmX rule matches from the RhythmX Rules detection pipeline. The score combines three sub-signals:
flowchart TD
subgraph AlertCount["<b>Alert Count → Base Score</b>"]
A1["1 – 5 alerts → <b>20</b>"]
A2["6 – 15 alerts → <b>40</b>"]
A3["16 – 30 alerts → <b>60</b>"]
A4["30+ alerts → <b>75</b>"]
end
subgraph RuleDiv["<b>Rule Diversity Boost</b>"]
R1["2 rules → <b>+5</b>"]
R2["3 – 4 rules → <b>+10</b>"]
R3["5+ rules → <b>+15</b>"]
end
subgraph SevBoost["<b>Severity Boost</b>"]
SV1["1 – 4 high/crit → <b>+5</b>"]
SV2["5+ high/crit → <b>+10</b>"]
end
AlertCount --> SUM["<b>Sum All</b><br>Capped at 100"]
RuleDiv --> SUM
SevBoost --> SUM
style AlertCount fill:#4a148c,stroke:#9c27b0,color:#fff
style RuleDiv fill:#00695c,stroke:#4db6ac,color:#fff
style SevBoost fill:#b71c1c,stroke:#ef5350,color:#fff
style A1 fill:#6a1b9a,stroke:#ab47bc,color:#fff
style A2 fill:#6a1b9a,stroke:#ab47bc,color:#fff
style A3 fill:#6a1b9a,stroke:#ab47bc,color:#fff
style A4 fill:#6a1b9a,stroke:#ab47bc,color:#fff
style R1 fill:#00796b,stroke:#80cbc4,color:#fff
style R2 fill:#00796b,stroke:#80cbc4,color:#fff
style R3 fill:#00796b,stroke:#80cbc4,color:#fff
style SV1 fill:#c62828,stroke:#ef9a9a,color:#fff
style SV2 fill:#c62828,stroke:#ef9a9a,color:#fff
style SUM fill:#880e4f,stroke:#f06292,color:#fff
3. Volume — 10% (Combined: SIEM + RhythmX)
The actor's total detection event count (SIEM alarms + RhythmX alerts combined) relative to all other actors in the environment, expressed as a percentile ranking. If an actor has more total events than 90% of all actors, the volume score is 90.
Combined Event Count
Volume combines both LogRhythm SIEM alarms and RhythmX Sigma detections into a single event count. This ensures actors with only Sigma detections (no SIEM alarms) still contribute to volume scoring.
4. Velocity — 10% (Combined: SIEM + RhythmX)
Total detection events per hour of activity, measuring the rate at which events fire for this actor. Combines SIEM alarms and RhythmX alerts for a complete picture.
flowchart LR
COUNT["Total Events<br>(SIEM + Sigma)"] --> CALC["<b>velocity</b> = events ÷ hours<br><i>minimum 1 hour</i>"]
HOURS["Hours Active"] --> CALC
CALC --> SCORE["<b>score</b> = velocity × 10<br><i>capped at 100</i>"]
SCORE --> E1["1/hr → <b>10</b>"]
SCORE --> E2["5/hr → <b>50</b>"]
SCORE --> E3["10+/hr → <b>100</b>"]
style COUNT fill:#00695c,stroke:#4db6ac,color:#fff
style HOURS fill:#00695c,stroke:#4db6ac,color:#fff
style CALC fill:#1a237e,stroke:#534bae,color:#fff
style SCORE fill:#4a148c,stroke:#9c27b0,color:#fff
style E1 fill:#1b5e20,stroke:#66bb6a,color:#fff
style E2 fill:#e65100,stroke:#ff9800,color:#fff
style E3 fill:#b71c1c,stroke:#ef5350,color:#fff
High velocity indicates a concentrated burst of activity — often a sign of automated attacks or active exploitation.
5. Diversity — 10% (LogRhythm)
The number of unique SIEM detection rules triggered by the actor, expressed as a percentile ranking against all other actors. More diverse rule coverage indicates a broader attack pattern rather than a single noisy rule firing repeatedly.
Why Diversity stays SIEM-only
Sigma rules are already counted in the RhythmX Alerts factor (20%). Adding them to diversity would double-count. Diversity measures breadth of SIEM detection patterns specifically.
6. MITRE ATT&CK — 10% (Combined)
Combines MITRE technique and tactic coverage from both LogRhythm alarms and RhythmX alerts into a single score. Uses an absolute scale (not percentile) because sparse data makes percentile scoring unreliable.
flowchart TD
subgraph Techniques["<b>Technique Depth → Base Score</b>"]
T0["0 → <b>0</b>"]
T1["1 → <b>20</b>"]
T2["2 → <b>35</b>"]
T3["3 – 4 → <b>50</b>"]
T4["5 – 7 → <b>70</b>"]
T5["8 – 10 → <b>85</b>"]
T6["10+ → <b>95</b>"]
end
subgraph Tactics["<b>Tactic Breadth Bonus</b>"]
TA1["3 – 4 tactics → <b>+10</b>"]
TA2["5+ tactics → <b>+15</b>"]
end
Techniques --> FINAL["<b>Combined Score</b><br>Capped at 100"]
Tactics --> FINAL
style Techniques fill:#00695c,stroke:#4db6ac,color:#fff
style Tactics fill:#e65100,stroke:#ff9800,color:#fff
style T0 fill:#37474f,stroke:#78909c,color:#fff
style T1 fill:#2e7d32,stroke:#66bb6a,color:#fff
style T2 fill:#558b2f,stroke:#9ccc65,color:#fff
style T3 fill:#f9a825,stroke:#ffee58,color:#000
style T4 fill:#ef6c00,stroke:#ffb74d,color:#fff
style T5 fill:#d84315,stroke:#ff7043,color:#fff
style T6 fill:#b71c1c,stroke:#ef5350,color:#fff
style TA1 fill:#e65100,stroke:#ff9800,color:#fff
style TA2 fill:#bf360c,stroke:#ff8a65,color:#fff
style FINAL fill:#880e4f,stroke:#f06292,color:#fff
7. Recency — 10% (Combined: All Sources)
How recently the actor was last seen, using the freshest timestamp across all three sources: LogRhythm alarms, RhythmX alerts, and threat case activity.
flowchart LR
subgraph Sources["<b>Recency Input</b>"]
S1["LR Alarm last_seen"]
S2["Sigma Alert last_seen"]
S3["Threat Case last_alert_time"]
end
S1 --> MAX["<b>max(all sources)</b><br>Freshest wins"]
S2 --> MAX
S3 --> MAX
MAX --> SCORE["<b>Recency Score</b>"]
subgraph Decay["<b>Score Decay</b>"]
R1["≤ 1 hour → <b>100</b>"]
R2["1 – 24 hours → <b>70 – 90</b>"]
R3["1 – 7 days → <b>40 – 70</b>"]
R4["7 – 30 days → <b>10 – 40</b>"]
R5["30+ days → <b>0 – 10</b>"]
end
SCORE --> Decay
style Sources fill:#1a237e,stroke:#534bae,color:#fff
style S1 fill:#0d47a1,stroke:#42a5f5,color:#fff
style S2 fill:#7b1fa2,stroke:#ce93d8,color:#fff
style S3 fill:#b71c1c,stroke:#ef5350,color:#fff
style MAX fill:#00695c,stroke:#4db6ac,color:#fff
style SCORE fill:#4a148c,stroke:#9c27b0,color:#fff
style Decay fill:#1a237e,stroke:#534bae,color:#fff
style R1 fill:#b71c1c,stroke:#ef5350,color:#fff
style R2 fill:#e65100,stroke:#ff9800,color:#fff
style R3 fill:#f9a825,stroke:#ffee58,color:#000
style R4 fill:#558b2f,stroke:#9ccc65,color:#fff
style R5 fill:#37474f,stroke:#78909c,color:#fff
Why all three sources?
An actor may have a fresh threat case but no recent SIEM alarms (or vice versa). Using the freshest timestamp across all sources ensures recency always reflects the latest activity — preventing stale scores when one source goes quiet.
Data Source Breakdown
flowchart LR
RXH["<b>RhythmX Only</b><br>RhythmX engine +<br>correlation<br><b>50% total</b>"] --> RX1["<b>Threat Cases</b><br>30%"]
RXH --> RX2["<b>RhythmX Alerts</b><br>20%"]
LRH["<b>LogRhythm Only</b><br>SIEM alarms<br><br><b>10% total</b>"] --> LR3["<b>Diversity</b><br>10%"]
CBH["<b>Combined</b><br>SIEM + RhythmX<br>merged signals<br><b>40% total</b>"] --> CB1["<b>Volume</b><br>10%"]
CBH --> CB2["<b>Velocity</b><br>10%"]
CBH --> CB3["<b>MITRE ATT&CK</b><br>10%"]
CBH --> CB4["<b>Recency</b><br>10%"]
RX1 --> SCORE["<b>Final Risk Score</b><br>0 – 100"]
RX2 --> SCORE
LR3 --> SCORE
CB1 --> SCORE
CB2 --> SCORE
CB3 --> SCORE
CB4 --> SCORE
style RXH fill:#7b1fa2,stroke:#ce93d8,color:#fff
style LRH fill:#0d47a1,stroke:#42a5f5,color:#fff
style CBH fill:#00695c,stroke:#4db6ac,color:#fff
style RX1 fill:#9c27b0,stroke:#e1bee7,color:#fff
style RX2 fill:#9c27b0,stroke:#e1bee7,color:#fff
style LR3 fill:#1565c0,stroke:#64b5f6,color:#fff
style CB1 fill:#00897b,stroke:#80cbc4,color:#fff
style CB2 fill:#00897b,stroke:#80cbc4,color:#fff
style CB3 fill:#00897b,stroke:#80cbc4,color:#fff
style CB4 fill:#00897b,stroke:#80cbc4,color:#fff
style SCORE fill:#b71c1c,stroke:#ef5350,color:#fff
RhythmX contributes the majority of the risk score (50%). Combined sources (SIEM + RhythmX) provide 40%. LogRhythm-only factors contribute 10% (diversity).
Risk Tiers
flowchart LR
subgraph Tiers["<b>Risk Level Mapping</b>"]
direction TB
C["<b>Critical</b><br>80 – 100"]
H["<b>High</b><br>60 – 79"]
M["<b>Medium</b><br>40 – 59"]
L["<b>Low</b><br>0 – 39"]
end
C --> CA["Immediate investigation<br>Active, sophisticated threat"]
H --> HA["Significant risk<br>Prioritize for analyst review"]
M --> MA["Moderate concern<br>Review during normal workflow"]
L --> LA["Minimal risk<br>Routine monitoring"]
style Tiers fill:#1a237e,stroke:#534bae,color:#fff
style C fill:#b71c1c,stroke:#ef5350,color:#fff
style H fill:#e65100,stroke:#ff9800,color:#fff
style M fill:#f9a825,stroke:#ffee58,color:#000
style L fill:#1b5e20,stroke:#66bb6a,color:#fff
style CA fill:#c62828,stroke:#ef9a9a,color:#fff
style HA fill:#ef6c00,stroke:#ffb74d,color:#fff
style MA fill:#f57f17,stroke:#fff176,color:#000
style LA fill:#2e7d32,stroke:#81c784,color:#fff
How Risk Drives Automation
The risk score is not just a display metric — it directly controls platform behavior:
flowchart TD
RS["<b>Risk Score</b><br>0 – 100"] --> SLA["<b>SLA Targets</b>"]
RS --> AP["<b>Auto-Push Tickets</b>"]
RS --> IC["<b>Incident Creation</b>"]
RS --> PQ["<b>Priority Queue</b>"]
subgraph SLATargets["<b>Response Time SLAs</b>"]
S1["Critical ≥ 80 → <b>2 hours</b>"]
S2["High 60 – 79 → <b>4 hours</b>"]
S3["Medium 40 – 59 → <b>24 hours</b>"]
S4["Low < 40 → <b>48 hours</b>"]
end
subgraph AutoPush["<b>Ticket Integration</b>"]
T1["Jira / ServiceNow<br><i>Created on ESCALATED + stability</i>"]
end
subgraph IncidentCreate["<b>Auto-Incident Rules</b>"]
I1["Path A: Active threat cases<br><i>Immediate — no time filter</i>"]
I2["Path B: Score ≥ 70<br><i>No time filter — recency is in the score</i>"]
end
subgraph Queue["<b>SOC Dashboard</b>"]
P1["Ranked investigation queue<br><i>Highest risk first</i>"]
end
SLA --> SLATargets
AP --> AutoPush
IC --> IncidentCreate
PQ --> Queue
style RS fill:#b71c1c,stroke:#ef5350,color:#fff
style SLA fill:#4a148c,stroke:#9c27b0,color:#fff
style AP fill:#0d47a1,stroke:#42a5f5,color:#fff
style IC fill:#e65100,stroke:#ff9800,color:#fff
style PQ fill:#00695c,stroke:#4db6ac,color:#fff
style SLATargets fill:#1a237e,stroke:#534bae,color:#fff
style S1 fill:#c62828,stroke:#ef9a9a,color:#fff
style S2 fill:#ef6c00,stroke:#ffb74d,color:#fff
style S3 fill:#f57f17,stroke:#fff176,color:#000
style S4 fill:#2e7d32,stroke:#81c784,color:#fff
style AutoPush fill:#1a237e,stroke:#534bae,color:#fff
style T1 fill:#1565c0,stroke:#64b5f6,color:#fff
style IncidentCreate fill:#1a237e,stroke:#534bae,color:#fff
style I1 fill:#d84315,stroke:#ff7043,color:#fff
style I2 fill:#e65100,stroke:#ff9800,color:#fff
style Queue fill:#1a237e,stroke:#534bae,color:#fff
style P1 fill:#00796b,stroke:#80cbc4,color:#fff
Incident Creation
Incidents are automatically created through two paths:
- Path A — Threat Cases (Immediate): Any actor with active threat cases qualifies immediately — no time filter, no risk threshold required. Even a risk score of 30 with 1 threat case creates an incident (in MONITORING state).
- Path B — Risk Score: Risk score ≥ 70 qualifies the actor. No time filter — the recency factor (10%) already handles freshness within the score itself.
See Incident Management for the full incident lifecycle including system states, ticket sync, and analyst workflow.
Incident System States
Once created, incidents progress through states based on risk score and threat case count:
| State | Condition | Ticket | Meaning |
|---|---|---|---|
| MONITORING | 1 case OR risk 30-39 | No ticket | Watching, not enough evidence |
| ACTIVE | 2+ cases OR risk 40-69 | No ticket | Real threat, needs attention |
| ESCALATED | 3+ cases OR risk ≥ 70 | Ticket created (after stability check) | High priority, act now |
| RESOLVED | No activity 24h + no cases | Ticket closed | Threat passed |
Incident Time Classification
Every incident is classified by activity recency:
| Type | Condition | Ticket Behavior |
|---|---|---|
| ACTIVE | Last activity < 1 hour | Ticket created normally |
| RECENT | Last activity < 24 hours OR open threat cases with activity < 48h | Ticket created with "monitor closely" warning |
| HISTORICAL | Last activity ≥ 24 hours, no recent cases | Ticket skipped — no noise for old activity |
Attack Trend
Each incident tracks whether the threat is getting worse or better:
| Trend | Meaning | Indicator |
|---|---|---|
| ⬆ ACCELERATING | Risk increased by 5+ since last cycle | Threat is growing |
| ⬇ COOLING | Risk decreased by 5+ | Threat is subsiding |
| ➡ STABLE | Risk roughly unchanged | No significant change |
Score Breakdown — What Analysts See
When an analyst clicks the risk score badge on any actor card, the platform displays the full 7-factor breakdown:
flowchart TD
subgraph Breakdown["<b>Actor: jsmith — Risk Score 63 (High)</b>"]
direction TB
F1["<b>Threat Cases</b><br>65 / 100 · 30%<br><i>2 active cases, max severity: high</i>"]
F2["<b>RhythmX Alerts</b><br>55 / 100 · 20%<br><i>12 alerts from 4 rules, 2 high sev</i>"]
F3["<b>Volume</b><br>82 / 100 · 10%<br><i>47 alarms + 12 sigma = 59 events (top 18%)</i>"]
F4["<b>Velocity</b><br>30 / 100 · 10%<br><i>3.0 events/hour</i>"]
F5["<b>Diversity</b><br>71 / 100 · 10%<br><i>8 unique SIEM rules triggered</i>"]
F6["<b>MITRE ATT&CK</b><br>80 / 100 · 10%<br><i>6 techniques, 3 tactics</i>"]
F7["<b>Recency</b><br>90 / 100 · 10%<br><i>Last seen: 4 hours ago (from threat case)</i>"]
end
style Breakdown fill:#1a237e,stroke:#534bae,color:#fff
style F1 fill:#c62828,stroke:#ef9a9a,color:#fff
style F2 fill:#d84315,stroke:#ff7043,color:#fff
style F3 fill:#e65100,stroke:#ff9800,color:#fff
style F4 fill:#2e7d32,stroke:#81c784,color:#fff
style F5 fill:#ef6c00,stroke:#ffb74d,color:#fff
style F6 fill:#c62828,stroke:#ef9a9a,color:#fff
style F7 fill:#b71c1c,stroke:#ef5350,color:#fff
This transparency allows analysts to understand why an actor is scored the way it is and which data sources are contributing the most.
Real-World Example
Actor: win-a47ao603la4 (host) — Risk Score 98 (CRITICAL)
This host has active threat cases, many RhythmX detections, high combined event volume, and broad MITRE coverage:
| Factor | Raw Score | Weight | Contribution | What drove it |
|---|---|---|---|---|
| Threat Cases | 100 | × 0.30 | 30 | 16 active cases (APT_CHAIN + PASSWORD_SPRAYING), CRITICAL severity |
| RhythmX Detections | 100 | × 0.20 | 20 | 397 detections across 8 rules, 17 high-severity |
| Volume | 100 | × 0.10 | 10 | 39,812 alarms + 397 sigma = 40,209 events (top 1%) |
| Velocity | 100 | × 0.10 | 10 | 19 events/hour |
| Diversity | 100 | × 0.10 | 10 | Top percentile (1 dominant SIEM rule) |
| MITRE Coverage | 100 | × 0.10 | 10 | 8 techniques across 9 tactics |
| Recency | 84 | × 0.10 | 8 | Last seen ~1 day ago |
| Total | 98 |
Maximum Scores by Deployment Scenario
Not every deployment has a SIEM connected. The risk score adapts based on available data:
| Scenario | Max Possible Score | Why |
|---|---|---|
| Full stack (SIEM + RhythmX + threat cases) | 100 | All 7 factors can max out |
| No SIEM (RhythmX + threat cases) | 80 | Volume/Velocity from sigma only, Diversity = 0. MITRE + Recency from RhythmX |
| No threat cases (SIEM + RhythmX detections) | 70 | Threat Cases = 0. All other factors can max |
| No SIEM + no threat cases (RhythmX detections only) | 50 | RhythmX Detections (20) + Volume/Velocity from sigma (10+10) + MITRE (10) + Recency (10) |
| No data | 0 | Nothing to score |
Implication for incidents: Path B requires risk ≥ 70. Without threat cases, Path B can reach 70 only if other factors (including combined volume/velocity from sigma) are strong enough. With threat cases, Path A creates incidents at any risk level.
Ticket Priority Mapping
When incidents escalate and create Jira/ServiceNow tickets, the risk score maps to ticket priority. Confidence level can boost priority:
| Risk Score | Base Priority | With HIGH/CRITICAL Confidence |
|---|---|---|
| ≥ 80 | P1 (Critical) | P1 (Critical) |
| 60 – 79 | P2 (High) | P1 (Critical) — confidence boost |
| 40 – 59 | P3 (Medium) | P3 (Medium) |
| < 40 | P4 (Low) | P4 (Low) |
Ticket priority is automatically synced — when risk changes enough to cross a priority boundary, RhythmX updates the ticket priority via API (not just adds a comment).
Scoring Across the Platform
flowchart TD
RS["<b>Risk Score Engine</b><br>7-Factor Model"] --> ALM["<b>Security Alarms</b><br>Risk badges, filtering,<br>investigation priority"]
RS --> MSSP["<b>MSSP Dashboard</b><br>Entity risk meters,<br>tier filtering, trends"]
RS --> INC["<b>Incident Management</b><br>System states, SLA,<br>auto-escalation, ticket sync"]
RS --> CASE["<b>Case Management</b><br>Case risk scoring,<br>actor correlation"]
RS --> SOC["<b>SOC Dashboard</b><br>Priority queue ranking,<br>risk distribution"]
RS --> RPT["<b>Reporting</b><br>Risk trends, executive<br>summaries, compliance"]
style RS fill:#b71c1c,stroke:#ef5350,color:#fff
style ALM fill:#0d47a1,stroke:#42a5f5,color:#fff
style MSSP fill:#4a148c,stroke:#9c27b0,color:#fff
style INC fill:#e65100,stroke:#ff9800,color:#fff
style CASE fill:#00695c,stroke:#4db6ac,color:#fff
style SOC fill:#1565c0,stroke:#64b5f6,color:#fff
style RPT fill:#6a1b9a,stroke:#ab47bc,color:#fff