Skip to main content

Condition Evaluation

Endpoints that evaluate a Condition (φ) against a concept's Result (Rₜ) and produce a DecisionResult (Aₜ). All are deterministic when timestamp is provided.

Implicit Concept Execution

POST /evaluate/condition and POST /evaluate/full execute the bound concept internally if its Result is not already cached. This is transparent but incurs latency on first call. Pre-warm with POST /execute if latency matters.


Evaluate Condition

POST /evaluate/condition

Evaluates a single Condition against its bound concept for a given entity. Returns a DecisionResult (Aₜ) that includes the decision value and any actions triggered.

Request

FieldTypeRequiredDescription
condition_idstrRequiredFully qualified condition id (namespace.id).
condition_versionstrRequiredExplicit version.
entitystrRequiredEntity to evaluate.
timestampstrOptionalISO 8601 UTC. Deterministic when provided.
dry_runboolOptionalDefault False. Evaluates but does not fire actions.

Response — DecisionResult (Aₜ)

FieldTypeRequiredDescription
valuebool|strAlwaysDecision value. True/False for boolean strategies; matched label string for equals.
typestrAlways'boolean' | 'categorical'.
entitystrAlwaysEntity evaluated.
condition_idstrAlwaysCondition identifier.
condition_versionstrAlwaysCondition version used.
timestampstr|NoneAlwaysEvaluation timestamp.
actions_triggeredlist[ActionTriggered]AlwaysActions fired. Each has action_id, action_version, status, payload_sent, error?.

Response Codes

StatusDescription
200DecisionResult (Aₜ). Action failures return 200 — inspect actions_triggered[].status.
400Validation error.
401Unauthorised.
404Condition not found.
408Timeout.
422Execution error.
429Rate limit.

Evaluate Condition Batch

POST /evaluate/condition/batch

Evaluates a single condition across multiple entities in parallel. Returns a list of DecisionResult objects, one per entity. Always HTTP 200 — inspect each item's status.

Request

FieldTypeRequiredDescription
condition_idstrRequiredFully qualified condition id.
condition_versionstrRequiredExplicit version.
entitieslist[str]RequiredEntity IDs to evaluate.
timestampstrOptionalShared evaluation timestamp.

Response Codes

StatusDescription
200list[DecisionResult]. Always 200 — inspect each item.
400Validation error.
401Unauthorised.
429Rate limit.

Execute Full Pipeline

POST /evaluate/full

Runs concept execution (ψ), condition evaluation (φ), and action triggering (α) in one atomic call. The default SDK path for production use cases.

Request — EvaluateFullRequest

FieldTypeRequiredDescription
concept_idstrRequiredFully qualified concept id.
concept_versionstrRequiredExplicit concept version.
condition_idstrRequiredFully qualified condition id.
condition_versionstrRequiredExplicit condition version.
entitystrRequiredEntity to evaluate.
timestampstrOptionalISO 8601 UTC. Deterministic when provided.
explainboolOptionalDefault False. Include Explanation in result.
dry_runboolOptionalDefault False. Simulates without firing actions.
missing_data_policystrOptional'null' | 'zero' | 'forward_fill' | 'backward_fill'.

Response — FullPipelineResult

FieldTypeRequiredDescription
resultResult (Rₜ)AlwaysConcept execution output.
decisionDecisionResult (Aₜ)AlwaysCondition evaluation output. Contains actions_triggered[].
dry_runboolOptionalReflects dry_run from request.

Response Codes

StatusDescription
200Pipeline executed. Action failures return 200 — inspect decision.actions_triggered[].
400Validation error.
401Unauthorised.
404Not found.
408Timeout.
422Execution error.
429Rate limit.