The Outlier Lab

Fraud Labeling and Feedback Loops

Where fraud labels come from, how long each rail takes to mature, how label noise and selection bias corrupt models, and how to build feedback loops that improve decisions.

Core components

Label sources and what they actually mean

SourceWhat it tells youTypical noiseUse as
Card fraud disputes / TC40-style fraud reportsCardholder or issuer says unauthorizedA meaningful share are first-party (see Chargeback and Friendly Fraud); reason code ≠ mechanismThird-party fraud label after first-party screening
Non-fraud card disputesService, delivery or quality complaintSome are disguised fraud; some are real merchant failureSeparate dispute label, not fraud
ACH returns R05/R07/R10/R11/R29Receiver or RDFI says unauthorized or improperR10 can be first-party "buyer's remorse"; R11 includes authorization-terms errorsUnauthorized-funding label, with ownership-match context
ACH returns R01/R09 (NSF/uncollected)Insufficient fundsKiting and first-party fraud hide hereCredit or first-party candidate; needs intent rules
ACH R02/R03/R04Closed, no account, invalid numberMule account churn, synthetic accounts, typosAdministrative; fraud signal in combination
Check/RDC returnsCounterfeit, altered, duplicate, NSFReturn reason codes are coarseDeposit-fraud label after investigation
Reg E claimsCustomer asserts unauthorized EFT or errorSome are scams (authorized), some first-partyClaim label + investigated outcome
Customer-reported ATO / scam reportsCustomer says "not me" or "I was tricked"Late and incomplete; reporting varies by segmentHigh-value label; record initiator facts
Investigator decisionsAnalyst confirmed fraud or notAnalyst error, inconsistent SOPs, hindsight biasPrimary label for blocked/reviewed items, QA-sampled
Manual review outcomesApproved, declined, escalatedReviewing ≠ confirming; approvals are rarely re-checkedWeak label unless paired with matured outcome
Enforcement actionsAccount closed or offboarded for fraudPolicy actions mix fraud, abuse, ToS and AMLLabel only with coded reason
Consortium / network feedbackAccount or device flagged elsewhereDifferent definitions, stalenessFeature, not label
Partner/merchant reversalsRetailer or affiliate reversed commission or purchaseReturns are mostly legitimateRewards-abuse candidate (see Receipt Fraud (Cashback))
Holdout outcomesWhat happened to flagged traffic you let throughSmall samplesGold standard for precision of blocking rules

Label maturity windows by rail

Maturity window = how long after a transaction you must wait before its label is "final enough" to train or evaluate on. Set windows from your own vintage curves (see Fraud Metrics and KPIs). The ranges below are illustrative; calibrate to your data.

Money path / railMain late signalsRule-defined outer bound (verify current rules)Practical maturity window
Card purchase / card fundingFraud and non-fraud disputesNetwork dispute windows, commonly cited as 120 days for card-absent fraud (see Card Network Dispute Rules)90–120+ days
ACH debit fundingReturns; extended unauthorized returnsMost returns 2 banking days; consumer unauthorized via extended window ≈ 60 days (see Nacha Rules and ACH Risk)60–75 days
Check / RDCReturns, duplicate presentment, late altered-item claimsVaries; some claims arrive months later30–90 days, with long tail
P2P / RTP / FedNow push (outbound)ATO claims, scam reports, Reg E claimsReg E notice keyed to 60 days after the statement (see Regulation E and Unauthorized Transfers)60–90 days
Payout / withdrawalATO claims, account-owner complaints, inbound mule reportsDepends on rail30–90 days
Cashback / rewardsMerchant/affiliate reversals, returns, receipt auditsProgram terms30–120 days
Marketplace ordersINR/SNAD claims, chargebacksBuyer protection windows + card windows30–180 days
Brokerage trades after ATOCustomer complaint, statement reviewStatement cycle30–60 days

Two dates per label. Store event_time (when the transaction happened) and label_time (when you learned). Training and backtests must use only labels known as of the evaluation date to avoid leakage. A backtest that uses labels that arrived after the simulated decision date overstates performance.

Selection bias: the blocked-transaction problem

Your model decides what gets labeled. Approved transactions mature into chargebacks or returns, and declined transactions never do. Over time:

  • The model only learns about fraud it missed, so it underweights patterns it already blocks well.
  • If you retrain without the blocked population, those patterns fade from the training data and the model "forgets" them. That's a classic hidden feedback loop.
  • Rules that block entire segments make those segments look fraud-free.
Diagram: Model / rules, Decision, Outcome observed (chargeback, return, claim), No outcome observed, Training data

Mitigations:

  1. Holdouts / exploration. A small randomized share of flagged traffic is approved with exposure caps, so outcomes can be observed. Log the propensity so you can reweight. See Experimentation and Champion-Challenger.
  2. Label blocked items by review. Send a sample of blocked traffic to review purely for labeling, then QA it.
  3. Reject inference. Statistical inference of labels for blocked items. Useful, but it carries assumptions; document them for Model Risk Management.
  4. Keep historical "known fraud" patterns in training even when current controls block them.
  5. Log decision context. Record which rule or model version acted, the score, and the features as served. See Fraud Data Architecture.

Label quality

ProblemExampleControl
First-party contaminationFriendly-fraud chargebacks labeled third-partyFirst-party screens: prior undisputed history on same device/address; customer contact patterns
Scam vs unauthorized mixingCoached transfers labeled ATORecord facts: who initiated, whose device, credentials shared?
Analyst inconsistencyTwo analysts label the same pattern differentlyCalibration sessions and inter-rater agreement (kappa) via Fraud QA Program
Hindsight labelingAccount later closed for fraud, so all prior activity labeled fraudLabel at transaction level with dates. Don't back-propagate account status blindly.
Lag-truncated negativesRecent transactions labeled "good" before maturityExclude immature transactions, or use survival/time-aware methods
Taxonomy driftNew reason codes or mechanisms split mid-yearVersioned taxonomy, mapping tables (Loss Taxonomy and Attribution)

Feedback loop design

A good feedback loop uses fast labels where it can and matured labels where it must, and records which kind it's using.

LoopLatencyPurpose
Analyst decision → featuresMinutesReal-time "this device/payee was just confirmed bad" features. See Negative Lists and Deny Lists.
Early labels → sentinelsHours–daysCustomer ATO reports, early returns and review confirmations power early-warning monitoring before chargebacks arrive. See Playbook - Novel Attack Detection Members.
Matured labels → retrainingWeeks–monthsModel training on mature, de-biased labels
QA findings → SOP and rulesWeeklyFix systematic errors at the source
Loss attribution → roadmapMonthly/quarterlyFund controls where loss concentrates
Consortium sharingVariesExternal labels and indicators. See Consortium and Data Sharing; for 314(b)-eligible institutions see BSA-AML and SAR Filing.

How to build it

StageLabelsNext step
CrawlChargebacks and returns in a spreadsheetCreate a label table: one row per transaction, with source, event_time and label_time
WalkJoined label table; investigator outcomes capturedAdd first-party screens; define maturity windows per rail; record initiator facts
RunVersioned label store; holdouts; QA-measured label accuracyPropensity logging; point-in-time training sets; label-quality dashboard
FlyLabels feed real-time features and retraining automaticallyTime-to-label tracked; consortium label exchange; reject inference validated

Data science owns label definitions for models, ops/QA owns investigator label quality, and data engineering owns the label store and point-in-time joins.

Artifacts and templates

Label record schema (minimum)

FieldNotes
txn_id / account_idJoin keys
event_time / label_timeBoth required
label_sourcechargeback, ach_return:R10, reg_e_claim, review, customer_report, holdout
label_valuefraud_3p, fraud_1p, scam, abuse, dispute_non_fraud, credit, legit, unknown
initiator / actor / mechanismPer Loss Taxonomy and Attribution
confidenceconfirmed, probable, weak
decision_context_idLinks to the decision log (model version, rules fired, score)
superseded_byWhen a later label overrides

Label QA checklist

  • Maturity windows documented per rail and re-estimated at least annually
  • Training sets exclude immature negatives
  • Backtests use labels known as of the simulated decision date
  • First-party screen applied before using card disputes as third-party labels
  • Blocked traffic has some labeled sample (review or holdout), with the rate documented
  • Inter-rater agreement measured for analyst labels each quarter
  • Label taxonomy versioned; breaks flagged in model documentation

Metrics

  • Label coverage: % of actioned and approved transactions with a resolved label at maturity
  • Time to label: median days from event to first label, by source
  • Label agreement: investigator vs QA re-label agreement; rule-attributed vs investigated
  • First-party share among card fraud disputes (estimated)
  • Holdout rate and holdout loss: cost of exploration, shown explicitly
  • Label reversal rate: labels later superseded

Pitfalls

  • Using reason codes as ground truth. A reason code records what the claimant asserted, which may differ from what an investigation would find.
  • Training on yesterday's data. Recent negatives are full of future positives.
  • No holdout because "we can't let fraud through". Then you can't know your precision. Size holdouts by exposure, since the same percentage of traffic can carry very different dollar risk.
  • Labels that live only in case notes. Free text can't feed a model. Require coded fields (see Case Documentation Standards).
  • Letting the model's own decisions define "fraud". That's circular. Review-confirmed and matured outcomes must dominate.
  • Ignoring abuse. Promo and referral abuse rarely produce chargebacks. Without explicit abuse labels, models never learn it.

Sources and further reading