VerifyDial — anti-scam hotline intelligence
VerifyDial
protective anti-scam hotline
{{ healthLabel }}
{{ email }}
{{ role }}
{{ rangeName }} · {{ rangeSpan }}
History is roughly 30 days — older windows return empty.
{{ authTitle }}
Partner intelligence surface for the VerifyDial hotline. Access is scoped by role — viewer, power user, admin.
!{{ authErr }}
{{ switchPrompt }}
api base · {{ apiBaseLabel }}
token · localStorage["vd_jwt"] · 12h ttl

Overview

KPI summary failed — {{ v.summary.errMsg }}
{{ k.label }} PENDING
{{ k.value }}
{{ k.sub }}
Call volume over time
{{ tsUnit }} · buckets in UTC
Series unavailable — {{ v.ts.errMsg }}
No calls in this window.
{{ g.label }}
{{ tip.when }}
{{ tip.value }}
{{ x.text }}
Outcome funnel
Where each caller landed — share of calls with a resolved outcome.
Outcomes unavailable — {{ v.outcomes.errMsg }}
No resolved outcomes in this range.
{{ donut.total }}
calls
{{ o.label }} {{ o.count }} {{ o.pct }}
Operating hours
Calls by weekday × hour — UTC, not caller-local.
Heatmap unavailable — {{ v.hours.errMsg }}
No call-hour data for this range.
{{ r.dow }}
{{ h.label }}
0
{{ heat.max }} calls/hour
Calls in progress
{{ livePollLabel }}
Sessions with a heartbeat right now.
Live feed unavailable — {{ v.live.errMsg }}
No calls in progress.
The panel fills as the hotline picks up.
{{ l.brand }} {{ l.elapsed }}
{{ l.scam }} {{ l.status }} {{ l.sid }}
Recent calls
{{ recentCount }}
Newest first · times UTC · duration pending transcript export.
Recent calls unavailable — {{ v.recent.errMsg }}
No calls in this range.
Started (UTC) Impersonated Scam type Outcome Duration
{{ c.time }} {{ c.brand }} {{ c.scam }} {{ c.outcome }} {{ c.dur }}

Intelligence

Who scammers impersonate, what they demand, and which brands have no verified number for us to hand out.
Filtered to {{ focusChip.label }} — impersonated parties and banks below are narrowed to this bucket.
Scam types
Canonical taxonomy · click a row to narrow the view · $ figures are grounded payment demands only.
{{ distinctTypes }}
Leaderboard failed — {{ v.scam.errMsg }}
No classified calls in this range.
TypeShare of callsCallsBrands$ demanded→ money
{{ r.label }}
{{ r.count }} {{ r.brands }} {{ r.dollars }} {{ r.toMoney }}
PENDING Dollar columns stay blank until the transcript export pipeline is enabled. Nothing here is estimated.
Impersonated parties
Who the scammer claimed to be.
Unavailable — {{ v.imp.errMsg }}
{{ impEmptyMsg }}
{{ r.rank }} {{ r.label }} {{ r.val }}
Where each bank ranks
Bank-fraud impersonations only — the board a bank partner asks about first.
Unavailable — {{ v.banks.errMsg }}
No bank-fraud calls in this range.
{{ r.rank }} {{ r.label }}
{{ r.count }}
{{ b.title }}
{{ b.sub }}
PENDING
Unavailable — {{ b.errMsg }}
Pending transcript export
{{ b.pendingNote }}
{{ r.label }} {{ r.count }} {{ r.pct }}
Pretexts used
The story the caller was told, grouped by premise, with verbatim examples.
PENDING
Unavailable — {{ v.premise.errMsg }}
Pending transcript export
Premise buckets and example pretexts are derived from call transcripts. Until that pipeline is enabled this panel stays empty rather than guessing.
{{ p.label }} {{ p.count }}
“{{ e.text }}”
Coverage gaps
Brands callers keep asking about that we have no verified number for — every row is a caller we could not safely hand off.
{{ gapCount }}
Unavailable — {{ v.gaps.errMsg }}
No coverage gaps in this range.
Every recurring impersonated brand had a verified number to hand out.
# Brand Status Callers affected
{{ g.rank }} {{ g.label }}
{{ b.text }}
{{ g.count }}
Extraction value by brand
Grounded payment demands attributed to each impersonated brand.
PENDING
Unavailable — {{ v.ev.errMsg }}
Pending transcript export
Dollar attribution requires spoken amounts from transcripts. No figure is shown until they land.
{{ r.label }} {{ r.dollars }} {{ r.count }}
Quick top lists
Raw counts, unweighted — a sanity check against the boards above.
{{ t.title }}
No data.
Unavailable.
{{ r.label }} {{ r.count }}