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.

Tag weight vs contextual factor

Keep these two ideas separate:

TagContextual factor
RoleThe signal itselfThe context around that signal
EffectA weight added into the scoreA multiplier applied after tags are combined
Required?You need at least some tags for a score to moveNo. Factors are optional. Leave them empty and the tag weights stand as-is.
Examplerole.pep (this person is a PEP)Jurisdiction IT vs KP (the same PEP is riskier in a high-risk country)

A tag answers “what did we find?”. A contextual factor answers “does the setting make that finding count for more (or less)?”.

Worked picture, PEP in two countries (same tag, different factor):

  • The screening match emits the tag role.pep. That weight is the same in both cases.
  • A jurisdiction factor then multiplies the result: Italy (IT, a low default multiplier) barely moves the score; a high-risk jurisdiction (for example KP) raises it substantially.
  • Formula after tags are combined: amplified = base × (1 + Σ multipliers). A multiplier of 0.05 is +5%; 0.4 is +40%.

Italian province of registered office or of the UBO is the same idea at sub-national level. AML jurisdiction factors today are country (ISO 3166). To weight Italian provinces now, attach a factor to a form select of provinces (each option a key with its own multiplier). A first-class province factor set can be added as an organization configuration.

Factors you do not need can be left unused or deactivated. They never have to be part of a score.

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. See Tags.
  • Contextual factors: optional 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, assigned as in Tags, and attached to questions in the form builder.