Membership Tracking Proposal

Introduction:

The back story here is that the security database written and managed by Jon Steinhart is being rewritten and it is hoped will be able to also support the functionality of the VSB. As we move in that direction, we have other conversations about related things we want to eventually support. Unified membership tracking is one such thing. We may not be ready just yet to add these features but when we are we can refer to these notes.

The fair relies on it's many thousands of volunteers. It needs to communicate with them for crew activities, publications like the FFN, and voting at the annual meeting. It is highly desirable that we manage all this with one unified database of participants. Having separate slightly different databases with mostly the same people in them is messy and each one requires additional effort to maintain. The downside is that some use cases place emphasis on just getting someone registered so they can get to work immediately, and others want to record the history of a persons participation over years.

In particular the newly updated definition of voting members requires good records on what recent fairs a person has volunteered, or the database is useless for that purpose. On the other hand some crew coordinators refuse to match their current crew members up with previous records of their involvement, they say they just don't have the time. So after hashing it out we came up with a few ideas that might help make this possible. We think they are good starting points and as a a group we can refine them until we have a solid two or three suggestions we can bring to the board. I think that it will require both a small policy change, and a little coding to make it all work smoothly.

Of Course we hope that we'll come up with a great user interface that will support our requirements and that people will eventually prefer to do the extra work up front. However there will be some resistance to change so we have to plan for a transition period. The main problem is that we have some crews who's current work flow involves doing batch uploads of crew members into the VSB, and they don't have the time to match those new records with last years records for the same people. Here are some various suggestions:

Record Type:

Their should be a record type to show weather this record is for an individual, family / group, or organization. Only individuals can become members.

Vetted time-stamp:

We should have a record creation time-stamp and a last updated time-stamp for each record. Also a Vetted time-stamp for when someone verifies that a record's contents are valid and complete to the best of our knowledge. A record is only vetted if there is no other vetted record for that entity. This can also serve the same purpose as member numbers, however a vetted record has nothing to do with qualifying for membership.

Elders:

Conferring elder status is a similar process to vetting records. An Elders conferred time stamp is added at the time they are seen to qualify, and there should be a name or record pointer to the person who approved them.

Membership request:

At anytime a person may request to become a member, and this is recorded in a membership request Boolean value. Until requested they can not become members. Also with the current bylaws amendment, if their membership expires this request field is reset, and must be re-applied for.

Member numbers:

It would probably be a hard sell to have member numbers for each member. The pros are that it would be a unique way to keep track of their records, even when Names change. When merging two records it would be obvious which one was the established record for that person. The numbers would only grow as new members were officially added, unlike new record numbers which are created almost every day. Record numbers can change, especially when old crew data bases are merged into the main db. In lieu of member numbers you could use the vetted time-stamp in the same way it's just harder to type in.

For batch inports from a spread sheet there would be optional columns for any field in the db, in particular member numbers or vetted TS. If one of these columns have a value then that record is updated instead of creating a new record. So everyone starts the current year being entered into the system either as a new temporary record or being added to a previous vetted record. Most temps are converted to vetted records either by the crew cords or liaisons.

Merging records:

You want to be able to merge records without erasing what was previously there if possible. Most fields can have just one value like name, and birth date. Others like phone numbers, addresses, and most notably -- Inventory, can have multiple values, and all current values should be recorded. When you merge two records you should be able to select which values overwrite others. Or just add to the new ones to fields that allow multiple values, and sort out the extraneous ones later. This mitigates Jim's problem with using potentially destructive upserts when merging. You could even have a potential merge list that could be staged by crew leads or the members themselves, for the liaisons to work on later.

Inventory:

All inventory used for membership criteria needs to be serialized, and possibly Bar/QR coded. This includes worker day passes.This is so when each inventory item is assigned to a person it is recorded in their record weather it's a temporary record or a vetted record. When records are merged all non-duplicate inventory is added to the result. This makes generating a current voting member list simple.

Worker Day Passes:

WDP people are harder to track because they often get their passes from their crew coordinators. This might eventually change, but for now we need a different work flow. We should remember that the WDPs are collected at the entrance so you can't hold on to them.

One idea is to print a short form on the back of each WDP that allows one to indicate that they would like to become a member. It may be as simple as their name and contact info. Later after the fair, someone will go though all these, create or vet a record and assign the WDP serial to it.

Another idea is they could bring their WDP to the sticker booth before they enter the fair to have the serial recorded. This is the same process that camping passed people go though except it happens when the passes are handed out. All inventory serials are recored for each participant, and are not transferable.

Fair Family News:

To support the FFN, we need a boolean for their subscription status, and a link to one of the multiple addresses for this record to mail it to. This address can be physical or email. There may be a selection for email the whole thing as say a pdf, or just email the link. The mailing address should be a pointer to one of the previously entered addresses or emails.

Batch Spread Sheet Imports:

I think both Jim's and Jon's DBs allow for some Delimiter Separated Value import (DSV). Commas are a popular delimiter (CSV). The first line is commonly a list of the fields you're importing, with the others left blank or unchanged. In addition to allowing any of the standard fields, There could be a meta field called 'active' or 'use', and if it were checked or had a non zero / non blank value that row would be imported. This way the crew cords could leave people in their spread sheet, and just flag the ones active for this year. This saves them work and if they happen to include the vetted record designator in a column, they never have to worry about vetting that person again. The people with no vetted designator will have new temporary records created until they can be vetted. If a field name is not recognized then a window pops up asking if it's a typo for a short list of possibilities, or if you really want to create a new field. Jon's db does support the creation of new fields for different crews.

Crew cords must never have the same person listed more than once. The import process shouldn't let them get away with that. IOW they must at least de-dup their own data, even if they don't have time to match people up with their previous records in the db.

Data Entry and Vetting Participants:

We can fund liaison positions to help cords with data entry. In worst case cords hand off xls sheets as hard copy or on a USB stick to a liaison to do this. We track how much load they put on the liaisons and over time make adjustments. The first step would be to assign a co-cord to the crew to take over the communications and db updates. We might have a liaison at the sticker booth to help unvetted participants get their records merged.

Vetting folks in the db involves merging records, which is a potentially destructive process. If you have good update logging you could always roll back changes, though since we are working hard to clean up our db, we might want to limit who can do these merges / pruning of out of date fields. and records.

OCF Bylaws change defining membership:

Recent Amendment:

Eligibility and Admission:
(a) Any individual who subscribes to the purposes and basic policies of the Fair, abides by the
terms and conditions of these Bylaws, the Articles of Incorporation and any amendments thereto, and
acts in accordance with the decisions made by the Board of Directors, is eligible for membership if the
individual is registered with the Fair and (1) has either received a wristband, other Fair camping pass
or verifiable worker day pass in one of the two previous years, or (2) is a verified elder. To remain a
member, an individual must vote in at least one annual membership vote every three years.
(b) There is no membership fee required for general members
(c) It is the responsibility of each member to file an initial registration form with the Fair and
to promptly notify the Secretary of any changes of address. The member's right to receive
notices pursuant to these bylaws or Article of Incorporation shall be deemed to be waived
if the address on record with the Secretary is not the member's current address
(d) Registration forms may be submitted online if the Board of Directors so provides.

Changes:

To summarize the changes, first and most importantly, this expands membership to anyone with a
camping pass including significant others. This expands membership to anyone that gets a camping
pass. It does not change the status of worker day passes who are currently eligible to be members. In
addition, the amendment removes the requirement that an elder participate in the last two years. It
maintains the requirement for everyone else, but a person who is a verified elder remains eligible
irrespective of any other participation. It adds a requirement a person vote at least every three years
to maintain membership. This permits a gleaning of the rolls for persons that are no longer eligible. It
changes in the subsection now called (c) it changes the word "register" to "file an initial registration
form." It adds a final subsection on "registration forms may be submitted online if the Board of
Directors so provides." And finally, it cleans up the outlining of the sections.

Problems / Comments:

There are other events such as culture jam that folks put lots of energy into and this wording doesn't recognize them as potential members. Also some volunteers that put in many hours during pre-fair don't stay for the actual fair so they don't get any inventory. It seems like these folks should also qualify. Probably the cords would have to document crew hours. Then a minimum number of hours would be acceptable in lieu of actual inventory.

No one is really happy with the current wording of this amendment. We are somewhat optimistic that we can propose a cleaned up and more implementable version, and have it adopted if we make the effort.

Other Random Notes:

Currently Heidi accepts anyone that applies and has a good story and they are members forever. This is all her crew can do right now, but is not in line with policy. This will have to change to make use of participation data.

Tools we can use:
Data validate for same names and birth date etc before doing an upsert if it's a member ID, otherwise assign new.

Track coordinator or even all user stats on how well they do with the UI (requires logging).
Track how many of their opt-out crew later establish their membership on their own. (requires logging).
Cords that make heavy use of liaison or opt-out most of their crew are assigned co-cords to handle that, and are eventually retired. May use an (opt-out) / (later establishment) ratio as a score. Note they take a hit for re-opting-out a crew member who went to the effort of establishing their membership.


As soon as someone with a membership number is assigned serialized inventory (for the current year) and have at anytime made a request to be a voting member, then they are counted as having satisfied the criteria for the current year. You should be able to track these same items with a temporary record but they don't take effect until it is vetted.

Non-member or Temp member data is suspect because it was hastily entered. When merging those IDs with a matching member ID, fields that would be updated from the temp record are checked carefully. Some fields may require a decision about which value to keep, and if the participant is not around at the moment then it would be handy to merge the records keeping the official membership number but keep any alternative values for some fields, that have yet to be resolved. Such as fair name, address, phone etc... It would be nice to have multiple versions of these things anyway with a short name or comment, or both. There should at least be a list order to them with the first one being the preferred version.

Jon's no-sql system should have some recognized optional fields (that have meaning to the fair) that would have uniform logic in how they are handled. Eg hours, Meat/Veg/Vegan

Jon Writes:
If asked about policy, my input would be:

 o  All Fair organizations will be required to input their data using our
    system by the year TBD.

 o  Real names and birthdates are required for everybody.  Working email
    and phone are required for anybody in a hiring position such as crew
    leaders and coordinators.

 o  Folks who do not abide by this will be replaced.

 o  All inventory gets handed out and recorded at the sticker booth.

 o  Come up with a date on which age decisions are based.

membership is opt-in and requires an actual piece of paperwork to be filled out, signed, and sent to Heidi. 

-- ClifCox - 08 Feb 2016

This topic: OCF > WebHome > OCFIT > MembershipTrackingProposal
Topic revision: 2016 Apr 19, clif
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback