[{"data":1,"prerenderedAt":106},["ShallowReactive",2],{"doc:\u002Fdocs\u002Frisk-weights":3},{"page":4,"toc":98,"updated":105},{"path":5,"title":6,"seoTitle":7,"description":8,"blocks":9},"\u002Fdocs\u002Frisk-weights","Risk weights","Risk Weights: Tune Signals and the Threshold","Change what each signal is worth and where the high level starts, for your whole organization or for a single key, without redeploying anything.",[10,13,18,20,39,41,45,48,50,53,59,62,64,78,81,83,86,93,95],{"type":11,"text":12},"p","Risk weights decide how much each signal adds to the [suspect score](\u002Fdocs\u002Fsuspect-score), and the threshold decides where `high` begins. Changes apply to the next identification: no SDK update, no redeploy.",{"type":14,"level":15,"text":16,"id":17},"heading",2,"Profiles","profiles",{"type":11,"text":19},"Weights live in profiles, one per platform: web, Android and iOS. When an identification is scored, Fingerly uses the first profile that exists:",{"type":21,"columns":22,"rows":26},"table",[23,24,25],"Order","Profile","Set in",[27,31,35],[28,29,30],"1","The SDK key's own profile, when it has one","The [management API](\u002Freference\u002Fmanagement\u002Frisk-weights#save-an-sdk-key-s-weights)",[32,33,34],"2","Your organization's profile","The dashboard or the [management API](\u002Freference\u002Fmanagement\u002Frisk-weights)",[36,37,38],"3","The defaults","Built in",{"type":11,"text":40},"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.",{"type":42,"tone":43,"text":44},"callout","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](\u002Freference\u002Fmanagement\u002Frisk-weights#save-an-sdk-key-s-weights), or [replay recent events](\u002Fdocs\u002Ftesting#test-a-policy-change) against the change.",{"type":14,"level":15,"text":46,"id":47},"Change weights in the dashboard","change-weights-in-the-dashboard",{"type":11,"text":49},"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.",{"type":14,"level":15,"text":51,"id":52},"Limits","limits",{"type":54,"items":55},"list",[56,57,58],"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.",{"type":14,"level":15,"text":60,"id":61},"Weighting modes","weighting-modes",{"type":11,"text":63},"VPN and residential proxy findings can be weighed in one of two ways, chosen per profile.",{"type":21,"columns":65,"rows":69},[66,67,68],"Mode","Weighs","Choose it when",[70,74],[71,72,73],"`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.",[75,76,77],"`confidence`","One weight each for low, medium and high confidence.","You care how sure the finding is, not how it was made.",{"type":14,"level":15,"text":79,"id":80},"Safe changes","safe-changes",{"type":11,"text":82},"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.",{"type":14,"level":15,"text":84,"id":85},"A worked example","a-worked-example",{"type":87,"samples":88},"code",[89],{"label":90,"lang":91,"code":92},"Before and after","text","automation 9 + tampering 8 + high_activity 6 + privacy_settings 6   = 29   medium\nautomation 12 + tampering 8 + high_activity 6 + privacy_settings 6  = 32   high",{"type":11,"text":94},"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.",{"type":42,"tone":96,"text":97},"warning","Lowering the threshold raises how many visitors reach `high`, and how many `visitor.suspect` webhooks you receive. [Replay recent events](\u002Fdocs\u002Ftesting#test-a-policy-change) against the new threshold first.",[99,100,101,102,103,104],{"id":17,"text":16,"level":15},{"id":47,"text":46,"level":15},{"id":52,"text":51,"level":15},{"id":61,"text":60,"level":15},{"id":80,"text":79,"level":15},{"id":85,"text":84,"level":15},"2026-09-17T16:58:12.000Z",1789667797514]