Rule: Order velocity
Rule key: velocity · Default weight: 0.9 · Tier: Lite
Counts how many prior orders match each atom of the current order within a sliding window (default 60 minutes). Returns the highest-scoring single match.
Atoms checked
- Billing email (canonicalised —
al.ice+spam@gmail.commatchesalice@gmail.com) - IP address
- Device fingerprint (when behavioural collection is enabled)
- Phone
Scoring curve
| Prior orders in window | Score contribution |
|---|---|
| 0–2 | 0 (no signal) |
| 3–4 | 40 |
| 5–9 | 70 |
| 10+ | 100 |
Tuning the window
The default 60-minute window catches most automated carding sprees. To override, use the woofraudguard_velocity_window_minutes filter:
add_filter( \'woofraudguard_velocity_window_minutes\', fn () => 120 ); // 2 hours