Counterfactual payment risk engine

Not no.
yes, if.

Risk engines stop at a score. yes, if finds the smallest change that turns a risky payment into an approval (pay part now, pay a little later, or use a different card), then learns which friction is cheapest to apply. It plugs straight into PayPal checkout.

Loading…Live model
—
Fraud probability—
Decision
—PR-AUC, calibrated detector (logistic baseline —)
—of fraud caught at a 1% false-positive rate
—attack success before → after adversarial retraining
—lower cost than the best static policy after attackers adapt

From no to the cheapest yes.

Four layers on every payment. The detector says how risky it is; the rest decides what to do about it.

01 / DETECT

A score you can trust.

Gradient-boosted trees on causal card history and shared-device signals, calibrated so 0.10 really means about 10%.

LightGBM · isotonic
02 / EXPLAIN

Reasons, not a black box.

Every decision lists the signals that pushed it up or down: a new device, an odd hour, a device shared by many cards.

path contributions
03 / YES, IF

The smallest change.

Searches 83 changes a buyer can actually make (part-payment, delay, debit or credit) and returns the cheapest ones that cross the approval line.

counterfactual search
04 / LEARN

Cheapest friction wins.

A policy that learns how well step-up, hold and block really work from their outcomes, and shifts when attackers start beating one-time passcodes.

Thompson sampling

Measured, not promised.

Every number on this page is produced by one reproducible script and served from the same model the API runs.

Experiment E5 · policy under drift

When attackers learn to pass step-up

Cumulative cost (fraud loss + friction + lost customers) over the test stream. Halfway through, step-up stops catching most fraud.

Experiment E6 · adversary loop

Harder to fool each round

Share of flagged fraud a black-box attacker gets approved with 50 queries; line is clean PR-AUC.

Read this before quoting the numbers
  • The model is trained on a synthetic, reproducible transaction generator in the IEEE-CIS column layout (account takeover, card testing, device rings). The IEEE-CIS pipeline is included for anyone with Kaggle access.
  • Step-up, hold and block outcomes are simulated with stated, configurable assumptions: no public dataset records them. A real rollout starts in shadow mode, then an A/B test.
  • Counterfactuals describe the model's decision boundary ("the model would accept this if…"), not causal truth. Buyers only see coarse guidance; exact options are for analysts.

Every decision is a PayPal call.

Orders are created with intent AUTHORIZE, so the engine decides what happens to the money after the buyer approves.

DecisionWhat happensPayPal Orders & Payments API
ALLOWApproved straight awayAuthorize, then capture in full
STEP UPBuyer confirms a one-time codeAuthorize; capture once verified
HOLDAn analyst reviews itAuthorization kept; capture or void after review
BLOCKDeclined, unless the buyer takes a "yes, if"No order is created
yes, if pay part nowPart of the amount now, the rest after verificationPartial capture with final_capture: false
yes, if laterThe payment goes through a few hours laterAuthorization kept, captured on schedule

Start free. Upgrade when it pays.

The engine and console are open to everyone today. Premium is in early access.

Free
$0forever
  • Decisions API with buyer and analyst views
  • Reasons and "yes, if" options per payment
  • 60 analyst decisions a minute
  • Console and PayPal sandbox checkout
Start free

Planned launch pricing in USD. No card needed to join the early-access list.

Early access

Fewer declines. More yes, ifs.