Use of Constituent Codes

Options
Hi everyone, please can I have some advice?


We run a weekly lottery, which we admin through a separate DB, but want to record if someone is a current player, or a previous player.


At the  moment we do this via Constituent Code ("Lottery Player", with a start date), but once they finish things get confusing. Some of the records have recorded this with an end date, others have been given a different code ("No Longer Lot Player"). It's further complicated by people who stop for a while and then rejoin.


We're wanting to use this more heavily moving forward, & need to unify things anyway, so I just wondered what people#'s advice would be. 


1. Should we just have the one code, use the end date, and create a new one if they rejoin?

2. Should we have a separate code and put an end date on it if they rejoin (as well as adding another line in Bio2)?

3. Are we better just doing this in the membership module

4. Something else?


We currently use Attributes to record their lottery number(s) & their ID# for the other system


Thanks


Matt

Comments

  • Hi Matthew-


    As you know there are a number of ways to accomplish this and each one will have limitations. If I were going to track this data and I planned to use Export for most of my outputs, I think I would create two organizations; Current Lottery Players and Former Lottery Players. I would track current players with relationships to one org and track historical data with relationships to the other Org. You could opt to create only one Org and use Start and End dates to show who is active and who is not. If you went with one Org you could further segment the data by creating specific relationship types such as Current Player and Former Player. I think, however, this might get confusing in that during Exports you'll need to focus on which relationship type you want for each export (Current versus Former) and you'll also have to constantly update the start date of your org in the Export field with today's start date each time to run it so as not to pick up former members that have an end date before today's date.


    So, instead, going back to my two Org examples, I would create two organizations; Current Lottery Players and Former Lottery Players. I would add a relationship between my Current Players and the Current Players Org. Once their play-period is over, I would delete that relationship entirely, but copy the start and end dates into a relationship with the Former Lottery Players Org. By doing this, when you export data you'll never have to worry about the relationship type and you'll never have to worry about updating start dates in your Export field. All you'll have to do is focus on the Org in question to get former or current players. You'll also be able to export multiple relationships to the Former Org if you want to review someone's play history.
  • Hi Aaron,


    Thanks for you r message and idea. I hadn't thought of doing it that way.


    I guess the problem with that way would be that we have about 20,000 players: We've found any more than 100 relationships then doing certain things to a record tends to kill it (or just take forever).


    Matt
  • Hi Matthew!


    Our organization had a similar problem with employee giving levels. Sometimes they would go back and forth between two giving clubs, and we weren't sure how to track it. Our current process is to use start and end dates AND add new lines to Bio 2 with the constituent code. Someone's profile may look like this:


    John Smith

    Acorn Club Member 01/01/2003-12/31/2003

    Anniversary Club Member 01/01/2004-12/31/2010

    Acorn Club Member 01/01/2011- blank (current)


    We love this method. We can do a quick rundown of the history this way. We used to have a code that was "Former ---", but we found it became confusing if they bounced back and forth. We found this prevents the constituent code table from getting cluttered, because we just utilize the standard list instead of creating new ones. However, we query a LOT, and that's why we use this method. It organizes it in a sort of timeline in query for us.


    I hope that helps! I'm interested to hear advice on this as well.

     

  • I would consider testing with using the Membership Module, if you already have it, and see how it works for you.  Or Events, if you have that.  I guess it depends on how often people start and stop participating.  The nice thing with Membership might be the ability to store that lottery ID as the Membership ID and the other information as Membership Attributes instead of Constituent Attributes (eliminate a bit of clutter from that tab).
  • KaLeigh Hurley:

    Hi Matthew!


    Our organization had a similar problem with employee giving levels. Sometimes they would go back and forth between two giving clubs, and we weren't sure how to track it. Our current process is to use start and end dates AND add new lines to Bio 2 with the constituent code. Someone's profile may look like this:


    John Smith

    Acorn Club Member 01/01/2003-12/31/2003

    Anniversary Club Member 01/01/2004-12/31/2010

    Acorn Club Member 01/01/2011- blank (current)


    We love this method. We can do a quick rundown of the history this way. We used to have a code that was "Former ---", but we found it became confusing if they bounced back and forth. We found this prevents the constituent code table from getting cluttered, because we just utilize the standard list instead of creating new ones. However, we query a LOT, and that's why we use this method. It organizes it in a sort of timeline in query for us.

    Thanks KaLeigh and sorry for the slow reply - I was away on holiday last week, so everything's been a bit out of hand between when you replied and now.


    So how do you query on this then? In the above example how do I find all the people who are "inactive" currently? (If I query on "constituent code" and "Date to is not blank" then John Smith would flag up, wouldn't he? Do you do something else?


    Also I'm never sure how query works if I'm trying to find someone who has various constituent codes with a blank end date. If John Smith was still inactive, but he had another constituent code without an end date can you make query only find those who have a blank entry for one specific Cons Code, rather than just any?


    Thanks again,


    Matt

  • Jen Claudy:

    I would consider testing with using the Membership Module, if you already have it, and see how it works for you.  Or Events, if you have that.  I guess it depends on how often people start and stop participating.  The nice thing with Membership might be the ability to store that lottery ID as the Membership ID and the other information as Membership Attributes instead of Constituent Attributes (eliminate a bit of clutter from that tab).

    Thanks Jen,


    Sadly we don't already have the membership module and our Events module is very heavily used. With the membership module, would we be able to give one constituent lots of different lottery IDs if they have more than one number? And vary start dates and end dates for those?


    Many thanks,


    Matt

  • Membership has an Attributes Tab, so you could add multiple Lottery IDs there.  If you don't already have the module, you would probably want to start by getting the pricing for it.  Not sure the module would be worth the cost unless you're using it for something else as well.

     
  • Jen Claudy:

    Membership has an Attributes Tab, so you could add multiple Lottery IDs there.  If you don't already have the module, you would probably want to start by getting the pricing for it.  Not sure the module would be worth the cost unless you're using it for something else as well.

     

    Thanks Jen,

    Yeah, you're right about that! But there's another module we're interested in as well so they might do a combined discount or something. The price seems pretty steep on its own for what seems like fairly basic functionality.


    Matt

  • Happy to help! Let me see if I can cover all of your questions here. So, you CAN query on specific constituent codes and blank end dates. If we keep using the John Smith example, I could query on "Constituent Code = Acorn Club Member" AND "Constituent End Date = blank". That way, it would only pull up the ACTIVE Acorn Club member constituent code. You can do it the opposite way to search for the inactive constituent codes as well.


    We often use merged queries to exclude past memberships from mailing lists. For example, we are sending a mailing to INACTIVE Acorn Club Members to see if they will renew their membership. If we query on inactivity, you are right - John Smith would appear and seem to be inactive. However, because we use the multiple const. code method, we have two dynamic queries for the active & inactive memberships (constituent end date = blank & not blank). THEN we do merge queries (SUB) operator. We use the inactive query as primary, and the active as secondary. John Smith would then be removed from the final mailing list!


    I'm sorry if this seems complicated, but we find it helpful since we don't have the membership or event modules. If anyone has an easier way to do this, we'd LOVE to hear it. Great question overall, Matt. Best of luck!

    Matthew Page:

     

    KaLeigh Hurley:

    Hi Matthew!


    Our organization had a similar problem with employee giving levels. Sometimes they would go back and forth between two giving clubs, and we weren't sure how to track it. Our current process is to use start and end dates AND add new lines to Bio 2 with the constituent code. Someone's profile may look like this:


    John Smith

    Acorn Club Member 01/01/2003-12/31/2003

    Anniversary Club Member 01/01/2004-12/31/2010

    Acorn Club Member 01/01/2011- blank (current)


    We love this method. We can do a quick rundown of the history this way. We used to have a code that was "Former ---", but we found it became confusing if they bounced back and forth. We found this prevents the constituent code table from getting cluttered, because we just utilize the standard list instead of creating new ones. However, we query a LOT, and that's why we use this method. It organizes it in a sort of timeline in query for us.

    Thanks KaLeigh and sorry for the slow reply - I was away on holiday last week, so everything's been a bit out of hand between when you replied and now.


    So how do you query on this then? In the above example how do I find all the people who are "inactive" currently? (If I query on "constituent code" and "Date to is not blank" then John Smith would flag up, wouldn't he? Do you do something else?


    Also I'm never sure how query works if I'm trying to find someone who has various constituent codes with a blank end date. If John Smith was still inactive, but he had another constituent code without an end date can you make query only find those who have a blank entry for one specific Cons Code, rather than just any?


    Thanks again,


    Matt

     

     

  • Thanks for taking the time to help with this KaLeigh.


    On the first thing, I guess I'm just never really confident that it works OK. I should probably just test and test and test till I'm confident, but at the moment as much as what you've said seems right I'm also wonder "so what would I do if I wanted to find everyone who has had that constituent code at some point and has any open constituent code?". 

    - I just need to get oer it don't I?


    On the second, I guess thath's how I'll have to do it, but I'm always a bit loathe to use static queries (which is what the merge does, ultimately). I now you can always refresh the static ones, but...


    Anyway, thank you. I think your reply certainly nudges me in a certain direction which is really helpful,


    Matt

     
  • Testing is always great! I highly recommend taking the query courses through Blackbaud University. They have changed our work experience tenfold. You can play around in the test database with no consequences.


    We test in our live database all of the time too. Just make a few test constituents (We have Mr. & Mrs. Sally Hamburger, for example). I highly recommend marking them with a TEST solicit code or const. code. It will be easier to find, edit, and even delete. Good luck!

    Matthew Page:

    Thanks for taking the time to help with this KaLeigh.


    On the first thing, I guess I'm just never really confident that it works OK. I should probably just test and test and test till I'm confident, but at the moment as much as what you've said seems right I'm also wonder "so what would I do if I wanted to find everyone who has had that constituent code at some point and has any open constituent code?". 

    - I just need to get oer it don't I?


    On the second, I guess thath's how I'll have to do it, but I'm always a bit loathe to use static queries (which is what the merge does, ultimately). I now you can always refresh the static ones, but...


    Anyway, thank you. I think your reply certainly nudges me in a certain direction which is really helpful,


    Matt

     

     

Categories