Signals & Attributes

Canonical taxonomy of workflow-accessible data objects in RiskOS™: attributes, signals, reason codes, tags, and derived values.

RiskOS™ workflows process five distinct types of data during an evaluation. Each has a precise definition, a distinct runtime role, and a specific location in the API response.


Data taxonomy

TermDefinitionRuntime roleSet byAPI response location
AttributeA normalized input field describing the entity being evaluatedWorkflow input — defines what data enters the evaluationYour application (via API request)Request payload (data.*)
SignalA discrete data point returned by an enrichment or external data serviceDecision input — provides evidence for rulesEnrichment stepdata_enrichments[].response.*
Reason codeA human-readable code explaining why a specific enrichment or decision outcome occurredExplainability — traces the reasoning behind a decisionEnrichment response or Reason Code stepreason_codes[] and data_enrichments[].response.reason_codes[]
TagA metadata label conditionally attached to an evaluationOperational grouping — classifies evaluations for filtering, routing, and reportingTag step (when its condition evaluates to true)tags[]
Derived valueA value computed by a workflow step from attributes, signals, or other derived valuesIntermediate computation — feeds downstream conditions and decisionsTransformation step or Rule Scorecard stepcomputed.* (requires feature flag)

Attributes

An attribute is an input data point about the entity being evaluated — the information your application sends in the POST /api/evaluation request.

CategoryExample attributesPayload path
Individualfirst_name, last_name, dob, ssn, email, phone_numberdata.individual.*
Addressstreet, city, state, zip, countrydata.individual.address.*
Accountaccount_id, account_type, account_creation_datedata.individual.account.*
Businessbusiness_name, ein, business_addressdata.business.*
Deviceip_address, user_agent, device_iddata.device.*
CustomAny key-value pairs in the custom objectdata.custom.*, data.individual.custom.*

The Input step of a workflow defines which attributes are required and optional. Attributes are available to all downstream steps as operands in conditions and rules.


Signals

A signal is a discrete data point returned by an enrichment during workflow execution. Signals are the primary evidence used by rules and conditions to reach a decision.

Signal typeExampleSource
Risk scoresigma_identity_fraud.score = 0.92Sigma Identity Fraud enrichment
Validation resultphone_risk.phone_type = "mobile"Phone Risk enrichment
Match indicatorverify.name_match = "exact"Verify enrichment
Fraud flagdigital_intelligence.vpn_detected = trueDigital Intelligence enrichment
Compliance resultwatchlist.match_count = 0Watchlist enrichment

Signals appear in data_enrichments[].response.* in the evaluation API response.


Reason codes

A reason code is a human-readable identifier explaining a specific factor in an enrichment result or decision outcome. Reason codes provide explainability — they answer "why did this evaluation receive this decision?"

CharacteristicDescription
FormatAlphanumeric code (for example, I805, R301)
SourceReturned by enrichments or attached by a Reason Code workflow step
PurposeExplain the factors behind a score or decision to reviewers and downstream systems
API locationTop-level reason_codes[] and per-enrichment data_enrichments[].response.reason_codes[]

Reason codes are not decision inputs — they are decision explanations. Rules and conditions evaluate signals, not reason codes (though the has reason code operator enables reason-code-aware routing).


Tags

A tag is a metadata label conditionally attached to an evaluation by a Tag step in the workflow. Tags classify evaluations for operational purposes.

CharacteristicDescription
BehaviorSet only when the Tag step's condition evaluates to true
PurposeOperational grouping — filter cases, trigger automation, segment analytics
Boolean outputEach Tag step produces a boolean output field indicating whether the tag was set
API locationtags[] in the evaluation response

Tags are metadata, not decision inputs. They describe the evaluation after the fact, enabling downstream filtering and reporting.


Derived values

A derived value is a value computed during workflow execution from attributes, signals, or other derived values. Derived values are intermediate computations used by downstream rules and conditions.

Source stepHow it produces a derived valueExample
TransformationApplies stateless functions (string, numeric, date, array) to input data$age_at_application = DATEDIFF(dob, NOW(), "years")
Rule ScorecardSums numeric scores from matching rules$risk_score = 45
ConditionProduces a boolean output indicating the branch taken$is_high_risk = true

Derived values appear in the computed object of the API response (requires feature flag) and are referenced in downstream steps using the $output_field_name syntax.


How data flows through a workflow

flowchart TD
    REQ["API Request"] --> ATTR["Attributes (input)"]
    ATTR --> INPUT["Input Step"]
    INPUT --> ENRICH["Enrichment Steps"]
    ENRICH --> SIG["Signals"]
    ENRICH --> RC["Reason Codes"]
    INPUT --> TRANSFORM["Transformation Steps"]
    TRANSFORM --> DV["Derived Values"]
    SIG --> RULES["Rules & Conditions"]
    DV --> RULES
    RULES --> TAG["Tag Steps"]
    TAG --> TAGS["Tags"]
    RULES --> DECISION["Decision"]
    SIG --> RESP["API Response"]
    RC --> RESP
    TAGS --> RESP
    DV --> RESP
    DECISION --> RESP

Entities and aggregations

RiskOS™ tracks certain attributes as entities — core data elements that represent a real-world actor (email address, phone number, SSN, account UUID). Entities enable:

  • Aggregation features: Computations applied across evaluations sharing the same entity (count, average, sum, min, max, first seen, last seen, distinct count).
  • Time windows: Aggregations can be scoped to specific periods (minutes, hours, days, or lifetime).
  • Cross-journey linkage: The same entity connects evaluations across onboarding, authentication, and fraud review via SocureID.

For entity configuration and aggregation functions, see Entities and Aggregations.


Related concepts