Sanctions

Thresholds

The LinkinLegal match threshold is 0.8 by default. What changes when you move it, which value fits onboarding or rescreening, and how to run a review queue.

threshold sets the line between a hit and a miss. A result gets match: true when its score is at or above the threshold.

{ "schema": "Person", "properties": { "name": ["Marina Gulina"] }, "threshold": 0.8 }

The default is 0.8. Keep it until you have measured something else on your own data.

What moves when you change it

The threshold changes one thing: the match flag. It does not change which candidates come back. The number of results is set by limit (1 to 25), and results below the threshold are returned too, with match: false.

ThresholdEffect
0.7More hits to review. Fewer missed subjects.
0.8 (default)The balance we measured on our test set.
0.9Fewer false hits. A typo or a missing middle name can now be missed.

Three measured points help you feel the scale:

CaseScoreAt 0.8At 0.9
Missing middle name (Marina Gulina against МАРИНА КОНСТАНТИНОВНА ГУЛИНА)0.9333hithit
Another person with a one-letter surname difference (Vladimir Putin against ВЛАДИМИР АЛЕКСАНДРОВИЧ ПУЛИН)0.8836hitmiss
The right name with a conflicting birth date0.7missmiss

0.88 for a different person is not a bug

Putin and Pulin differ by one letter. In the data these are two people, but in your input that one letter is as likely to be a typing error. At 0.8 you see both and a reviewer decides. That is the trade we chose.

Pick a threshold per use case

Onboarding one customer

A missed hit is expensive, and a person is already waiting for an answer.

  • Set threshold to 0.7 and limit to 10.
  • Treat score 0.8 and above as a hit to block.
  • Treat 0.7 to 0.8 as a review: hold the case and show it to a human.
  • Send the birth date, the country and every identifier you hold. They push the true hit up and the noise down.

Nightly rescreening of your whole base

Volume decides here. A queue nobody can read is a queue nobody reads.

  • Keep the default threshold of 0.8.
  • Use match/batch with 100 subjects per call.
  • Compare against the result you stored last time. Report only what changed: a new hit, a higher score, a hit that is gone.
  • Raise the threshold to 0.85 or 0.9 only when your review queue is full of the same false hits, and write down what you gave up.

Payment or transaction screening

The decision must be fast and it must not stop good payments.

  • Keep the default 0.8.
  • Send the country. In payments you usually have it, and it separates people with common names.
  • Keep the request small: limit 5 is enough for a stop-or-pass decision.

Run a review queue

A queue needs three columns: the subject, the candidate and the reason.

  1. Store every result with score and features, also the ones below your threshold.
  2. Sort the queue by score, highest first.
  3. Show the reviewer the features of the candidate and its properties. "The birth date does not fit" closes a case in seconds.
  4. Write the decision back to your own record with the candidate id. At the next screening, a known and cleared id does not need a second review.

Before you move the threshold

Take 200 subjects you already decided by hand. Run them through match at 0.7, 0.8 and 0.9. Count the misses and the false hits at each value. Then pick.

A threshold that is not measured on your own data is a guess. The default is our measurement, not yours.

On this page