Statuses & Lifecycle

Learn the difference between lifecycle states and business outcomes, and how statuses and decisions work together during evaluation processing.

RiskOS™ uses statuses to track where an entity is in its lifecycle and decisions to track what action to take. These are distinct runtime concepts that operate independently.

  • A status is a lifecycle state — it describes where an evaluation, workflow, or case is in its processing journey.
  • A decision is a business outcome — it describes what action to take on the evaluated entity.

A case can have a REVIEW decision and an Open status with an "In Review" sub-status simultaneously. The decision says why the case exists; the status says where it is in the review process.


Evaluation lifecycle

The eval_status field on an evaluation tracks its runtime state:

stateDiagram-v2
    [*] --> evaluation_in_progress: POST /api/evaluation
    evaluation_in_progress --> evaluation_completed: Decision reached
    evaluation_in_progress --> evaluation_paused: Async step reached
    evaluation_paused --> evaluation_in_progress: User action / PATCH resume
    evaluation_paused --> terminated: PATCH end
    evaluation_in_progress --> failed: Unrecoverable error
    evaluation_completed --> [*]
    terminated --> [*]
    failed --> [*]
eval_status valueDescriptionHow it transitions
evaluation_in_progressWorkflow is actively executing stepsAutomatic — moves to evaluation_completed or evaluation_paused
evaluation_pausedWorkflow is waiting for user action (OTP, DocV, Wait, Hosted Flow)External — user completes action, or API PATCH resumes/ends
evaluation_completedWorkflow ran to completion and returned a decisionTerminal state

You can terminate a paused evaluation via PATCH /api/evaluation/{eval_id} with actions.end. The workflow_execution_failed webhook event indicates an unrecoverable error during execution.

Evaluation status vs decision

ConceptQuestionValuesSet byMutable
Evaluation status (eval_status)"Where is this evaluation in execution?"evaluation_in_progress, evaluation_paused, evaluation_completedRuntime engineYes — transitions automatically or via API
Decision"What action should be taken?"ACCEPT, REJECT, REVIEW, customWorkflow step or human reviewerYes — reviewer can change via Case Management

Workflow lifecycle

A workflow configuration moves through these states:

stateDiagram-v2
    [*] --> Draft: Create workflow
    Draft --> Published: Publish
    Published --> Live: Set live
    Live --> Published: Remove from live
    Published --> Draft: Create minor version
    Published --> Published: Duplicate (major version)
    Draft --> Deleted: Delete
Workflow stateDescriptionCan be editedProcesses evaluations
DraftInitial state. Can be edited and tested.YesNo
PublishedFrozen configuration. Can be tested but not edited directly.NoNo
LiveActively processes evaluations via the Evaluation API.NoYes
DeletedRemoved. Cannot be restored.NoNo

Workflow modes

Live workflows can operate in different modes:

ModeDescription
LiveProcesses production evaluations and returns real decisions
ShadowProcesses evaluations in parallel without affecting the live decision
A/B (Champion-Challenger)Splits traffic between two workflow versions to compare performance

Case lifecycle

A case tracks the post-decision review process:

stateDiagram-v2
    [*] --> Open: Evaluation routes to Manual Review
    Open --> OnHold: Pending information
    OnHold --> Open: Information received
    Open --> Closed: Decision made
    OnHold --> Closed: Decision made

RiskOS™ defines three top-level case statuses:

Case statusDescription
OpenNewly created, awaiting assignment or review
On HoldPaused pending additional information or action
ClosedFinal decision made, case resolved

Each status supports sub-statuses that are fully customizable per organization. For example, the default sub-status for an Open case is "In Review." Organizations can configure additional sub-statuses such as "Escalated", "Pending Documents", or any label that fits their review workflow.

Case status vs decision

ConceptExample combinationMeaning
Decision = REVIEW, Status = OpenCase created, awaiting reviewer assignment
Decision = REVIEW, Status = Open, Sub-status = "In Review"Reviewer is actively investigating
Decision = ACCEPT, Status = ClosedReviewer accepted, case resolved
Decision = REJECT, Status = ClosedReviewer rejected, case resolved

Webhook events and lifecycle transitions

Lifecycle transitions generate webhook events:

EventLifecycle transition
evaluation_pausedEvaluation: evaluation_in_progressevaluation_paused
evaluation_completedEvaluation: evaluation_in_progressevaluation_completed (or evaluation_pausedevaluation_in_progressevaluation_completed)
workflow_execution_failedEvaluation encountered an unrecoverable error during execution
decision_updateCase: reviewer changes the decision
case_status_updatedCase: status or sub-status changes
review_case_assignedCase: reviewer assigned
review_case_unassignedCase: reviewer removed
fraud_confirmingCase: marked as fraud or non-fraud

Related concepts