fix(dashboard): resolve action_taken from audit log, improve UI
Browse filescases_demo.json stores action_taken as null for all cases; the real
Razorpay data (order_id, notes_verified, tool, timestamp) only lives
in audit_log.jsonl. Dashboard and detail pages were reading only from
the cases JSON so Order ID, Notes Verified, Tool Used and Timestamp
always rendered as dashes.
Changes:
- _build_dashboard(): accept audit_map, fall back to audit record for
action_taken when case JSON has null; verified column now shows
coloured Yes/No instead of plain dashes
- dashboard(): build audit_map from audit_log and pass to _build_dashboard
- case_detail_html(): fall back to audit record for action_taken,
llm_narrative and llm_confidence_statement when case JSON has null
- Fixed broken footer anchor (was HTML-escaped, rendered as literal text)
- Case ID cells in table are now proper links; risk score bold; order_id
in monospace font
- api/main.py +47 -17
- audit/audit_log.jsonl +28 -0
- data/synthetic/cases_demo.json +50 -50
|
@@ -70,16 +70,26 @@ def health():
|
|
| 70 |
def get_cases():
|
| 71 |
"""Return all cases as a JSON list."""
|
| 72 |
cases = _load_cases()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
# Return a summary view (without full narrative for list)
|
| 74 |
summary = []
|
| 75 |
for c in cases:
|
|
|
|
|
|
|
|
|
|
| 76 |
summary.append({
|
| 77 |
-
"case_id":
|
| 78 |
"cluster_id": c.get("cluster_id"),
|
| 79 |
"cluster_size": len(c.get("customer_ids", [])),
|
| 80 |
"risk_score": round(c.get("risk_probability", 0), 4),
|
| 81 |
"policy_decision": c.get("policy_decision"),
|
| 82 |
-
"action_taken": bool(
|
| 83 |
"timestamp": c.get("timestamp"),
|
| 84 |
})
|
| 85 |
return summary
|
|
@@ -120,7 +130,9 @@ def _decision_badge(decision: str) -> str:
|
|
| 120 |
)
|
| 121 |
|
| 122 |
|
| 123 |
-
def _build_dashboard(cases: list) -> str:
|
|
|
|
|
|
|
| 124 |
rows = ""
|
| 125 |
for c in cases:
|
| 126 |
decision = c.get("policy_decision", "")
|
|
@@ -129,18 +141,25 @@ def _build_dashboard(cases: list) -> str:
|
|
| 129 |
cluster = c.get("cluster_id", "")
|
| 130 |
case_id = c.get("case_id", "")
|
| 131 |
size = len(c.get("customer_ids", []))
|
| 132 |
-
|
|
|
|
| 133 |
order_id = action.get("order_id") or "—"
|
| 134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
|
| 136 |
rows += (
|
| 137 |
f'<tr onclick="window.location=\'/cases/{case_id}/detail\'" style="cursor:pointer">'
|
| 138 |
-
f'<td>{case_id}</td>'
|
| 139 |
-
f'<td>{cluster}</td>'
|
| 140 |
f'<td style="text-align:center">{size}</td>'
|
| 141 |
-
f'<td style="text-align:right">{risk}%</td>'
|
| 142 |
f'<td>{badge}</td>'
|
| 143 |
-
f'<td style="font-size:11px;color:#57606a">{order_id}</td>'
|
| 144 |
f'<td style="text-align:center">{verified}</td>'
|
| 145 |
f'</tr>\n'
|
| 146 |
)
|
|
@@ -229,7 +248,7 @@ def _build_dashboard(cases: list) -> str:
|
|
| 229 |
Click any row to view the full evidence bundle, LLM narrative, and audit chain.
|
| 230 |
</p>
|
| 231 |
|
| 232 |
-
<div class="footer">Built by
|
| 233 |
</div>
|
| 234 |
</body>
|
| 235 |
</html>"""
|
|
@@ -238,8 +257,14 @@ def _build_dashboard(cases: list) -> str:
|
|
| 238 |
@app.get("/", response_class=HTMLResponse)
|
| 239 |
def dashboard():
|
| 240 |
"""Serve the HTML dashboard."""
|
| 241 |
-
cases
|
| 242 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 243 |
return HTMLResponse(content=html)
|
| 244 |
|
| 245 |
|
|
@@ -345,18 +370,23 @@ def case_detail_html(case_id: str):
|
|
| 345 |
decision = case.get("policy_decision", "")
|
| 346 |
badge = _decision_badge(decision)
|
| 347 |
risk = round(case.get("risk_probability", 0) * 100, 2)
|
| 348 |
-
|
| 349 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 350 |
members = ", ".join(case.get("customer_ids", []))
|
| 351 |
|
| 352 |
-
|
|
|
|
| 353 |
order_id = action.get("order_id") or "—"
|
| 354 |
-
verified = "Yes" if action.get("notes_verified") else "
|
| 355 |
tool_used = action.get("tool") or "—"
|
| 356 |
timestamp = action.get("timestamp") or "—"
|
| 357 |
|
| 358 |
# Pull graph score inputs from audit record for the cluster diagram
|
| 359 |
-
audit_rec =
|
| 360 |
score_inputs = audit_rec.get("graph_score_inputs", {})
|
| 361 |
strong_links = int(score_inputs.get("strong_link_count", case.get("strong_link_count", 0)))
|
| 362 |
weak_links = int(score_inputs.get("weak_link_count", case.get("weak_link_count", 0)))
|
|
|
|
| 70 |
def get_cases():
|
| 71 |
"""Return all cases as a JSON list."""
|
| 72 |
cases = _load_cases()
|
| 73 |
+
audit_all = _load_audit()
|
| 74 |
+
# Build a lookup: case_id -> first audit record
|
| 75 |
+
audit_map = {}
|
| 76 |
+
for r in audit_all:
|
| 77 |
+
cid = r.get("case_id")
|
| 78 |
+
if cid and cid not in audit_map:
|
| 79 |
+
audit_map[cid] = r
|
| 80 |
# Return a summary view (without full narrative for list)
|
| 81 |
summary = []
|
| 82 |
for c in cases:
|
| 83 |
+
case_id = c.get("case_id")
|
| 84 |
+
# Prefer action_taken from audit record when case has null
|
| 85 |
+
action = c.get("action_taken") or audit_map.get(case_id, {}).get("action_taken") or {}
|
| 86 |
summary.append({
|
| 87 |
+
"case_id": case_id,
|
| 88 |
"cluster_id": c.get("cluster_id"),
|
| 89 |
"cluster_size": len(c.get("customer_ids", [])),
|
| 90 |
"risk_score": round(c.get("risk_probability", 0), 4),
|
| 91 |
"policy_decision": c.get("policy_decision"),
|
| 92 |
+
"action_taken": bool(action.get("order_id")),
|
| 93 |
"timestamp": c.get("timestamp"),
|
| 94 |
})
|
| 95 |
return summary
|
|
|
|
| 130 |
)
|
| 131 |
|
| 132 |
|
| 133 |
+
def _build_dashboard(cases: list, audit_map: dict = None) -> str:
|
| 134 |
+
if audit_map is None:
|
| 135 |
+
audit_map = {}
|
| 136 |
rows = ""
|
| 137 |
for c in cases:
|
| 138 |
decision = c.get("policy_decision", "")
|
|
|
|
| 141 |
cluster = c.get("cluster_id", "")
|
| 142 |
case_id = c.get("case_id", "")
|
| 143 |
size = len(c.get("customer_ids", []))
|
| 144 |
+
# Prefer action_taken from audit record when case JSON has null
|
| 145 |
+
action = c.get("action_taken") or audit_map.get(case_id, {}).get("action_taken") or {}
|
| 146 |
order_id = action.get("order_id") or "—"
|
| 147 |
+
verified_val = action.get("notes_verified")
|
| 148 |
+
if verified_val is True:
|
| 149 |
+
verified = '<span style="color:#27ae60;font-weight:600">✓ Yes</span>'
|
| 150 |
+
elif action:
|
| 151 |
+
verified = '<span style="color:#c0392b">No</span>'
|
| 152 |
+
else:
|
| 153 |
+
verified = "—"
|
| 154 |
|
| 155 |
rows += (
|
| 156 |
f'<tr onclick="window.location=\'/cases/{case_id}/detail\'" style="cursor:pointer">'
|
| 157 |
+
f'<td><a href="/cases/{case_id}/detail" style="color:#1f2328;font-weight:500">{case_id}</a></td>'
|
| 158 |
+
f'<td style="color:#57606a">{cluster}</td>'
|
| 159 |
f'<td style="text-align:center">{size}</td>'
|
| 160 |
+
f'<td style="text-align:right;font-weight:600">{risk}%</td>'
|
| 161 |
f'<td>{badge}</td>'
|
| 162 |
+
f'<td style="font-size:11px;font-family:monospace;color:#57606a">{order_id}</td>'
|
| 163 |
f'<td style="text-align:center">{verified}</td>'
|
| 164 |
f'</tr>\n'
|
| 165 |
)
|
|
|
|
| 248 |
Click any row to view the full evidence bundle, LLM narrative, and audit chain.
|
| 249 |
</p>
|
| 250 |
|
| 251 |
+
<div class="footer">Built by <a href="https://github.com/rohitdecodes" target="_blank">Rohit</a> · RingGuard v3.0</div>
|
| 252 |
</div>
|
| 253 |
</body>
|
| 254 |
</html>"""
|
|
|
|
| 257 |
@app.get("/", response_class=HTMLResponse)
|
| 258 |
def dashboard():
|
| 259 |
"""Serve the HTML dashboard."""
|
| 260 |
+
cases = _load_cases()
|
| 261 |
+
audit_all = _load_audit()
|
| 262 |
+
audit_map = {}
|
| 263 |
+
for r in audit_all:
|
| 264 |
+
cid = r.get("case_id")
|
| 265 |
+
if cid and cid not in audit_map:
|
| 266 |
+
audit_map[cid] = r
|
| 267 |
+
html = _build_dashboard(cases, audit_map)
|
| 268 |
return HTMLResponse(content=html)
|
| 269 |
|
| 270 |
|
|
|
|
| 370 |
decision = case.get("policy_decision", "")
|
| 371 |
badge = _decision_badge(decision)
|
| 372 |
risk = round(case.get("risk_probability", 0) * 100, 2)
|
| 373 |
+
# Prefer audit narrative/confidence when case JSON has null
|
| 374 |
+
audit_rec0 = audit_records[0] if audit_records else {}
|
| 375 |
+
narrative = (case.get("llm_narrative") or audit_rec0.get("llm_narrative")
|
| 376 |
+
or "<em>No narrative available for this case.</em>")
|
| 377 |
+
confidence = (case.get("llm_confidence_statement") or
|
| 378 |
+
audit_rec0.get("llm_confidence_statement") or "—")
|
| 379 |
members = ", ".join(case.get("customer_ids", []))
|
| 380 |
|
| 381 |
+
# Prefer action_taken from audit record when case JSON has null
|
| 382 |
+
action = case.get("action_taken") or audit_rec0.get("action_taken") or {}
|
| 383 |
order_id = action.get("order_id") or "—"
|
| 384 |
+
verified = "Yes" if action.get("notes_verified") else "No"
|
| 385 |
tool_used = action.get("tool") or "—"
|
| 386 |
timestamp = action.get("timestamp") or "—"
|
| 387 |
|
| 388 |
# Pull graph score inputs from audit record for the cluster diagram
|
| 389 |
+
audit_rec = audit_rec0
|
| 390 |
score_inputs = audit_rec.get("graph_score_inputs", {})
|
| 391 |
strong_links = int(score_inputs.get("strong_link_count", case.get("strong_link_count", 0)))
|
| 392 |
weak_links = int(score_inputs.get("weak_link_count", case.get("weak_link_count", 0)))
|
|
@@ -54,3 +54,31 @@
|
|
| 54 |
{"case_id": "CAND26", "timestamp": "2026-08-22T05:11:19.291421+00:00", "cluster_members": ["CUST0045", "CUST0046", "CUST0047", "CUST0048"], "evidence_bundle": {"cluster_id": "CAND26", "size": 4, "customer_ids": ["CUST0045", "CUST0046", "CUST0047", "CUST0048"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 11, "total_amount": 25534, "avg_order_amount": 2321.2727272727275, "return_rate": 0.36363636363636365, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 157.74650462962964, "order_velocity": 0.06973213147148151, "formation_type_strong": 0}, "lightgbm_probability": 0.0035484719416527992, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 55 |
{"case_id": "CAND27", "timestamp": "2026-08-22T05:11:19.313676+00:00", "cluster_members": ["CUST0049", "CUST0050", "CUST0051", "CUST0052"], "evidence_bundle": {"cluster_id": "CAND27", "size": 4, "customer_ids": ["CUST0049", "CUST0050", "CUST0051", "CUST0052"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 8, "total_amount": 20046, "avg_order_amount": 2505.75, "return_rate": 0.25, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 173.32074074074075, "order_velocity": 0.046157199454661235, "formation_type_strong": 0}, "lightgbm_probability": 0.0031715868230902835, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0032 < 0.50 threshold — insufficient signal for action"}
|
| 56 |
{"case_id": "CAND28", "timestamp": "2026-08-22T05:11:19.325432+00:00", "cluster_members": ["CUST0053", "CUST0054", "CUST0055", "CUST0056"], "evidence_bundle": {"cluster_id": "CAND28", "size": 4, "customer_ids": ["CUST0053", "CUST0054", "CUST0055", "CUST0056"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 9, "total_amount": 26589, "avg_order_amount": 2954.3333333333335, "return_rate": 0.6666666666666666, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 146.59680555555556, "order_velocity": 0.06139287937341366, "formation_type_strong": 0}, "lightgbm_probability": 0.003058997865465553, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0031 < 0.50 threshold — insufficient signal for action"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
{"case_id": "CAND26", "timestamp": "2026-08-22T05:11:19.291421+00:00", "cluster_members": ["CUST0045", "CUST0046", "CUST0047", "CUST0048"], "evidence_bundle": {"cluster_id": "CAND26", "size": 4, "customer_ids": ["CUST0045", "CUST0046", "CUST0047", "CUST0048"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 11, "total_amount": 25534, "avg_order_amount": 2321.2727272727275, "return_rate": 0.36363636363636365, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 157.74650462962964, "order_velocity": 0.06973213147148151, "formation_type_strong": 0}, "lightgbm_probability": 0.0035484719416527992, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 55 |
{"case_id": "CAND27", "timestamp": "2026-08-22T05:11:19.313676+00:00", "cluster_members": ["CUST0049", "CUST0050", "CUST0051", "CUST0052"], "evidence_bundle": {"cluster_id": "CAND27", "size": 4, "customer_ids": ["CUST0049", "CUST0050", "CUST0051", "CUST0052"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 8, "total_amount": 20046, "avg_order_amount": 2505.75, "return_rate": 0.25, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 173.32074074074075, "order_velocity": 0.046157199454661235, "formation_type_strong": 0}, "lightgbm_probability": 0.0031715868230902835, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0032 < 0.50 threshold — insufficient signal for action"}
|
| 56 |
{"case_id": "CAND28", "timestamp": "2026-08-22T05:11:19.325432+00:00", "cluster_members": ["CUST0053", "CUST0054", "CUST0055", "CUST0056"], "evidence_bundle": {"cluster_id": "CAND28", "size": 4, "customer_ids": ["CUST0053", "CUST0054", "CUST0055", "CUST0056"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 9, "total_amount": 26589, "avg_order_amount": 2954.3333333333335, "return_rate": 0.6666666666666666, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 146.59680555555556, "order_velocity": 0.06139287937341366, "formation_type_strong": 0}, "lightgbm_probability": 0.003058997865465553, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0031 < 0.50 threshold — insufficient signal for action"}
|
| 57 |
+
{"case_id": "CAND01", "timestamp": "2026-08-23T03:31:13.685527+00:00", "cluster_members": ["CUST0014", "CUST0015", "CUST0016", "CUST0017", "CUST0018"], "evidence_bundle": {"cluster_id": "CAND01", "size": 5, "customer_ids": ["CUST0014", "CUST0015", "CUST0016", "CUST0017", "CUST0018"], "formation_type": null}, "graph_score_inputs": {"size": 5, "strong_link_count": 10, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 16, "total_amount": 62087, "avg_order_amount": 3880.4375, "return_rate": 0.5, "chargeback_rate": 0.125, "shared_coupon_count": 1, "time_span_days": 158.5827314814815, "order_velocity": 0.10089370923635782, "formation_type_strong": 1}, "lightgbm_probability": 0.9955003588432927, "llm_narrative": "The five‑customer cluster is classified as a strong_anchored formation with ten strong links and no weak links. It exhibits a 50% return rate, a 12.5% chargeback rate, and the members shared one coupon while generating a total transaction amount of $62,087. The calculated risk probability of 99.55% triggered an escalation decision.", "llm_confidence_statement": "The assessment is made with very high confidence based on the presented evidence.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9955 >= 0.85 but total_amount=₹62087 > ₹25,000 auto_hold cap"}
|
| 58 |
+
{"case_id": "CAND02", "timestamp": "2026-08-23T03:31:17.944236+00:00", "cluster_members": ["CUST0019", "CUST0020", "CUST0021", "CUST0022", "CUST0023"], "evidence_bundle": {"cluster_id": "CAND02", "size": 5, "customer_ids": ["CUST0019", "CUST0020", "CUST0021", "CUST0022", "CUST0023"], "formation_type": null}, "graph_score_inputs": {"size": 5, "strong_link_count": 10, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 18, "total_amount": 70841, "avg_order_amount": 3935.6111111111113, "return_rate": 0.3333333333333333, "chargeback_rate": 0.05555555555555555, "shared_coupon_count": 0, "time_span_days": 144.96715277777778, "order_velocity": 0.12416605869049836, "formation_type_strong": 1}, "lightgbm_probability": 0.9940850384979173, "llm_narrative": "A cluster of five customers (CUST0019, CUST0020, CUST0021, CUST0022, CUST0023) is connected by ten strong links with no weak links, forming a strong_anchored network. The group generated a total transaction amount of 70,841, exhibited a return rate of 33.33% and a chargeback rate of 5.56%, and no shared coupons were used. The risk probability for this cluster is 0.994, leading to an escalation decision.", "llm_confidence_statement": "The assessment is made with very high confidence, reflected by a risk probability of approximately 99.4%.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9941 >= 0.85 but total_amount=₹70841 > ₹25,000 auto_hold cap"}
|
| 59 |
+
{"case_id": "CAND03", "timestamp": "2026-08-23T03:31:22.227721+00:00", "cluster_members": ["CUST0004", "CUST0005", "CUST0006", "CUST0007", "CUST0008"], "evidence_bundle": {"cluster_id": "CAND03", "size": 5, "customer_ids": ["CUST0004", "CUST0005", "CUST0006", "CUST0007", "CUST0008"], "formation_type": null}, "graph_score_inputs": {"size": 5, "strong_link_count": 7, "weak_link_count": 0, "strong_link_density": 0.7, "has_same_contact_edge": 1, "order_count": 16, "total_amount": 63837, "avg_order_amount": 3989.8125, "return_rate": 0.375, "chargeback_rate": 0.0625, "shared_coupon_count": 0, "time_span_days": 173.6175462962963, "order_velocity": 0.09215658406261741, "formation_type_strong": 1}, "lightgbm_probability": 0.9959231873282086, "llm_narrative": "The five customers (CUST0004‑CUST0008) form a strong‑anchored cluster with seven strong links and no weak links, collectively transacting $63,837. Their return rate of 37.5% and chargeback rate of 6.25% are elevated, contributing to a risk probability of 99.6%.", "llm_confidence_statement": "The analysis is made with very high confidence.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9959 >= 0.85 but total_amount=₹63837 > ₹25,000 auto_hold cap"}
|
| 60 |
+
{"case_id": "CAND04", "timestamp": "2026-08-23T03:31:26.525006+00:00", "cluster_members": ["CUST0024", "CUST0025", "CUST0026", "CUST0027", "CUST0028", "CUST0029"], "evidence_bundle": {"cluster_id": "CAND04", "size": 6, "customer_ids": ["CUST0024", "CUST0025", "CUST0026", "CUST0027", "CUST0028", "CUST0029"], "formation_type": null}, "graph_score_inputs": {"size": 6, "strong_link_count": 15, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 20, "total_amount": 81019, "avg_order_amount": 4050.95, "return_rate": 0.55, "chargeback_rate": 0.05, "shared_coupon_count": 0, "time_span_days": 174.1008564814815, "order_velocity": 0.11487594262425316, "formation_type_strong": 1}, "lightgbm_probability": 0.9913203009684713, "llm_narrative": "The six customers (CUST0024‑CUST0029) form a strong_anchored cluster with 15 strong links and no weak links, indicating tightly connected activity. The group exhibits a high return rate of 55% and a chargeback rate of 5% across a total transaction volume of $81,019. Combined with a risk probability of 99.13%, these metrics point to coordinated fraudulent behavior.", "llm_confidence_statement": "We are highly confident in this assessment.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9913 >= 0.85 but total_amount=₹81019 > ₹25,000 auto_hold cap"}
|
| 61 |
+
{"case_id": "CAND05", "timestamp": "2026-08-23T03:31:30.743055+00:00", "cluster_members": ["CUST0036", "CUST0037", "CUST0038", "CUST0039", "CUST0040"], "evidence_bundle": {"cluster_id": "CAND05", "size": 5, "customer_ids": ["CUST0036", "CUST0037", "CUST0038", "CUST0039", "CUST0040"], "formation_type": null}, "graph_score_inputs": {"size": 5, "strong_link_count": 10, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 15, "total_amount": 62270, "avg_order_amount": 4151.333333333333, "return_rate": 0.26666666666666666, "chargeback_rate": 0.2, "shared_coupon_count": 0, "time_span_days": 145.8427199074074, "order_velocity": 0.10285052287507526, "formation_type_strong": 1}, "lightgbm_probability": 0.9969377389203431, "llm_narrative": "The flagged cluster consists of five customers (CUST0036‑CUST0040) linked by ten strong connections in a strong‑anchored formation. The group exhibits a 26.7% return rate and a 20% chargeback rate on a total transaction volume of $62,270, with no weak links or shared coupons.", "llm_confidence_statement": "Given the 99.7% risk probability and the observed high return and chargeback metrics, confidence in the fraud assessment is very high.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9969 >= 0.85 but total_amount=₹62270 > ₹25,000 auto_hold cap"}
|
| 62 |
+
{"case_id": "CAND06", "timestamp": "2026-08-23T03:31:35.220961+00:00", "cluster_members": ["CUST0001", "CUST0002", "CUST0003"], "evidence_bundle": {"cluster_id": "CAND06", "size": 3, "customer_ids": ["CUST0001", "CUST0002", "CUST0003"], "formation_type": null}, "graph_score_inputs": {"size": 3, "strong_link_count": 3, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 8, "total_amount": 32897, "avg_order_amount": 4112.125, "return_rate": 0.25, "chargeback_rate": 0.125, "shared_coupon_count": 1, "time_span_days": 127.71112268518519, "order_velocity": 0.06264137243331916, "formation_type_strong": 1}, "lightgbm_probability": 0.9950028638127228, "llm_narrative": "The three flagged customers (CUST0001, CUST0002, CUST0003) form a strong‑anchored cluster with three strong links and no weak links, share one coupon, and together generated $32,897 in transactions. Their combined return rate of 25 % and chargeback rate of 12.5 % further indicate suspicious activity.", "llm_confidence_statement": "The model assigns a risk probability of 99.5 %, indicating very high confidence in the escalation decision.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9950 >= 0.85 but total_amount=₹32897 > ₹25,000 auto_hold cap"}
|
| 63 |
+
{"case_id": "CAND07", "timestamp": "2026-08-23T03:31:39.409564+00:00", "cluster_members": ["CUST0041", "CUST0042", "CUST0043", "CUST0044"], "evidence_bundle": {"cluster_id": "CAND07", "size": 4, "customer_ids": ["CUST0041", "CUST0042", "CUST0043", "CUST0044"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 6, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 12, "total_amount": 58186, "avg_order_amount": 4848.833333333333, "return_rate": 0.3333333333333333, "chargeback_rate": 0.16666666666666666, "shared_coupon_count": 0, "time_span_days": 118.78427083333334, "order_velocity": 0.10102347655808104, "formation_type_strong": 1}, "lightgbm_probability": 0.9958773824170732, "llm_narrative": "The four customers (CUST0041‑CUST0044) form a strong‑anchored cluster with six strong links and no weak links, indicating tightly connected activity. Their combined transaction volume is $58,186, with a return rate of 33.3% and a chargeback rate of 16.7%, both elevated for a group of this size. The risk probability is 99.6%, leading to an escalation decision.", "llm_confidence_statement": "The model’s confidence in this high‑risk classification is extremely high.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9959 >= 0.85 but total_amount=₹58186 > ₹25,000 auto_hold cap"}
|
| 64 |
+
{"case_id": "CAND08", "timestamp": "2026-08-23T03:31:44.120044+00:00", "cluster_members": ["CUST0009", "CUST0010", "CUST0011", "CUST0012", "CUST0013"], "evidence_bundle": {"cluster_id": "CAND08", "size": 5, "customer_ids": ["CUST0009", "CUST0010", "CUST0011", "CUST0012", "CUST0013"], "formation_type": null}, "graph_score_inputs": {"size": 5, "strong_link_count": 10, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 17, "total_amount": 59830, "avg_order_amount": 3519.4117647058824, "return_rate": 0.47058823529411764, "chargeback_rate": 0.17647058823529413, "shared_coupon_count": 0, "time_span_days": 153.46033564814815, "order_velocity": 0.11077781061926893, "formation_type_strong": 1}, "lightgbm_probability": 0.9968053865328341, "llm_narrative": "The five-customer cluster (CUST0009, CUST0010, CUST0011, CUST0012, CUST0013) forms a strong-anchored network with ten strong links and no weak links. It shows a high return rate of 47.06% and a chargeback rate of 17.65% on a total transaction amount of $59,830, resulting in a risk probability of 99.68%.", "llm_confidence_statement": "The model’s confidence in this high-risk assessment is very high.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9968 >= 0.85 but total_amount=₹59830 > ₹25,000 auto_hold cap"}
|
| 65 |
+
{"case_id": "CAND09", "timestamp": "2026-08-23T03:31:47.138032+00:00", "cluster_members": ["CUST0504", "CUST0505", "CUST0506"], "evidence_bundle": {"cluster_id": "CAND09", "size": 3, "customer_ids": ["CUST0504", "CUST0505", "CUST0506"], "formation_type": null}, "graph_score_inputs": {"size": 3, "strong_link_count": 3, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 9, "total_amount": 10650, "avg_order_amount": 1183.3333333333333, "return_rate": 0.1111111111111111, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 6.166666666666667, "order_velocity": 1.4594594594594594, "formation_type_strong": 1}, "lightgbm_probability": 0.020831929989439942, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0208 < 0.50 threshold — insufficient signal for action"}
|
| 66 |
+
{"case_id": "CAND10", "timestamp": "2026-08-23T03:31:49.299130+00:00", "cluster_members": ["CUST0030", "CUST0031", "CUST0032"], "evidence_bundle": {"cluster_id": "CAND10", "size": 3, "customer_ids": ["CUST0030", "CUST0031", "CUST0032"], "formation_type": null}, "graph_score_inputs": {"size": 3, "strong_link_count": 2, "weak_link_count": 0, "strong_link_density": 0.6666666666666666, "has_same_contact_edge": 1, "order_count": 7, "total_amount": 26235, "avg_order_amount": 3747.8571428571427, "return_rate": 0.2857142857142857, "chargeback_rate": 0.2857142857142857, "shared_coupon_count": 0, "time_span_days": 99.31296296296296, "order_velocity": 0.07048425292285891, "formation_type_strong": 1}, "lightgbm_probability": 0.9927212653417073, "llm_narrative": "The three customers (CUST0030, CUST0031, CUST0032) are linked by two strong connections with no weak links, forming a strong‑anchored cluster. Their combined purchase total is $26,235, and both the return rate and chargeback rate are 28.6%, while the model assigns a risk probability of 99.27%.", "llm_confidence_statement": "The assessment is made with high confidence.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9927 >= 0.85 but total_amount=₹26235 > ₹25,000 auto_hold cap"}
|
| 67 |
+
{"case_id": "CAND11", "timestamp": "2026-08-23T03:31:58.751403+00:00", "cluster_members": ["CUST0033", "CUST0034", "CUST0035"], "evidence_bundle": {"cluster_id": "CAND11", "size": 3, "customer_ids": ["CUST0033", "CUST0034", "CUST0035"], "formation_type": null}, "graph_score_inputs": {"size": 3, "strong_link_count": 3, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 11, "total_amount": 50134, "avg_order_amount": 4557.636363636364, "return_rate": 0.18181818181818182, "chargeback_rate": 0.09090909090909091, "shared_coupon_count": 1, "time_span_days": 170.66708333333332, "order_velocity": 0.06445296764412196, "formation_type_strong": 1}, "lightgbm_probability": 0.9969893801631614, "llm_narrative": "The three customers (CUST0033, CUST0034, CUST0035) are connected by three strong links, forming a strong-anchored cluster. They collectively generated $50,134 in transactions, share one coupon, and exhibit a return rate of 18.2% and a chargeback rate of 9.1%.", "llm_confidence_statement": "The model assigns a 99.7% probability that this cluster is high risk.", "policy_decision": "escalate", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.9970 >= 0.85 but total_amount=₹50134 > ₹25,000 auto_hold cap"}
|
| 68 |
+
{"case_id": "CAND12", "timestamp": "2026-08-23T03:32:05.060085+00:00", "cluster_members": ["CUST0501", "CUST0502", "CUST0503"], "evidence_bundle": {"cluster_id": "CAND12", "size": 3, "customer_ids": ["CUST0501", "CUST0502", "CUST0503"], "formation_type": null}, "graph_score_inputs": {"size": 3, "strong_link_count": 3, "weak_link_count": 0, "strong_link_density": 1.0, "has_same_contact_edge": 0, "order_count": 6, "total_amount": 19800, "avg_order_amount": 3300.0, "return_rate": 0.16666666666666666, "chargeback_rate": 0.16666666666666666, "shared_coupon_count": 1, "time_span_days": 3.0625, "order_velocity": 1.9591836734693877, "formation_type_strong": 1}, "lightgbm_probability": 0.9867466290228035, "llm_narrative": "The three customers (CUST0501, CUST0502, CUST0503) are connected by three strong links, forming a strong‑anchored cluster. They share one coupon, have a combined transaction amount of $19,800, and exhibit a 16.7% return and chargeback rate each.", "llm_confidence_statement": "The model assigns a risk probability of 98.7%, indicating very high confidence in the high‑risk classification.", "policy_decision": "auto_hold", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": null}
|
| 69 |
+
{"case_id": "CAND13", "timestamp": "2026-08-23T03:32:08.070482+00:00", "cluster_members": ["CUST0001", "CUST0019", "CUST0040", "CUST0126", "CUST0138", "CUST0168", "CUST0211", "CUST0219", "CUST0258", "CUST0281", "CUST0292", "CUST0322", "CUST0325", "CUST0371", "CUST0373", "CUST0400", "CUST0419", "CUST0465"], "evidence_bundle": {"cluster_id": "CAND13", "size": 18, "customer_ids": ["CUST0001", "CUST0019", "CUST0040", "CUST0126", "CUST0138", "CUST0168", "CUST0211", "CUST0219", "CUST0258", "CUST0281", "CUST0292", "CUST0322", "CUST0325", "CUST0371", "CUST0373", "CUST0400", "CUST0419", "CUST0465"], "formation_type": null}, "graph_score_inputs": {"size": 18, "strong_link_count": 0, "weak_link_count": 41, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 47, "total_amount": 141392, "avg_order_amount": 3008.340425531915, "return_rate": 0.23404255319148937, "chargeback_rate": 0.1276595744680851, "shared_coupon_count": 0, "time_span_days": 166.15458333333333, "order_velocity": 0.28286911535693415, "formation_type_strong": 0}, "lightgbm_probability": 0.00720344453548541, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0072 < 0.50 threshold — insufficient signal for action"}
|
| 70 |
+
{"case_id": "CAND14", "timestamp": "2026-08-23T03:32:08.078553+00:00", "cluster_members": ["CUST0002", "CUST0009", "CUST0020", "CUST0041", "CUST0064", "CUST0073", "CUST0074", "CUST0080", "CUST0081", "CUST0086", "CUST0089", "CUST0103", "CUST0162", "CUST0167", "CUST0173", "CUST0181", "CUST0226", "CUST0240", "CUST0253", "CUST0262", "CUST0272", "CUST0286", "CUST0287", "CUST0324", "CUST0331", "CUST0333", "CUST0369", "CUST0392", "CUST0393", "CUST0398", "CUST0406", "CUST0410", "CUST0411", "CUST0413", "CUST0415", "CUST0423", "CUST0446", "CUST0468", "CUST0476", "CUST0478", "CUST0485"], "evidence_bundle": {"cluster_id": "CAND14", "size": 41, "customer_ids": ["CUST0002", "CUST0009", "CUST0020", "CUST0041", "CUST0064", "CUST0073", "CUST0074", "CUST0080", "CUST0081", "CUST0086", "CUST0089", "CUST0103", "CUST0162", "CUST0167", "CUST0173", "CUST0181", "CUST0226", "CUST0240", "CUST0253", "CUST0262", "CUST0272", "CUST0286", "CUST0287", "CUST0324", "CUST0331", "CUST0333", "CUST0369", "CUST0392", "CUST0393", "CUST0398", "CUST0406", "CUST0410", "CUST0411", "CUST0413", "CUST0415", "CUST0423", "CUST0446", "CUST0468", "CUST0476", "CUST0478", "CUST0485"], "formation_type": null}, "graph_score_inputs": {"size": 41, "strong_link_count": 0, "weak_link_count": 146, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 127, "total_amount": 369082, "avg_order_amount": 2906.1574803149606, "return_rate": 0.15748031496062992, "chargeback_rate": 0.08661417322834646, "shared_coupon_count": 0, "time_span_days": 177.8061226851852, "order_velocity": 0.7142611181329227, "formation_type_strong": 0}, "lightgbm_probability": 0.007559966037372132, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0076 < 0.50 threshold — insufficient signal for action"}
|
| 71 |
+
{"case_id": "CAND15", "timestamp": "2026-08-23T03:32:08.090328+00:00", "cluster_members": ["CUST0003", "CUST0012", "CUST0043", "CUST0077", "CUST0088", "CUST0098", "CUST0109", "CUST0125", "CUST0139", "CUST0153", "CUST0159", "CUST0166", "CUST0180", "CUST0201", "CUST0209", "CUST0245", "CUST0261", "CUST0265", "CUST0273", "CUST0277", "CUST0297", "CUST0315", "CUST0334", "CUST0347", "CUST0381", "CUST0405", "CUST0412", "CUST0428", "CUST0429", "CUST0462", "CUST0471"], "evidence_bundle": {"cluster_id": "CAND15", "size": 31, "customer_ids": ["CUST0003", "CUST0012", "CUST0043", "CUST0077", "CUST0088", "CUST0098", "CUST0109", "CUST0125", "CUST0139", "CUST0153", "CUST0159", "CUST0166", "CUST0180", "CUST0201", "CUST0209", "CUST0245", "CUST0261", "CUST0265", "CUST0273", "CUST0277", "CUST0297", "CUST0315", "CUST0334", "CUST0347", "CUST0381", "CUST0405", "CUST0412", "CUST0428", "CUST0429", "CUST0462", "CUST0471"], "formation_type": null}, "graph_score_inputs": {"size": 31, "strong_link_count": 0, "weak_link_count": 84, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 90, "total_amount": 268965, "avg_order_amount": 2988.5, "return_rate": 0.08888888888888889, "chargeback_rate": 0.022222222222222223, "shared_coupon_count": 0, "time_span_days": 178.87412037037038, "order_velocity": 0.5031471283472937, "formation_type_strong": 0}, "lightgbm_probability": 0.0033586500336385537, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0034 < 0.50 threshold — insufficient signal for action"}
|
| 72 |
+
{"case_id": "CAND16", "timestamp": "2026-08-23T03:32:08.098119+00:00", "cluster_members": ["CUST0004", "CUST0008", "CUST0027", "CUST0030", "CUST0042", "CUST0063", "CUST0075", "CUST0087", "CUST0110", "CUST0117", "CUST0120", "CUST0133", "CUST0135", "CUST0137", "CUST0144", "CUST0152", "CUST0154", "CUST0163", "CUST0170", "CUST0178", "CUST0179", "CUST0195", "CUST0198", "CUST0208", "CUST0210", "CUST0221", "CUST0228", "CUST0231", "CUST0237", "CUST0246", "CUST0251", "CUST0254", "CUST0266", "CUST0282", "CUST0295", "CUST0300", "CUST0303", "CUST0304", "CUST0335", "CUST0355", "CUST0365", "CUST0399", "CUST0420", "CUST0425", "CUST0470", "CUST0483", "CUST0486", "CUST0487", "CUST0491", "CUST0492", "CUST0498"], "evidence_bundle": {"cluster_id": "CAND16", "size": 51, "customer_ids": ["CUST0004", "CUST0008", "CUST0027", "CUST0030", "CUST0042", "CUST0063", "CUST0075", "CUST0087", "CUST0110", "CUST0117", "CUST0120", "CUST0133", "CUST0135", "CUST0137", "CUST0144", "CUST0152", "CUST0154", "CUST0163", "CUST0170", "CUST0178", "CUST0179", "CUST0195", "CUST0198", "CUST0208", "CUST0210", "CUST0221", "CUST0228", "CUST0231", "CUST0237", "CUST0246", "CUST0251", "CUST0254", "CUST0266", "CUST0282", "CUST0295", "CUST0300", "CUST0303", "CUST0304", "CUST0335", "CUST0355", "CUST0365", "CUST0399", "CUST0420", "CUST0425", "CUST0470", "CUST0483", "CUST0486", "CUST0487", "CUST0491", "CUST0492", "CUST0498"], "formation_type": null}, "graph_score_inputs": {"size": 51, "strong_link_count": 1, "weak_link_count": 167, "strong_link_density": 0.000784313725490196, "has_same_contact_edge": 1, "order_count": 145, "total_amount": 381606, "avg_order_amount": 2631.7655172413793, "return_rate": 0.2, "chargeback_rate": 0.0896551724137931, "shared_coupon_count": 0, "time_span_days": 180.07700231481482, "order_velocity": 0.8052110937881319, "formation_type_strong": 0}, "lightgbm_probability": 0.007646314104742993, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0076 < 0.50 threshold — insufficient signal for action"}
|
| 73 |
+
{"case_id": "CAND17", "timestamp": "2026-08-23T03:32:08.110140+00:00", "cluster_members": ["CUST0005", "CUST0022", "CUST0028", "CUST0038", "CUST0102", "CUST0111", "CUST0113", "CUST0140", "CUST0161", "CUST0171", "CUST0177", "CUST0202", "CUST0222", "CUST0235", "CUST0252", "CUST0257", "CUST0263", "CUST0288", "CUST0293", "CUST0299", "CUST0308", "CUST0311", "CUST0353", "CUST0357", "CUST0364", "CUST0370", "CUST0383", "CUST0386", "CUST0387", "CUST0391", "CUST0396", "CUST0438", "CUST0442", "CUST0456", "CUST0460", "CUST0488", "CUST0490", "CUST0495", "CUST0496", "CUST0500"], "evidence_bundle": {"cluster_id": "CAND17", "size": 40, "customer_ids": ["CUST0005", "CUST0022", "CUST0028", "CUST0038", "CUST0102", "CUST0111", "CUST0113", "CUST0140", "CUST0161", "CUST0171", "CUST0177", "CUST0202", "CUST0222", "CUST0235", "CUST0252", "CUST0257", "CUST0263", "CUST0288", "CUST0293", "CUST0299", "CUST0308", "CUST0311", "CUST0353", "CUST0357", "CUST0364", "CUST0370", "CUST0383", "CUST0386", "CUST0387", "CUST0391", "CUST0396", "CUST0438", "CUST0442", "CUST0456", "CUST0460", "CUST0488", "CUST0490", "CUST0495", "CUST0496", "CUST0500"], "formation_type": null}, "graph_score_inputs": {"size": 40, "strong_link_count": 0, "weak_link_count": 112, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 99, "total_amount": 276653, "avg_order_amount": 2794.4747474747473, "return_rate": 0.15151515151515152, "chargeback_rate": 0.030303030303030304, "shared_coupon_count": 0, "time_span_days": 172.41998842592594, "order_velocity": 0.5741793680871972, "formation_type_strong": 0}, "lightgbm_probability": 0.0035456513474297945, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 74 |
+
{"case_id": "CAND18", "timestamp": "2026-08-23T03:32:08.120050+00:00", "cluster_members": ["CUST0006", "CUST0011", "CUST0024", "CUST0025", "CUST0033", "CUST0044", "CUST0079", "CUST0084", "CUST0101", "CUST0107", "CUST0108", "CUST0114", "CUST0132", "CUST0145", "CUST0157", "CUST0172", "CUST0227", "CUST0244", "CUST0255", "CUST0256", "CUST0267", "CUST0271", "CUST0284", "CUST0291", "CUST0296", "CUST0316", "CUST0319", "CUST0329", "CUST0336", "CUST0342", "CUST0348", "CUST0349", "CUST0367", "CUST0375", "CUST0389", "CUST0407", "CUST0455", "CUST0489", "CUST0499"], "evidence_bundle": {"cluster_id": "CAND18", "size": 39, "customer_ids": ["CUST0006", "CUST0011", "CUST0024", "CUST0025", "CUST0033", "CUST0044", "CUST0079", "CUST0084", "CUST0101", "CUST0107", "CUST0108", "CUST0114", "CUST0132", "CUST0145", "CUST0157", "CUST0172", "CUST0227", "CUST0244", "CUST0255", "CUST0256", "CUST0267", "CUST0271", "CUST0284", "CUST0291", "CUST0296", "CUST0316", "CUST0319", "CUST0329", "CUST0336", "CUST0342", "CUST0348", "CUST0349", "CUST0367", "CUST0375", "CUST0389", "CUST0407", "CUST0455", "CUST0489", "CUST0499"], "formation_type": null}, "graph_score_inputs": {"size": 39, "strong_link_count": 1, "weak_link_count": 95, "strong_link_density": 0.001349527665317139, "has_same_contact_edge": 0, "order_count": 108, "total_amount": 321113, "avg_order_amount": 2973.2685185185187, "return_rate": 0.18518518518518517, "chargeback_rate": 0.10185185185185185, "shared_coupon_count": 0, "time_span_days": 176.43193287037036, "order_velocity": 0.6121340861767395, "formation_type_strong": 0}, "lightgbm_probability": 0.006896318028648148, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0069 < 0.50 threshold — insufficient signal for action"}
|
| 75 |
+
{"case_id": "CAND19", "timestamp": "2026-08-23T03:32:08.126760+00:00", "cluster_members": ["CUST0007", "CUST0014", "CUST0015", "CUST0016", "CUST0032", "CUST0037", "CUST0065", "CUST0069", "CUST0070", "CUST0095", "CUST0106", "CUST0115", "CUST0124", "CUST0131", "CUST0149", "CUST0191", "CUST0200", "CUST0204", "CUST0215", "CUST0218", "CUST0223", "CUST0238", "CUST0239", "CUST0241", "CUST0242", "CUST0264", "CUST0276", "CUST0280", "CUST0305", "CUST0314", "CUST0323", "CUST0327", "CUST0339", "CUST0350", "CUST0352", "CUST0356", "CUST0358", "CUST0362", "CUST0379", "CUST0401", "CUST0418", "CUST0440", "CUST0443", "CUST0449", "CUST0479"], "evidence_bundle": {"cluster_id": "CAND19", "size": 45, "customer_ids": ["CUST0007", "CUST0014", "CUST0015", "CUST0016", "CUST0032", "CUST0037", "CUST0065", "CUST0069", "CUST0070", "CUST0095", "CUST0106", "CUST0115", "CUST0124", "CUST0131", "CUST0149", "CUST0191", "CUST0200", "CUST0204", "CUST0215", "CUST0218", "CUST0223", "CUST0238", "CUST0239", "CUST0241", "CUST0242", "CUST0264", "CUST0276", "CUST0280", "CUST0305", "CUST0314", "CUST0323", "CUST0327", "CUST0339", "CUST0350", "CUST0352", "CUST0356", "CUST0358", "CUST0362", "CUST0379", "CUST0401", "CUST0418", "CUST0440", "CUST0443", "CUST0449", "CUST0479"], "formation_type": null}, "graph_score_inputs": {"size": 45, "strong_link_count": 3, "weak_link_count": 106, "strong_link_density": 0.0030303030303030303, "has_same_contact_edge": 0, "order_count": 110, "total_amount": 308935, "avg_order_amount": 2808.5, "return_rate": 0.17272727272727273, "chargeback_rate": 0.045454545454545456, "shared_coupon_count": 1, "time_span_days": 180.25027777777777, "order_velocity": 0.610262582427828, "formation_type_strong": 0}, "lightgbm_probability": 0.0034784417949967547, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 76 |
+
{"case_id": "CAND20", "timestamp": "2026-08-23T03:32:08.137991+00:00", "cluster_members": ["CUST0010", "CUST0023", "CUST0029", "CUST0090", "CUST0119", "CUST0121", "CUST0129", "CUST0141", "CUST0143", "CUST0155", "CUST0196", "CUST0207", "CUST0230", "CUST0233", "CUST0247", "CUST0330", "CUST0338", "CUST0372", "CUST0374", "CUST0380", "CUST0461", "CUST0467", "CUST0480", "CUST0493"], "evidence_bundle": {"cluster_id": "CAND20", "size": 24, "customer_ids": ["CUST0010", "CUST0023", "CUST0029", "CUST0090", "CUST0119", "CUST0121", "CUST0129", "CUST0141", "CUST0143", "CUST0155", "CUST0196", "CUST0207", "CUST0230", "CUST0233", "CUST0247", "CUST0330", "CUST0338", "CUST0372", "CUST0374", "CUST0380", "CUST0461", "CUST0467", "CUST0480", "CUST0493"], "formation_type": null}, "graph_score_inputs": {"size": 24, "strong_link_count": 0, "weak_link_count": 47, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 61, "total_amount": 165404, "avg_order_amount": 2711.5409836065573, "return_rate": 0.18032786885245902, "chargeback_rate": 0.08196721311475409, "shared_coupon_count": 0, "time_span_days": 169.00943287037038, "order_velocity": 0.3609266001548374, "formation_type_strong": 0}, "lightgbm_probability": 0.007559966037372132, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0076 < 0.50 threshold — insufficient signal for action"}
|
| 77 |
+
{"case_id": "CAND21", "timestamp": "2026-08-23T03:32:08.146573+00:00", "cluster_members": ["CUST0013", "CUST0026", "CUST0031", "CUST0035", "CUST0039", "CUST0067", "CUST0068", "CUST0094", "CUST0116", "CUST0122", "CUST0128", "CUST0184", "CUST0193", "CUST0203", "CUST0212", "CUST0217", "CUST0248", "CUST0268", "CUST0283", "CUST0312", "CUST0340", "CUST0351", "CUST0384", "CUST0402", "CUST0417", "CUST0427", "CUST0430", "CUST0434", "CUST0451", "CUST0463", "CUST0466", "CUST0469", "CUST0473", "CUST0482", "CUST0497"], "evidence_bundle": {"cluster_id": "CAND21", "size": 35, "customer_ids": ["CUST0013", "CUST0026", "CUST0031", "CUST0035", "CUST0039", "CUST0067", "CUST0068", "CUST0094", "CUST0116", "CUST0122", "CUST0128", "CUST0184", "CUST0193", "CUST0203", "CUST0212", "CUST0217", "CUST0248", "CUST0268", "CUST0283", "CUST0312", "CUST0340", "CUST0351", "CUST0384", "CUST0402", "CUST0417", "CUST0427", "CUST0430", "CUST0434", "CUST0451", "CUST0463", "CUST0466", "CUST0469", "CUST0473", "CUST0482", "CUST0497"], "formation_type": null}, "graph_score_inputs": {"size": 35, "strong_link_count": 0, "weak_link_count": 84, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 89, "total_amount": 250715, "avg_order_amount": 2817.0224719101125, "return_rate": 0.23595505617977527, "chargeback_rate": 0.07865168539325842, "shared_coupon_count": 0, "time_span_days": 179.63657407407408, "order_velocity": 0.4954447637333608, "formation_type_strong": 0}, "lightgbm_probability": 0.007561351403107364, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0076 < 0.50 threshold — insufficient signal for action"}
|
| 78 |
+
{"case_id": "CAND22", "timestamp": "2026-08-23T03:32:08.154043+00:00", "cluster_members": ["CUST0017", "CUST0036", "CUST0062", "CUST0071", "CUST0082", "CUST0083", "CUST0085", "CUST0096", "CUST0123", "CUST0142", "CUST0147", "CUST0175", "CUST0189", "CUST0216", "CUST0220", "CUST0224", "CUST0232", "CUST0234", "CUST0306", "CUST0328", "CUST0337", "CUST0341", "CUST0345", "CUST0346", "CUST0361", "CUST0388", "CUST0421", "CUST0426", "CUST0433", "CUST0435", "CUST0444", "CUST0450", "CUST0454", "CUST0477"], "evidence_bundle": {"cluster_id": "CAND22", "size": 34, "customer_ids": ["CUST0017", "CUST0036", "CUST0062", "CUST0071", "CUST0082", "CUST0083", "CUST0085", "CUST0096", "CUST0123", "CUST0142", "CUST0147", "CUST0175", "CUST0189", "CUST0216", "CUST0220", "CUST0224", "CUST0232", "CUST0234", "CUST0306", "CUST0328", "CUST0337", "CUST0341", "CUST0345", "CUST0346", "CUST0361", "CUST0388", "CUST0421", "CUST0426", "CUST0433", "CUST0435", "CUST0444", "CUST0450", "CUST0454", "CUST0477"], "formation_type": null}, "graph_score_inputs": {"size": 34, "strong_link_count": 0, "weak_link_count": 79, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 86, "total_amount": 244617, "avg_order_amount": 2844.3837209302324, "return_rate": 0.09302325581395349, "chargeback_rate": 0.03488372093023256, "shared_coupon_count": 0, "time_span_days": 176.02006944444443, "order_velocity": 0.4885806503283046, "formation_type_strong": 0}, "lightgbm_probability": 0.0035456513474297945, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 79 |
+
{"case_id": "CAND23", "timestamp": "2026-08-23T03:32:08.167111+00:00", "cluster_members": ["CUST0018", "CUST0021", "CUST0091", "CUST0092", "CUST0112", "CUST0160", "CUST0174", "CUST0187", "CUST0270", "CUST0298", "CUST0307", "CUST0310", "CUST0332", "CUST0343", "CUST0431", "CUST0474", "CUST0475", "CUST0494"], "evidence_bundle": {"cluster_id": "CAND23", "size": 18, "customer_ids": ["CUST0018", "CUST0021", "CUST0091", "CUST0092", "CUST0112", "CUST0160", "CUST0174", "CUST0187", "CUST0270", "CUST0298", "CUST0307", "CUST0310", "CUST0332", "CUST0343", "CUST0431", "CUST0474", "CUST0475", "CUST0494"], "formation_type": null}, "graph_score_inputs": {"size": 18, "strong_link_count": 0, "weak_link_count": 35, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 44, "total_amount": 140230, "avg_order_amount": 3187.0454545454545, "return_rate": 0.25, "chargeback_rate": 0.022727272727272728, "shared_coupon_count": 0, "time_span_days": 165.36368055555556, "order_velocity": 0.26608019277375583, "formation_type_strong": 0}, "lightgbm_probability": 0.03305941612108949, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0331 < 0.50 threshold — insufficient signal for action"}
|
| 80 |
+
{"case_id": "CAND24", "timestamp": "2026-08-23T03:32:08.189940+00:00", "cluster_members": ["CUST0034", "CUST0066", "CUST0078", "CUST0100", "CUST0104", "CUST0134", "CUST0146", "CUST0150", "CUST0151", "CUST0158", "CUST0182", "CUST0183", "CUST0185", "CUST0188", "CUST0190", "CUST0259", "CUST0269", "CUST0279", "CUST0285", "CUST0289", "CUST0301", "CUST0302", "CUST0344", "CUST0354", "CUST0366", "CUST0368", "CUST0378", "CUST0404", "CUST0408", "CUST0432", "CUST0436", "CUST0437", "CUST0439", "CUST0441", "CUST0447", "CUST0448", "CUST0457", "CUST0481"], "evidence_bundle": {"cluster_id": "CAND24", "size": 38, "customer_ids": ["CUST0034", "CUST0066", "CUST0078", "CUST0100", "CUST0104", "CUST0134", "CUST0146", "CUST0150", "CUST0151", "CUST0158", "CUST0182", "CUST0183", "CUST0185", "CUST0188", "CUST0190", "CUST0259", "CUST0269", "CUST0279", "CUST0285", "CUST0289", "CUST0301", "CUST0302", "CUST0344", "CUST0354", "CUST0366", "CUST0368", "CUST0378", "CUST0404", "CUST0408", "CUST0432", "CUST0436", "CUST0437", "CUST0439", "CUST0441", "CUST0447", "CUST0448", "CUST0457", "CUST0481"], "formation_type": null}, "graph_score_inputs": {"size": 38, "strong_link_count": 0, "weak_link_count": 90, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 91, "total_amount": 244127, "avg_order_amount": 2682.714285714286, "return_rate": 0.12087912087912088, "chargeback_rate": 0.04395604395604396, "shared_coupon_count": 0, "time_span_days": 178.13104166666668, "order_velocity": 0.510859865571811, "formation_type_strong": 0}, "lightgbm_probability": 0.0035456513474297945, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 81 |
+
{"case_id": "CAND25", "timestamp": "2026-08-23T03:32:08.198347+00:00", "cluster_members": ["CUST0061", "CUST0093", "CUST0105", "CUST0130", "CUST0136", "CUST0148", "CUST0164", "CUST0186", "CUST0197", "CUST0205", "CUST0206", "CUST0214", "CUST0260", "CUST0309", "CUST0320", "CUST0321", "CUST0359", "CUST0363", "CUST0376", "CUST0377", "CUST0385", "CUST0394", "CUST0403", "CUST0416", "CUST0424", "CUST0453"], "evidence_bundle": {"cluster_id": "CAND25", "size": 26, "customer_ids": ["CUST0061", "CUST0093", "CUST0105", "CUST0130", "CUST0136", "CUST0148", "CUST0164", "CUST0186", "CUST0197", "CUST0205", "CUST0206", "CUST0214", "CUST0260", "CUST0309", "CUST0320", "CUST0321", "CUST0359", "CUST0363", "CUST0376", "CUST0377", "CUST0385", "CUST0394", "CUST0403", "CUST0416", "CUST0424", "CUST0453"], "formation_type": null}, "graph_score_inputs": {"size": 26, "strong_link_count": 0, "weak_link_count": 71, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 62, "total_amount": 169608, "avg_order_amount": 2735.6129032258063, "return_rate": 0.16129032258064516, "chargeback_rate": 0.06451612903225806, "shared_coupon_count": 0, "time_span_days": 176.1874652777778, "order_velocity": 0.3518979054625173, "formation_type_strong": 0}, "lightgbm_probability": 0.0035456513474297945, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 82 |
+
{"case_id": "CAND26", "timestamp": "2026-08-23T03:32:08.205211+00:00", "cluster_members": ["CUST0045", "CUST0046", "CUST0047", "CUST0048"], "evidence_bundle": {"cluster_id": "CAND26", "size": 4, "customer_ids": ["CUST0045", "CUST0046", "CUST0047", "CUST0048"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 11, "total_amount": 25534, "avg_order_amount": 2321.2727272727275, "return_rate": 0.36363636363636365, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 157.74650462962964, "order_velocity": 0.06973213147148151, "formation_type_strong": 0}, "lightgbm_probability": 0.0035484719416527992, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0035 < 0.50 threshold — insufficient signal for action"}
|
| 83 |
+
{"case_id": "CAND27", "timestamp": "2026-08-23T03:32:08.214578+00:00", "cluster_members": ["CUST0049", "CUST0050", "CUST0051", "CUST0052"], "evidence_bundle": {"cluster_id": "CAND27", "size": 4, "customer_ids": ["CUST0049", "CUST0050", "CUST0051", "CUST0052"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 8, "total_amount": 20046, "avg_order_amount": 2505.75, "return_rate": 0.25, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 173.32074074074075, "order_velocity": 0.046157199454661235, "formation_type_strong": 0}, "lightgbm_probability": 0.0031715868230902835, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0032 < 0.50 threshold — insufficient signal for action"}
|
| 84 |
+
{"case_id": "CAND28", "timestamp": "2026-08-23T03:32:08.254596+00:00", "cluster_members": ["CUST0053", "CUST0054", "CUST0055", "CUST0056"], "evidence_bundle": {"cluster_id": "CAND28", "size": 4, "customer_ids": ["CUST0053", "CUST0054", "CUST0055", "CUST0056"], "formation_type": null}, "graph_score_inputs": {"size": 4, "strong_link_count": 0, "weak_link_count": 6, "strong_link_density": 0.0, "has_same_contact_edge": 0, "order_count": 9, "total_amount": 26589, "avg_order_amount": 2954.3333333333335, "return_rate": 0.6666666666666666, "chargeback_rate": 0.0, "shared_coupon_count": 0, "time_span_days": 146.59680555555556, "order_velocity": 0.06139287937341366, "formation_type_strong": 0}, "lightgbm_probability": 0.003058997865465553, "llm_narrative": null, "llm_confidence_statement": null, "policy_decision": "log_only", "action_taken": null, "human_reviewer": null, "outcome": null, "reason_if_not_auto_actioned": "risk=0.0031 < 0.50 threshold — insufficient signal for action"}
|
|
@@ -11,10 +11,10 @@
|
|
| 11 |
],
|
| 12 |
"risk_probability": 0.9955003588432927,
|
| 13 |
"policy_decision": "escalate",
|
| 14 |
-
"llm_narrative": "The five
|
| 15 |
-
"llm_confidence_statement": "
|
| 16 |
"action_taken": null,
|
| 17 |
-
"timestamp": "2026-08-
|
| 18 |
},
|
| 19 |
{
|
| 20 |
"case_id": "CASE02",
|
|
@@ -28,10 +28,10 @@
|
|
| 28 |
],
|
| 29 |
"risk_probability": 0.9940850384979173,
|
| 30 |
"policy_decision": "escalate",
|
| 31 |
-
"llm_narrative": "
|
| 32 |
-
"llm_confidence_statement": "
|
| 33 |
"action_taken": null,
|
| 34 |
-
"timestamp": "2026-08-
|
| 35 |
},
|
| 36 |
{
|
| 37 |
"case_id": "CASE03",
|
|
@@ -45,10 +45,10 @@
|
|
| 45 |
],
|
| 46 |
"risk_probability": 0.9959231873282086,
|
| 47 |
"policy_decision": "escalate",
|
| 48 |
-
"llm_narrative": "The five
|
| 49 |
-
"llm_confidence_statement": "The
|
| 50 |
"action_taken": null,
|
| 51 |
-
"timestamp": "2026-08-
|
| 52 |
},
|
| 53 |
{
|
| 54 |
"case_id": "CASE04",
|
|
@@ -63,10 +63,10 @@
|
|
| 63 |
],
|
| 64 |
"risk_probability": 0.9913203009684713,
|
| 65 |
"policy_decision": "escalate",
|
| 66 |
-
"llm_narrative": "The six customers (CUST0024‑CUST0029) form a strong_anchored cluster with 15 strong links and no weak links,
|
| 67 |
-
"llm_confidence_statement": "
|
| 68 |
"action_taken": null,
|
| 69 |
-
"timestamp": "2026-08-
|
| 70 |
},
|
| 71 |
{
|
| 72 |
"case_id": "CASE05",
|
|
@@ -80,10 +80,10 @@
|
|
| 80 |
],
|
| 81 |
"risk_probability": 0.9969377389203431,
|
| 82 |
"policy_decision": "escalate",
|
| 83 |
-
"llm_narrative": "The five customers (CUST0036‑CUST0040)
|
| 84 |
-
"llm_confidence_statement": "
|
| 85 |
"action_taken": null,
|
| 86 |
-
"timestamp": "2026-08-
|
| 87 |
},
|
| 88 |
{
|
| 89 |
"case_id": "CASE06",
|
|
@@ -95,10 +95,10 @@
|
|
| 95 |
],
|
| 96 |
"risk_probability": 0.9950028638127228,
|
| 97 |
"policy_decision": "escalate",
|
| 98 |
-
"llm_narrative": "The three customers (CUST0001, CUST0002, CUST0003) form a strong
|
| 99 |
-
"llm_confidence_statement": "The model assigns a risk probability of
|
| 100 |
"action_taken": null,
|
| 101 |
-
"timestamp": "2026-08-
|
| 102 |
},
|
| 103 |
{
|
| 104 |
"case_id": "CASE07",
|
|
@@ -111,10 +111,10 @@
|
|
| 111 |
],
|
| 112 |
"risk_probability": 0.9958773824170732,
|
| 113 |
"policy_decision": "escalate",
|
| 114 |
-
"llm_narrative": "The four
|
| 115 |
-
"llm_confidence_statement": "
|
| 116 |
"action_taken": null,
|
| 117 |
-
"timestamp": "2026-08-
|
| 118 |
},
|
| 119 |
{
|
| 120 |
"case_id": "CASE08",
|
|
@@ -128,10 +128,10 @@
|
|
| 128 |
],
|
| 129 |
"risk_probability": 0.9968053865328341,
|
| 130 |
"policy_decision": "escalate",
|
| 131 |
-
"llm_narrative": "The five
|
| 132 |
-
"llm_confidence_statement": "The
|
| 133 |
"action_taken": null,
|
| 134 |
-
"timestamp": "2026-08-
|
| 135 |
},
|
| 136 |
{
|
| 137 |
"case_id": "CASE09",
|
|
@@ -146,7 +146,7 @@
|
|
| 146 |
"llm_narrative": null,
|
| 147 |
"llm_confidence_statement": null,
|
| 148 |
"action_taken": null,
|
| 149 |
-
"timestamp": "2026-08-
|
| 150 |
},
|
| 151 |
{
|
| 152 |
"case_id": "CASE10",
|
|
@@ -158,10 +158,10 @@
|
|
| 158 |
],
|
| 159 |
"risk_probability": 0.9927212653417073,
|
| 160 |
"policy_decision": "escalate",
|
| 161 |
-
"llm_narrative": "The three customers (CUST0030, CUST0031, CUST0032)
|
| 162 |
-
"llm_confidence_statement": "The assessment is
|
| 163 |
"action_taken": null,
|
| 164 |
-
"timestamp": "2026-08-
|
| 165 |
},
|
| 166 |
{
|
| 167 |
"case_id": "CASE11",
|
|
@@ -173,10 +173,10 @@
|
|
| 173 |
],
|
| 174 |
"risk_probability": 0.9969893801631614,
|
| 175 |
"policy_decision": "escalate",
|
| 176 |
-
"llm_narrative": "The three customers (CUST0033, CUST0034, CUST0035)
|
| 177 |
-
"llm_confidence_statement": "The
|
| 178 |
"action_taken": null,
|
| 179 |
-
"timestamp": "2026-08-
|
| 180 |
},
|
| 181 |
{
|
| 182 |
"case_id": "CASE12",
|
|
@@ -188,10 +188,10 @@
|
|
| 188 |
],
|
| 189 |
"risk_probability": 0.9867466290228035,
|
| 190 |
"policy_decision": "auto_hold",
|
| 191 |
-
"llm_narrative": "The three customers (CUST0501, CUST0502, CUST0503)
|
| 192 |
-
"llm_confidence_statement": "
|
| 193 |
"action_taken": null,
|
| 194 |
-
"timestamp": "2026-08-
|
| 195 |
},
|
| 196 |
{
|
| 197 |
"case_id": "CASE13",
|
|
@@ -221,7 +221,7 @@
|
|
| 221 |
"llm_narrative": null,
|
| 222 |
"llm_confidence_statement": null,
|
| 223 |
"action_taken": null,
|
| 224 |
-
"timestamp": "2026-08-
|
| 225 |
},
|
| 226 |
{
|
| 227 |
"case_id": "CASE14",
|
|
@@ -274,7 +274,7 @@
|
|
| 274 |
"llm_narrative": null,
|
| 275 |
"llm_confidence_statement": null,
|
| 276 |
"action_taken": null,
|
| 277 |
-
"timestamp": "2026-08-
|
| 278 |
},
|
| 279 |
{
|
| 280 |
"case_id": "CASE15",
|
|
@@ -317,7 +317,7 @@
|
|
| 317 |
"llm_narrative": null,
|
| 318 |
"llm_confidence_statement": null,
|
| 319 |
"action_taken": null,
|
| 320 |
-
"timestamp": "2026-08-
|
| 321 |
},
|
| 322 |
{
|
| 323 |
"case_id": "CASE16",
|
|
@@ -380,7 +380,7 @@
|
|
| 380 |
"llm_narrative": null,
|
| 381 |
"llm_confidence_statement": null,
|
| 382 |
"action_taken": null,
|
| 383 |
-
"timestamp": "2026-08-
|
| 384 |
},
|
| 385 |
{
|
| 386 |
"case_id": "CASE17",
|
|
@@ -432,7 +432,7 @@
|
|
| 432 |
"llm_narrative": null,
|
| 433 |
"llm_confidence_statement": null,
|
| 434 |
"action_taken": null,
|
| 435 |
-
"timestamp": "2026-08-
|
| 436 |
},
|
| 437 |
{
|
| 438 |
"case_id": "CASE18",
|
|
@@ -483,7 +483,7 @@
|
|
| 483 |
"llm_narrative": null,
|
| 484 |
"llm_confidence_statement": null,
|
| 485 |
"action_taken": null,
|
| 486 |
-
"timestamp": "2026-08-
|
| 487 |
},
|
| 488 |
{
|
| 489 |
"case_id": "CASE19",
|
|
@@ -540,7 +540,7 @@
|
|
| 540 |
"llm_narrative": null,
|
| 541 |
"llm_confidence_statement": null,
|
| 542 |
"action_taken": null,
|
| 543 |
-
"timestamp": "2026-08-
|
| 544 |
},
|
| 545 |
{
|
| 546 |
"case_id": "CASE20",
|
|
@@ -576,7 +576,7 @@
|
|
| 576 |
"llm_narrative": null,
|
| 577 |
"llm_confidence_statement": null,
|
| 578 |
"action_taken": null,
|
| 579 |
-
"timestamp": "2026-08-
|
| 580 |
},
|
| 581 |
{
|
| 582 |
"case_id": "CASE21",
|
|
@@ -623,7 +623,7 @@
|
|
| 623 |
"llm_narrative": null,
|
| 624 |
"llm_confidence_statement": null,
|
| 625 |
"action_taken": null,
|
| 626 |
-
"timestamp": "2026-08-
|
| 627 |
},
|
| 628 |
{
|
| 629 |
"case_id": "CASE22",
|
|
@@ -669,7 +669,7 @@
|
|
| 669 |
"llm_narrative": null,
|
| 670 |
"llm_confidence_statement": null,
|
| 671 |
"action_taken": null,
|
| 672 |
-
"timestamp": "2026-08-
|
| 673 |
},
|
| 674 |
{
|
| 675 |
"case_id": "CASE23",
|
|
@@ -699,7 +699,7 @@
|
|
| 699 |
"llm_narrative": null,
|
| 700 |
"llm_confidence_statement": null,
|
| 701 |
"action_taken": null,
|
| 702 |
-
"timestamp": "2026-08-
|
| 703 |
},
|
| 704 |
{
|
| 705 |
"case_id": "CASE24",
|
|
@@ -749,7 +749,7 @@
|
|
| 749 |
"llm_narrative": null,
|
| 750 |
"llm_confidence_statement": null,
|
| 751 |
"action_taken": null,
|
| 752 |
-
"timestamp": "2026-08-
|
| 753 |
},
|
| 754 |
{
|
| 755 |
"case_id": "CASE25",
|
|
@@ -787,7 +787,7 @@
|
|
| 787 |
"llm_narrative": null,
|
| 788 |
"llm_confidence_statement": null,
|
| 789 |
"action_taken": null,
|
| 790 |
-
"timestamp": "2026-08-
|
| 791 |
},
|
| 792 |
{
|
| 793 |
"case_id": "CASE26",
|
|
@@ -803,7 +803,7 @@
|
|
| 803 |
"llm_narrative": null,
|
| 804 |
"llm_confidence_statement": null,
|
| 805 |
"action_taken": null,
|
| 806 |
-
"timestamp": "2026-08-
|
| 807 |
},
|
| 808 |
{
|
| 809 |
"case_id": "CASE27",
|
|
@@ -819,7 +819,7 @@
|
|
| 819 |
"llm_narrative": null,
|
| 820 |
"llm_confidence_statement": null,
|
| 821 |
"action_taken": null,
|
| 822 |
-
"timestamp": "2026-08-
|
| 823 |
},
|
| 824 |
{
|
| 825 |
"case_id": "CASE28",
|
|
@@ -835,6 +835,6 @@
|
|
| 835 |
"llm_narrative": null,
|
| 836 |
"llm_confidence_statement": null,
|
| 837 |
"action_taken": null,
|
| 838 |
-
"timestamp": "2026-08-
|
| 839 |
}
|
| 840 |
]
|
|
|
|
| 11 |
],
|
| 12 |
"risk_probability": 0.9955003588432927,
|
| 13 |
"policy_decision": "escalate",
|
| 14 |
+
"llm_narrative": "The five‑customer cluster is classified as a strong_anchored formation with ten strong links and no weak links. It exhibits a 50% return rate, a 12.5% chargeback rate, and the members shared one coupon while generating a total transaction amount of $62,087. The calculated risk probability of 99.55% triggered an escalation decision.",
|
| 15 |
+
"llm_confidence_statement": "The assessment is made with very high confidence based on the presented evidence.",
|
| 16 |
"action_taken": null,
|
| 17 |
+
"timestamp": "2026-08-23T03:31:16.700405+00:00"
|
| 18 |
},
|
| 19 |
{
|
| 20 |
"case_id": "CASE02",
|
|
|
|
| 28 |
],
|
| 29 |
"risk_probability": 0.9940850384979173,
|
| 30 |
"policy_decision": "escalate",
|
| 31 |
+
"llm_narrative": "A cluster of five customers (CUST0019, CUST0020, CUST0021, CUST0022, CUST0023) is connected by ten strong links with no weak links, forming a strong_anchored network. The group generated a total transaction amount of 70,841, exhibited a return rate of 33.33% and a chargeback rate of 5.56%, and no shared coupons were used. The risk probability for this cluster is 0.994, leading to an escalation decision.",
|
| 32 |
+
"llm_confidence_statement": "The assessment is made with very high confidence, reflected by a risk probability of approximately 99.4%.",
|
| 33 |
"action_taken": null,
|
| 34 |
+
"timestamp": "2026-08-23T03:31:20.946999+00:00"
|
| 35 |
},
|
| 36 |
{
|
| 37 |
"case_id": "CASE03",
|
|
|
|
| 45 |
],
|
| 46 |
"risk_probability": 0.9959231873282086,
|
| 47 |
"policy_decision": "escalate",
|
| 48 |
+
"llm_narrative": "The five customers (CUST0004‑CUST0008) form a strong‑anchored cluster with seven strong links and no weak links, collectively transacting $63,837. Their return rate of 37.5% and chargeback rate of 6.25% are elevated, contributing to a risk probability of 99.6%.",
|
| 49 |
+
"llm_confidence_statement": "The analysis is made with very high confidence.",
|
| 50 |
"action_taken": null,
|
| 51 |
+
"timestamp": "2026-08-23T03:31:25.232360+00:00"
|
| 52 |
},
|
| 53 |
{
|
| 54 |
"case_id": "CASE04",
|
|
|
|
| 63 |
],
|
| 64 |
"risk_probability": 0.9913203009684713,
|
| 65 |
"policy_decision": "escalate",
|
| 66 |
+
"llm_narrative": "The six customers (CUST0024‑CUST0029) form a strong_anchored cluster with 15 strong links and no weak links, indicating tightly connected activity. The group exhibits a high return rate of 55% and a chargeback rate of 5% across a total transaction volume of $81,019. Combined with a risk probability of 99.13%, these metrics point to coordinated fraudulent behavior.",
|
| 67 |
+
"llm_confidence_statement": "We are highly confident in this assessment.",
|
| 68 |
"action_taken": null,
|
| 69 |
+
"timestamp": "2026-08-23T03:31:29.527424+00:00"
|
| 70 |
},
|
| 71 |
{
|
| 72 |
"case_id": "CASE05",
|
|
|
|
| 80 |
],
|
| 81 |
"risk_probability": 0.9969377389203431,
|
| 82 |
"policy_decision": "escalate",
|
| 83 |
+
"llm_narrative": "The flagged cluster consists of five customers (CUST0036‑CUST0040) linked by ten strong connections in a strong‑anchored formation. The group exhibits a 26.7% return rate and a 20% chargeback rate on a total transaction volume of $62,270, with no weak links or shared coupons.",
|
| 84 |
+
"llm_confidence_statement": "Given the 99.7% risk probability and the observed high return and chargeback metrics, confidence in the fraud assessment is very high.",
|
| 85 |
"action_taken": null,
|
| 86 |
+
"timestamp": "2026-08-23T03:31:33.744406+00:00"
|
| 87 |
},
|
| 88 |
{
|
| 89 |
"case_id": "CASE06",
|
|
|
|
| 95 |
],
|
| 96 |
"risk_probability": 0.9950028638127228,
|
| 97 |
"policy_decision": "escalate",
|
| 98 |
+
"llm_narrative": "The three flagged customers (CUST0001, CUST0002, CUST0003) form a strong‑anchored cluster with three strong links and no weak links, share one coupon, and together generated $32,897 in transactions. Their combined return rate of 25 % and chargeback rate of 12.5 % further indicate suspicious activity.",
|
| 99 |
+
"llm_confidence_statement": "The model assigns a risk probability of 99.5 %, indicating very high confidence in the escalation decision.",
|
| 100 |
"action_taken": null,
|
| 101 |
+
"timestamp": "2026-08-23T03:31:38.223095+00:00"
|
| 102 |
},
|
| 103 |
{
|
| 104 |
"case_id": "CASE07",
|
|
|
|
| 111 |
],
|
| 112 |
"risk_probability": 0.9958773824170732,
|
| 113 |
"policy_decision": "escalate",
|
| 114 |
+
"llm_narrative": "The four customers (CUST0041‑CUST0044) form a strong‑anchored cluster with six strong links and no weak links, indicating tightly connected activity. Their combined transaction volume is $58,186, with a return rate of 33.3% and a chargeback rate of 16.7%, both elevated for a group of this size. The risk probability is 99.6%, leading to an escalation decision.",
|
| 115 |
+
"llm_confidence_statement": "The model’s confidence in this high‑risk classification is extremely high.",
|
| 116 |
"action_taken": null,
|
| 117 |
+
"timestamp": "2026-08-23T03:31:42.412917+00:00"
|
| 118 |
},
|
| 119 |
{
|
| 120 |
"case_id": "CASE08",
|
|
|
|
| 128 |
],
|
| 129 |
"risk_probability": 0.9968053865328341,
|
| 130 |
"policy_decision": "escalate",
|
| 131 |
+
"llm_narrative": "The five-customer cluster (CUST0009, CUST0010, CUST0011, CUST0012, CUST0013) forms a strong-anchored network with ten strong links and no weak links. It shows a high return rate of 47.06% and a chargeback rate of 17.65% on a total transaction amount of $59,830, resulting in a risk probability of 99.68%.",
|
| 132 |
+
"llm_confidence_statement": "The model’s confidence in this high-risk assessment is very high.",
|
| 133 |
"action_taken": null,
|
| 134 |
+
"timestamp": "2026-08-23T03:31:47.132113+00:00"
|
| 135 |
},
|
| 136 |
{
|
| 137 |
"case_id": "CASE09",
|
|
|
|
| 146 |
"llm_narrative": null,
|
| 147 |
"llm_confidence_statement": null,
|
| 148 |
"action_taken": null,
|
| 149 |
+
"timestamp": "2026-08-23T03:31:47.138032+00:00"
|
| 150 |
},
|
| 151 |
{
|
| 152 |
"case_id": "CASE10",
|
|
|
|
| 158 |
],
|
| 159 |
"risk_probability": 0.9927212653417073,
|
| 160 |
"policy_decision": "escalate",
|
| 161 |
+
"llm_narrative": "The three customers (CUST0030, CUST0031, CUST0032) are linked by two strong connections with no weak links, forming a strong‑anchored cluster. Their combined purchase total is $26,235, and both the return rate and chargeback rate are 28.6%, while the model assigns a risk probability of 99.27%.",
|
| 162 |
+
"llm_confidence_statement": "The assessment is made with high confidence.",
|
| 163 |
"action_taken": null,
|
| 164 |
+
"timestamp": "2026-08-23T03:31:52.303511+00:00"
|
| 165 |
},
|
| 166 |
{
|
| 167 |
"case_id": "CASE11",
|
|
|
|
| 173 |
],
|
| 174 |
"risk_probability": 0.9969893801631614,
|
| 175 |
"policy_decision": "escalate",
|
| 176 |
+
"llm_narrative": "The three customers (CUST0033, CUST0034, CUST0035) are connected by three strong links, forming a strong-anchored cluster. They collectively generated $50,134 in transactions, share one coupon, and exhibit a return rate of 18.2% and a chargeback rate of 9.1%.",
|
| 177 |
+
"llm_confidence_statement": "The model assigns a 99.7% probability that this cluster is high risk.",
|
| 178 |
"action_taken": null,
|
| 179 |
+
"timestamp": "2026-08-23T03:32:01.753802+00:00"
|
| 180 |
},
|
| 181 |
{
|
| 182 |
"case_id": "CASE12",
|
|
|
|
| 188 |
],
|
| 189 |
"risk_probability": 0.9867466290228035,
|
| 190 |
"policy_decision": "auto_hold",
|
| 191 |
+
"llm_narrative": "The three customers (CUST0501, CUST0502, CUST0503) are connected by three strong links, forming a strong‑anchored cluster. They share one coupon, have a combined transaction amount of $19,800, and exhibit a 16.7% return and chargeback rate each.",
|
| 192 |
+
"llm_confidence_statement": "The model assigns a risk probability of 98.7%, indicating very high confidence in the high‑risk classification.",
|
| 193 |
"action_taken": null,
|
| 194 |
+
"timestamp": "2026-08-23T03:32:08.061818+00:00"
|
| 195 |
},
|
| 196 |
{
|
| 197 |
"case_id": "CASE13",
|
|
|
|
| 221 |
"llm_narrative": null,
|
| 222 |
"llm_confidence_statement": null,
|
| 223 |
"action_taken": null,
|
| 224 |
+
"timestamp": "2026-08-23T03:32:08.070482+00:00"
|
| 225 |
},
|
| 226 |
{
|
| 227 |
"case_id": "CASE14",
|
|
|
|
| 274 |
"llm_narrative": null,
|
| 275 |
"llm_confidence_statement": null,
|
| 276 |
"action_taken": null,
|
| 277 |
+
"timestamp": "2026-08-23T03:32:08.081604+00:00"
|
| 278 |
},
|
| 279 |
{
|
| 280 |
"case_id": "CASE15",
|
|
|
|
| 317 |
"llm_narrative": null,
|
| 318 |
"llm_confidence_statement": null,
|
| 319 |
"action_taken": null,
|
| 320 |
+
"timestamp": "2026-08-23T03:32:08.090328+00:00"
|
| 321 |
},
|
| 322 |
{
|
| 323 |
"case_id": "CASE16",
|
|
|
|
| 380 |
"llm_narrative": null,
|
| 381 |
"llm_confidence_statement": null,
|
| 382 |
"action_taken": null,
|
| 383 |
+
"timestamp": "2026-08-23T03:32:08.100577+00:00"
|
| 384 |
},
|
| 385 |
{
|
| 386 |
"case_id": "CASE17",
|
|
|
|
| 432 |
"llm_narrative": null,
|
| 433 |
"llm_confidence_statement": null,
|
| 434 |
"action_taken": null,
|
| 435 |
+
"timestamp": "2026-08-23T03:32:08.111572+00:00"
|
| 436 |
},
|
| 437 |
{
|
| 438 |
"case_id": "CASE18",
|
|
|
|
| 483 |
"llm_narrative": null,
|
| 484 |
"llm_confidence_statement": null,
|
| 485 |
"action_taken": null,
|
| 486 |
+
"timestamp": "2026-08-23T03:32:08.120050+00:00"
|
| 487 |
},
|
| 488 |
{
|
| 489 |
"case_id": "CASE19",
|
|
|
|
| 540 |
"llm_narrative": null,
|
| 541 |
"llm_confidence_statement": null,
|
| 542 |
"action_taken": null,
|
| 543 |
+
"timestamp": "2026-08-23T03:32:08.126760+00:00"
|
| 544 |
},
|
| 545 |
{
|
| 546 |
"case_id": "CASE20",
|
|
|
|
| 576 |
"llm_narrative": null,
|
| 577 |
"llm_confidence_statement": null,
|
| 578 |
"action_taken": null,
|
| 579 |
+
"timestamp": "2026-08-23T03:32:08.137991+00:00"
|
| 580 |
},
|
| 581 |
{
|
| 582 |
"case_id": "CASE21",
|
|
|
|
| 623 |
"llm_narrative": null,
|
| 624 |
"llm_confidence_statement": null,
|
| 625 |
"action_taken": null,
|
| 626 |
+
"timestamp": "2026-08-23T03:32:08.147707+00:00"
|
| 627 |
},
|
| 628 |
{
|
| 629 |
"case_id": "CASE22",
|
|
|
|
| 669 |
"llm_narrative": null,
|
| 670 |
"llm_confidence_statement": null,
|
| 671 |
"action_taken": null,
|
| 672 |
+
"timestamp": "2026-08-23T03:32:08.154043+00:00"
|
| 673 |
},
|
| 674 |
{
|
| 675 |
"case_id": "CASE23",
|
|
|
|
| 699 |
"llm_narrative": null,
|
| 700 |
"llm_confidence_statement": null,
|
| 701 |
"action_taken": null,
|
| 702 |
+
"timestamp": "2026-08-23T03:32:08.167111+00:00"
|
| 703 |
},
|
| 704 |
{
|
| 705 |
"case_id": "CASE24",
|
|
|
|
| 749 |
"llm_narrative": null,
|
| 750 |
"llm_confidence_statement": null,
|
| 751 |
"action_taken": null,
|
| 752 |
+
"timestamp": "2026-08-23T03:32:08.191950+00:00"
|
| 753 |
},
|
| 754 |
{
|
| 755 |
"case_id": "CASE25",
|
|
|
|
| 787 |
"llm_narrative": null,
|
| 788 |
"llm_confidence_statement": null,
|
| 789 |
"action_taken": null,
|
| 790 |
+
"timestamp": "2026-08-23T03:32:08.198347+00:00"
|
| 791 |
},
|
| 792 |
{
|
| 793 |
"case_id": "CASE26",
|
|
|
|
| 803 |
"llm_narrative": null,
|
| 804 |
"llm_confidence_statement": null,
|
| 805 |
"action_taken": null,
|
| 806 |
+
"timestamp": "2026-08-23T03:32:08.205211+00:00"
|
| 807 |
},
|
| 808 |
{
|
| 809 |
"case_id": "CASE27",
|
|
|
|
| 819 |
"llm_narrative": null,
|
| 820 |
"llm_confidence_statement": null,
|
| 821 |
"action_taken": null,
|
| 822 |
+
"timestamp": "2026-08-23T03:32:08.214578+00:00"
|
| 823 |
},
|
| 824 |
{
|
| 825 |
"case_id": "CASE28",
|
|
|
|
| 835 |
"llm_narrative": null,
|
| 836 |
"llm_confidence_statement": null,
|
| 837 |
"action_taken": null,
|
| 838 |
+
"timestamp": "2026-08-23T03:32:08.254596+00:00"
|
| 839 |
}
|
| 840 |
]
|