I am struggling to figure a way to determine if a person is 'no good' or 'good'.

A little bit about what I am trying to accomplish, I have a data set of a payment for a violation with a check or a bounced check on a given day, if there is a bounced check it means there is no such account.

If they have a pattern of payments and bounces in chronological order then they are doing something fishy such as gaming the system. But, if they have payments, bounces, payments, and little to no bounces after that then the initial bounces could have been human entry errors.

I want to use the data set to determine who are the 'no good' people that have a pattern, ex. paying, bouncing, paying, bouncing.

Here is an example of my data set:

person     state date                           status  bounce_code   
A           NY  23-DEC-15 PM Paid    
A           NY  23-DEC-15 PM Paid    
A           NY  18-DEC-15 AM Return  R03
A           NY  15-DEC-15 PM Return  R03

The original data set contains thousands of people and their history of payments and bounces.

One idea is to analyze each person to see if they fit a "mold" (payment, bounce, payment, bounce) and if they do i will label them as a 'no good' person.

Please let me know if this is confusing and I am open to suggestions on how to approach this problem.

  • $\begingroup$ What are the different bounce codes? What are the english descriptions for them? You might have to "weigh" certain bounce codes more heavily than others. $\endgroup$ Commented Apr 7, 2016 at 15:12
  • $\begingroup$ Ppl still use cheques? =l $\endgroup$
    – Nathan
    Commented Apr 8, 2016 at 21:46

1 Answer 1


I would start by looking at the distribution of bounce rates for each individual. That distribution would provide some details around what could be considered a "normal" bounce rate, and where you would draw a line for an extreme bounce rate that implies a 'bad'. Additionally, you can also look at average bounce rates (divide bounce rate by the tenure), and review these averages by tenure. This may reveal that different threshold values might be appropriate for customers with different tenure. For instance, if a customer is new (first month of activity) then even a moderate bounce rate could imply a 'bad'.

Additional metrics -- like the ratio of bounce to valid payments, time between bounce -- could be useful to look at as well.

Once a set of initial thresholds are identified, I would closely review some of the customers who are identified as 'bad' based on those thresholds to ensure that there are not too many false positives. The business point of view (from those who would be using this information to make decisions) would be great to incorporate into this review.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.