Skip to main content

How it works

Threat Scoring Methodology

How scores combine indexed data, configured source weights and live enrichment, and what they do not prove.

5
Pipeline steps
6
Confidence factors
16
Example source weights

Pipeline

How the scoring pipeline works

  1. 01

    Multi-source ingestion

    Scheduled jobs ingest feeds into the indexed dataset; lookups read it and can request live enrichment. Feeds, contributing sources and enrichment providers are counted separately.

  2. 02

    Configured source weights

    Weights are configured scoring rules, not measured accuracy: Google Safe Browsing 0.95, StopForumSpam 0.70. A URL listing counts half when scoring its host.

  3. 03

    Cross-provider correlation

    Cross-provider signals add a separate factor when present. Shared upstream data means several listings are not always independent evidence.

  4. 04

    Confidence calculation

    Base weights below, renormalized over the factors present; scanner and cross-provider factors are conditional. Confidence is a score, not a probability of maliciousness.

  5. 05

    Enrichment and context

    Geolocation, ASN, WHOIS, DNS, certificates or OTX, depending on indicator type, upstream response and cache. Missing enrichment does not mean safe.

Scoring

Confidence score factors

FactorBase weightDescription
Source agreement33 %Distinct publishers among threat listings; duplicate listings and tracker-only entries do not add independent votes
Source quality22 %Configured weights of the flagging sources, not measured accuracy
Scanner consensus18 %Included only when scanner engines returned verdicts
Cross-provider agreement12 %Included when cross-correlation data is available
Data completeness10 %Presence of expected facets for the indicator type
Data freshness5 %Age from available observation or update dates; dates can be missing

Sources

Examples of configured source weights

Read from the scoring configuration on 2026-10-08. Not a list of active feeds or of providers queried per request.

SourceCategoryConfigured weight
Google Safe BrowsingPhishing & malware0.95A
PhishTankPhishing0.90A
OpenPhishPhishing0.90A
URLhaus (abuse.ch)Malware distribution0.90A
Abuse.chC2 & malware0.90A
SpamhausSpam & abuse0.85B
SURBLSpam URL blocklist0.85B
Feodo TrackerBanking trojan C20.85B
AlienVault OTXThreat intelligence0.80B
Malware DomainsMalware hosting0.80B
Tor ProjectAnonymization network0.80B
Malware Domain ListMalware hosting0.75B
Blocklist.deBrute-force & abuse0.75B
ThreatCrowdThreat intelligence0.75B
AbuseIPDBIP abuse reporting0.70C
StopForumSpamForum spam0.70C

Freshness

Data freshness

  • Feed ingestion, collection rebuilds, client polling and upstream publication run on separate clocks: hourly polling is not hourly observation.
  • Use firstSeen, lastSeen, lastUpdated and dataTrust when present. An update time is not the first upstream observation.
  • Schedules, caches and upstream failures can delay updates. There is no universal 24-hour freshness guarantee.

Interpretation

False positive handling

  • Contradictory signals and source details, when returned, help an analyst review a verdict. They are not a measured false-positive rate.
  • Shared infrastructure and repeated upstream listings need context: check your own logs before blocking on a score.
  • Report a suspected false positive through the contact form, with the indicator and the evidence that the result is wrong.

Inspect a real API response

Compare the returned fields, timestamps and gaps with the sources you already use.