Skip to content

51 months have full transaction volume but zero fraud labels #39

Description

@richsanchezalexander

In card_transaction.v1.csv, 51 calendar months contain normal transaction
volume with exactly zero rows labeled Is Fraud? = True.

The gaps are long and contiguous, not scattered:
2011 Feb–Dec, 2014 May–Dec, 2017 Jan–Oct, 2019 Nov–Dec, 2020 Jan–Feb

Example — 2017:
Months 1–10: ~145k transactions each, 0 fraud
Month 11: 142k transactions, 58 fraud
Month 12: 146k transactions, 197 fraud

Neighbouring years run 200–300 fraud/month at the same volume. At the
dataset's 0.122% base rate, ~145k transactions imply ~175 expected fraud
events per month, so zero across ten consecutive months appears to be a
labeling artifact rather than a property of the simulation.

Impact: these rows behave as false negatives. Trained on, they teach a
model that fraud-shaped behaviour is legitimate; in an evaluation window
they turn correct detections into apparent false positives. Any temporal
split that crosses one of these blocks will produce misleading metrics.

Is this expected — e.g. a change in the generator's labeling regime — or
unintended? Either way it may be worth a note in the dataset README so
users can exclude the affected months.

Reproduce (DuckDB):

SELECT Year, Month, count(*) rows, sum("Is Fraud?"::INT) fraud
FROM read_csv_auto('card_transaction.v1.csv')
GROUP BY 1,2 HAVING fraud = 0 AND rows > 10000 ORDER BY 1,2;

happy to submit a PR adding a note to data/credit_card/README.md

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions