Data model

What one analyzed call contains, and the scam-type taxonomy that organizes the corpus.

How data is produced

Each inbound scam call is transcribed, then an LLM extractor turns the transcript into a structured record. The record groups intel into seven areas, plus provenance the pipeline stamps on. These fields appear (as applicable) in transcript detail, the Tier-1 table, exports, and agent answers.

Confidence & grounding. Each record carries an auditor_confidence (0.0–1.0). "High confidence" means ≥ 0.7. Monetary figures are grounded to what the scammer actually demanded — see Money fields.

Record structure

Provenance & scoring

FieldDescription
call_sidUnique call identifier (used everywhere to link to a call).
call_started_at / call_ended_atCall window (UTC).
auditor_confidenceExtraction confidence, 0.0–1.0.
extractor_modelModel that produced the record.

event_classification — what the scam was

FieldDescription
scam_detectedWhether the call was a scam.
impersonated_brand_or_entityBrand/entity the scammer claimed to be.
lure_categoryPer-call lure label (see note below).
fraud_pretext_narrative_summaryShort narrative of the pretext.

attacker_environment — who / how

FieldDescription
linguistic_profileAccent / phrasing / call-center tells.
background_noise_reportedAmbient signals (call-center chatter, etc.).
opsec_failure_flagSlip-ups the scammer made.
attack_cadence_and_escalationPacing / pressure escalation.

infra_ephemeral — throwaway infrastructure

FieldDescription
scam_did_numberThe number the scam called from / for callback.
caller_id_display_stringSpoofed caller-ID text.
fake_case_or_badge_numberFake case/badge id used for authority.
burner_voip_provider_suspectedSuspected VoIP provider.

infra_sticky_digital — reused digital infrastructure

FieldDescription
phishing_url_or_domainPhishing URLs / domains named.
remote_desktop_app_requestedRDP tool pushed (AnyDesk, TeamViewer…).
remote_desktop_session_idSession id if given.
malicious_meeting_idMeeting id if given.

infra_sticky_financial — the highest-value intel

Where the money is meant to go. These fields drive the Tier-1 table and exports.

FieldDescription
monetary_ask_amount_usdGrounded dollar amount the victim was told to pay/send (null unless an explicit amount was stated).
requested_payment_methodHow they wanted payment (wire, gift card, crypto…).
mule_bank_nameDestination bank.
mule_bank_routing_numberRouting number.
mule_bank_account_numberAccount number.
mule_account_holder_nameName on the mule account. encrypted at rest
crypto_wallet_addressDestination wallet.
crypto_chainChain (BTC, ETH…).
gift_card_brandGift-card brand requested.
physical_mule_drop_addressPhysical drop address. encrypted at rest

healthcare_govt & natsec_le — vertical enrichment

FieldDescription
impersonated_government_agencyAgency impersonated (IRS, SSA…).
fraud_typologyHealthcare/government fraud typology.
impersonated_physician_npiPhysician NPI if cited.
dme_supplier_shell_companyDurable-medical-equipment shell.
law_enforcement_sting_viabilityHIGH / MEDIUM / LOW.
state_sponsored_narrative_tagNation-state pretext tag, if any.
Two display-only PII fields — mule_account_holder_name and physical_mule_drop_address — are field-encrypted at rest and decrypted only when served to authorized readers. All data is additionally encrypted at rest at the storage layer.

Scam-type taxonomy

Calls are bucketed into scam-type categories. These bucket keys are what you use in the scam-type leaderboard, campaign filters, and entitlement scoping. Current baseline buckets:

Bucket keyLabel
TAX_DEBTTax debt (gov)
GOVT_IMPERSONATIONGovernment impersonation
HEALTHCARE_BENEFITSHealthcare / benefits
AUTO_WARRANTYAuto warranty
INSURANCE_ACCIDENTInsurance / accident
UTILITYUtility
BANK_FRAUDBank fraud
TECH_SUPPORTTech support
PRIZE_SWEEPSPrize / sweepstakes
OTHEROther / unclassified
The taxonomy is living — new categories can be minted automatically as novel scam types emerge. Treat the list above as the current baseline, not a closed set; read available buckets at runtime from the scam-type leaderboard or /api/kpis/taxonomy-coverage.

Note: event_classification.lure_category is a separate, per-call label with its own value set (e.g. GOVT_IMPERSONATION, TECH_SUPPORT, ROMANCE, CRYPTO_INVEST, BANK_FRAUD, …) — don't confuse it with the scam-type buckets above.