Proof Results: Arriving at a Decision

Introduction

authID offers a simplified integration pattern for consuming and interpreting all of the risk signals included in Proof results.

Instead of building and maintaining custom Proof result processing logic, developers can rely on the single decision attribute returned in the Proof results. This replaces the need to implement the logic described in Proof Results Suggested Decision Matrix.

By default, risk signals are processed according to the documented suggested decision matrix. However, developers can override how any or all risk signals affect the final decision by updating their authID platform configuration.

Using the decision attribute instead of custom risk signal processing logic also helps future-proof the integration. As new risk signals become available, they will automatically be incorporated into the logic that produces the decision value.

Decision Output

Each Proof transaction returns a Document.Data.Decision value that represents the overall identity verification (IDV) result.

Possible values include:

  • PASS — All required checks meet the acceptance criteria
  • FAIL — One or more checks do not meet the required criteria
  • REVIEW — The result falls into an intermediate range and requires additional evaluation
👍

The information above is sufficient to start using the decision output in your integration. The sections below provide additional details on individual signals, evaluation mechanics, and configuration options.

In addition, Document.RawData.Decision contains a JSON object with both the current policy configuration and all individual risk signal values, along with their evaluation outcomes. This serves as a centralized source for inspecting the data when investigating or explaining the final Proof result.

The abbreviated example of Document.RawData.Decision content is shown below:

{
    "Result": "PASS",
    "Config": {...},
    "SignalDecisions": [...]
}

  • Result — Has the same value as Document.Data.Decision
  • Config — Contains the decision policy configuration at the time the Proof transaction was completed
  • SignalDecisions — Provides detailed information about individual risk signal, including whether it is present, its value, how it was processed (e.g., ignored, applied, or overridden), and signal level where applicable (e.g. PAD probability value).

Signal Evaluation and Policy Semantics

Configuring the signal processing policy is straightforward. The following semantics define how each risk signal value is handled:

  • use — The signal is applied as-is when calculating the next level in the rollup
  • ignore — The signal is excluded from the rollup calculation
  • override — The signal outcome is modified based on a specified rule

Available override rules include:

  • reviewFailed — Overrides a default FAIL result and sets it to REVIEW
  • failThreshold / passThreshold — Applies threshold-based evaluation:
    • At or above the upper threshold → PASS
    • Below the lower threshold → FAIL
    • Between the thresholds → REVIEW

How Signals are Combined

If a signal is present in the configuration but absent at runtime, it is evaluated as ignore.

If a signal is absent from the configuration but present at runtime, the use policy is applied.

Only individual signals can be explicitly configured. Rollups are calculated automatically based on the following rules:

  • A signal whose policy is set to ignore does not affect the rollup.
  • If a rollup evaluates to ignore, it does not affect the next-level rollup.
  • A rollup evaluates to PASS only if all of its immediate child nodes evaluate to PASS.
  • A rollup evaluates to FAIL if any of its immediate child nodes evaluate to FAIL.
  • If any signal is transformed to REVIEW through an override policy, and all other signals evaluate to PASS or REVIEW, the rollup evaluates to REVIEW.
  • If any node evaluates to FAIL, the rollup evaluates to FAIL.

Default Policy

The system default contents of Document.RawData.Decision.Config, i.e. the default signal evaluation rules are shown below:

{
    "Match": {
        "Mode": "Use",
        "ReviewFailed": false
    },
    "Selfie": {
        "SelfieDfd": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "SelfiePAD": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "SelfieSignatureVerification": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "SelfieJsIntegrityVerification": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "SelfieCameraBlockList": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "SelfieCaptureLiveness": {
            "Mode": "Use",
            "ReviewFailed": false
        }
    },
    "Document": {
        "DocPadFrontSR": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocPadFrontPC": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocPadFrontPS": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocPadFrontDM": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocPadBackSR": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocPadBackPC": {
            "Mode": "Ignore",
            "ReviewFailed": false
        },
        "DocPadBackPS": {
            "Mode": "Ignore",
            "ReviewFailed": false
        },
        "DocPadBackDM": {
            "Mode": "Ignore",
            "ReviewFailed": false
        },
        "DocFrontSignatureVerification": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocFrontJsIntegrityVerification": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocFrontCameraBlockList": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocFrontCaptureLiveness": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocBackSignatureVerification": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocBackJsIntegrityVerification": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocBackCameraBlockList": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocBackCaptureLiveness": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocBarcodeSecurity": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocMismatchMrzOcr": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "DocExpired": {
            "Mode": "Use",
            "ReviewFailed": false
        },
        "SampleDocument": {
            "Mode": "Use",
            "ReviewFailed": false
        }
    },
    "MatchMinScore": 48,
    "MatchProfile": "Document"
}

Individual Signal Decisions - Example

Each array element contains the following information:

  • Name — The signal name
  • Result — The evaluated outcome (PASS, FAIL, REVIEW) after applying policy rules
  • SignalPass — The original outcome before policy rules are applied (true / false)
  • Present — Indicates whether the signal is available for the current Proof transaction (true / false)
  • IsIgnored — Indicates whether the signal is ignored based on the configured policy (true / false)
  • SignalLevel — The signal value for signals that produce a score
{
    "SignalDecisions": [
        {
            "Name": "Match",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "SelfieDfd",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.9987026453018188,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "SelfiePAD",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.978675365447998,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "SelfieSignatureVerification",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "SelfieJsIntegrityVerification",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "SelfieCameraBlockList",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "SelfieCaptureLiveness",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 1,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocPadFrontSR",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.9990463852882385,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocPadFrontPC",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.9334030151367188,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocPadFrontPS",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.9493492841720581,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocPadFrontDM",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.802780270576477,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocPadBackSR",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.9991682767868042,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocPadBackPC",
            "Result": "PASS",
            "SignalPass": true,
            "SignalLevel": 0.9556713104248047,
            "IsIgnored": true,
            "Present": true
        },
        {
            "Name": "DocPadBackPS",
            "Result": "PASS",
            "IsIgnored": true,
            "Present": false
        },
        {
            "Name": "DocPadBackDM",
            "Result": "PASS",
            "IsIgnored": true,
            "Present": false
        },
        {
            "Name": "DocFrontSignatureVerification",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocFrontJsIntegrityVerification",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocFrontCameraBlockList",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocFrontCaptureLiveness",
            "Result": "PASS",
            "IsIgnored": true,
            "Present": false
        },
        {
            "Name": "DocBackSignatureVerification",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocBackJsIntegrityVerification",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocBackCameraBlockList",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocBackCaptureLiveness",
            "Result": "PASS",
            "IsIgnored": true,
            "Present": false
        },
        {
            "Name": "DocBarcodeSecurity",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocMismatchMrzOcr",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "DocExpired",
            "Result": "PASS",
            "SignalPass": true,
            "IsIgnored": false,
            "Present": true
        },
        {
            "Name": "SampleDocument",
            "Result": "PASS",
            "IsIgnored": true,
            "Present": false
        }
    ]
}