Skip to main content

How Scores Are Computed

Every enabled score definition produces one outcome per flow result. The computation runs when the flow completes and again on every re‑evaluation, and each outcome is frozen with the tags and factors that contributed to it, so a score can always be re‑explained and audited.

For each score definition, the engine runs a three-step pipeline:

Scores are evaluated in dependency order, so by the time a score is computed, all of its sources already have a value.

Inputs

  • Score tags — weighted labels matched on the flow result. Tags come from form answers, workflow actions, and manual assignment. A tag's weight expresses how strongly it pushes the score up.
  • Contextual factors — multipliers that amplify the tag-based result when a contextual signal is present (for example a specific answer value or jurisdiction).
  • Sources — the already-computed results of other scores folded into this one.
ValueRangeNotes
Tag weight-1000 to 100Positive contributes; 0 matches but adds nothing; negative acts as a veto
Factor multipliergreater than -1, up to 100.5 amplifies the base result by 50%
Score outputinteger 0 to 100Always clamped and rounded

Step 1 — Self score (normalization strategies)

The normalization strategy defines how the weights of the matched tags are turned into a percentage.

Additive share (scorecard) — default

Classic scorecard math. Tags are organized in groups: all the options of one form question form a group (they are mutually exclusive), while a standalone tag is its own group. The score is the share of points obtained out of the points obtainable:

base = ( Σ matched weights / Σ per-group maximum active weight ) × 100

Selecting the highest-weighted option of every scored question yields 100%; maxing out one question of two equally weighted ones yields 50%.

Veto tags: a tag with a negative weight never raises the obtainable maximum, but when matched it subtracts its full magnitude from the obtained points — a strong veto (e.g. -1000) forces the score to 0 regardless of the other answers. Vetoed results are not amplified by contextual factors.

Relative share

Scale-invariant: each matched tag contributes its weight as a share of the highest active weight in the definition (s = w / w_max), and shares are combined with a probabilistic union:

base = ( 1 − ∏ (1 − sᵢ) ) × 100

A single tag at the maximum weight saturates the score to 100%; additional matches push the score asymptotically toward 100% without ever exceeding it.

Single tag ceiling

The legacy strategy used by AML screening. Each matched weight contributes w · ln(1 + w), the sum is amplified by contextual factors, and the result is normalized against a worst-case ceiling: the largest single scaled weight amplified by the maximum configured multiplier of each factor type.

Contextual factor amplification

After the base result is computed, the multipliers of all matched contextual factors are summed and applied:

amplified = base × ( 1 + Σ multipliers )

Amplification never lowers a Relative share result, and it is skipped entirely for vetoed Additive share results, so a negative factor can never flip a veto.

Step 2 — Combine with sources

If the definition lists Sources, its own tag-based result is folded together with the source scores using the combination strategy:

Probabilistic union (default)

100 × ( 1 − ∏ (1 − sᵢ / 100) ) — each contribution increases the score, with diminishing returns as it approaches 100

MaximumThe highest of the contributing scores
WeightedThe equal-weight mean of the contributing scores

Step 3 — Clamp and level

The combined result is clamped to [0, 100], rounded to an integer, and mapped to a level: 0–25 Low, 26–50 Medium, 51–75 High, 76–100 Critical. The default score's percentage is also surfaced as the flow result's headline Risk score.

Worked example

A form has two scored select questions feeding a custom supplier_risk score with Additive share normalization:

  • Company age — "Less than 1 year" (weight 30), "1–5 years" (weight 10), "Over 5 years" (weight 0)
  • Prior incidents — "Yes" (weight 50), "No" (weight 0)

The obtainable maximum is 30 + 50 = 80. A supplier answering "Less than 1 year" and "No" obtains 30, so the base score is 30 / 80 × 100 = 37.5. A contextual factor for a high-risk jurisdiction with multiplier 0.2 amplifies it to 37.5 × 1.2 = 45, which rounds to 45 — Medium.

Configure it

Tags and their weights are managed on the Score Definitions page, and attached to questions in the form builder.