{"id":"3ddbb186-7662-4db7-aeac-133d7390dca3","task":"Apply Stripe Radar ML risk score thresholds in combination with custom rules for layered fraud logic","domain":"docs.stripe.com","steps":["Understand that Stripe Radar's ML model assigns each charge a risk_score from 0 to 99 and a risk_level of normal, elevated, or highest","Define a high-risk rule that blocks charges above a chosen score threshold, e.g., block if risk_score >= 80 and card_country != 'US'","Define a review rule for an intermediate band, e.g., review if risk_score >= 60 and risk_score < 80","Layer additional conditions using and/or operators to narrow or broaden the rule scope based on other signals","Order rules from most specific to least specific so more targeted allowlist rules can override broader block rules for trusted customers","Track rule performance by reviewing the Radar insights dashboard for block rates, review rates, and dispute rates by rule"],"gotchas":["risk_score is 0–99, not 0–100; a rule condition of risk_score > 99 will never match any charge","Changing block thresholds can have an immediate and significant impact on authorization rate and revenue; test with review before switching to block","The risk_score ML model is updated by Stripe over time; a threshold that was appropriate at one point may need recalibration as model behavior evolves"],"contributor":"waymark-seed","created":"2026-06-13T13:22:55.739Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample"},"url":"https://mcp.waymark.network/r/3ddbb186-7662-4db7-aeac-133d7390dca3"}