# Risk weights

> Change what each signal is worth and where the high level starts, for your whole organization or for a single key, without redeploying anything.

Last updated: 2026-09-17

Risk weights decide how much each signal adds to the [suspect score](https://docs.fingerly.io/docs/suspect-score), and the threshold decides where `high` begins. Changes apply to the next identification: no SDK update, no redeploy.

## Profiles

Weights live in profiles, one per platform: web, Android and iOS. When an identification is scored, Fingerly uses the first profile that exists:

| Order | Profile | Set in |
| --- | --- | --- |
| 1 | The SDK key's own profile, when it has one | The [management API](https://docs.fingerly.io/reference/management/risk-weights#save-an-sdk-key-s-weights) |
| 2 | Your organization's profile | The dashboard or the [management API](https://docs.fingerly.io/reference/management/risk-weights) |
| 3 | The defaults | Built in |

A profile can be partial. A signal it does not mention uses the default weight, while a signal set to `0` stays at `0`. The event records which profile scored it.

> **Tip:** Your organization's profile applies to every environment at once. To try a new policy on staging first, give your staging keys their own profile with the [management API](https://docs.fingerly.io/reference/management/risk-weights#save-an-sdk-key-s-weights), or [replay recent events](https://docs.fingerly.io/docs/testing#test-a-policy-change) against the change.

## Change weights in the dashboard

Open **Smart Signals > Suspect Score**. Each signal has a weight per platform, next to the threshold and the weighting modes. Changes save as you make them. Owners and admins can edit; every member can view.

## Limits

- Weights are whole numbers from `0` to `10000`.
- The threshold is a whole number from `1` to `1000000`. The default is `30`.
- A signal that does not exist on a platform cannot be given a weight there.

## Weighting modes

VPN and residential proxy findings can be weighed in one of two ways, chosen per profile.

| Mode | Weighs | Choose it when |
| --- | --- | --- |
| `method` (default) | Each way the VPN or proxy was recognised, separately. | You want to treat, say, a mobile carrier VPN differently from a commercial one. |
| `confidence` | One weight each for low, medium and high confidence. | You care how sure the finding is, not how it was made. |

## Safe changes

Profiles carry a revision. When two people edit at once, the second save is refused with a conflict rather than silently overwriting the first. Reload and apply your change again.

## A worked example

```text Before and after
automation 9 + tampering 8 + high_activity 6 + privacy_settings 6   = 29   medium
automation 12 + tampering 8 + high_activity 6 + privacy_settings 6  = 32   high
```

Raising one weight moved the same session across the threshold. Look at real sessions near your threshold in **Insights > Suspect score trends** before and after a change.

> **Warning:** Lowering the threshold raises how many visitors reach `high`, and how many `visitor.suspect` webhooks you receive. [Replay recent events](https://docs.fingerly.io/docs/testing#test-a-policy-change) against the new threshold first.
