Build an explainable risk score

Every check in this certification produces a fact. This lesson turns those facts into one decision, with the reasons written down, so that you can defend it, debug it and tune it.

By now you can ask a dozen questions about a customer: is the email disposable, is the phone a VoIP number, is the IP a datacenter, does the card's issuing country match anything else, is the name on a sanctions list. Each answer on its own is weak. Plenty of honest people use a VPN. Plenty of honest people travel with a card issued at home. A risk score exists because weak signals that agree are strong, and because a single rule that blocks on any one of them will block your best customers.

The trap is building a score that nobody can explain. A number like 73 with no reasons attached is useless when a customer asks why their order was held, when a reviewer has to decide in thirty seconds, or when you want to know whether last week's threshold change helped. So the requirement for this lesson is not just a score. It is a score where every point can be traced to a named reason, and where the reasons are stored with the decision.

Decide the shape before the weights

Four design decisions come before any number.

Hard rules are not scores. Some facts end the conversation regardless of everything else: a sanctions match must go to review no matter how clean the rest looks, and a card number that fails Luhn is a typo, not a risk. Mixing those into a weighted sum lets enough "good" points outvote them. Keep them as overrides that run first.

Missing data is its own state. When a check fails or a field is absent on your plan, the score should record "unknown", not count it as clean. An outage that silently turns every check into a pass is the most common way a risk system fails.

Three outcomes, not two. Allow, review, block. Review is where uncertainty goes. Block is reserved for cases where you would be comfortable defending the decision to the customer.

The score is additive and capped. Each signal adds points; you clamp the total to 0-100. Additive scores are easy to explain ("+25 disposable email, +15 datacenter IP") in a way a multiplied probability is not.

Check yourself

A transaction has a clean email, a residential IP and a matching card country, but the sanctions screen returns verdict: high. In a well-designed scoring system, what happens?

Answer the check above to continue.

Run every example on your own key. Free plan, no card.

Scaling up?

Volume pricing, custom SLAs, and dedicated support for high-traffic teams.

Contact sales