Skip to main content

Outlier Detection - Withdrawals - Own - Transaction Frequency

Description

This test identifies anomalous transactions by comparing recent withdrawal transaction frequency against historical patterns. It calculates user-specific statistics, including mean and standard deviation of transaction frequencies, and flags outliers that significantly exceed certain thresholds. Transactions are analyzed in the context of a user's own historical behavior for a given symbol.

Use Cases

  • Fraud Prevention: Detect users with abnormally high frequency of withdrawal activity, which may signal account compromise, automated bots, or unauthorized use of accounts.

  • Operational Oversight: Identify anomalies in transaction frequency that could indicate potential system issues, such as duplicate processing or unusual patterns caused by technical errors.

  • Regulatory Compliance: Monitor transaction frequencies for activities that may violate anti-money laundering (AML) regulations or other financial guidelines.

Required Data

Withdrawals Data

VariableDescription
timestampTimestamp of the withdrawal made (YYYY-MM-DD hh:mm:ss).
user_idUser ID to identify the individual user.
currency_typeThe currency type of withdrawal being made; fiat or crypto.
symbolThe asset symbol; e.g., BTC, ETH, USD, EUR.
price_usdThe price of the symbol in USD.
amountThe amount of the symbol being withdrawn.

Parameters

ParameterDescriptionTypeDefault ValueConfigurable
analysis_windowOverall duration (days) for analysis.Integer1 (days)Yes
historical_windowNumber of days to consider for historical data.Integer90 (days)Yes
historical_minimum_number_transactionsMinimum number of historical transactions per user required.Integer5Yes
analysis_minimum_aggregate_dollar_thresholdMinimum aggregate dollar value of transactions per user in analysis period.Float500Yes
analysis_minimum_transaction_count_thresholdMinimum transaction count per user in analysis period to be considered.Integer3Yes
historical_minimum_number_daysMinimum number of unique active days required.Integer2Yes
create_ticketFlag to determine if tickets should be created.BooleanTrueYes
compare_own_historyTest for outlier activity by comparing user’s own historical behavior.BooleanTrueYes
compare_others_historyTest for outlier activity by comparing transactions to other users.BooleanTrueYes

Methodology

  • Compute Historical Statistics For each user and symbol, calculate the historical mean and standard deviation of transaction frequency. Additionally, compute aggregate symbol-wide statistics, including the mean of historical averages and the median of standard deviations for each symbol.

  • User-Specific Outlier Detection Compare a user’s transactions during the analysis window against their historical behavior. Transactions are flagged as outliers if their frequency exceeds the user’s average by a defined threshold (e.g., mean + 4 standard deviations).

  • Categorization and Reporting Flagged transactions are classified as user-specific anomalies. These are then prepared for reporting, either as CSV exports or tickets for further investigation.