Statue of liberty logoLOCATEM - Multi-file

Libertarian Organization Contact Administration Tool and Evaluation Manager, or LOCATE Members

After many years of suffering with partial solutions for contact management, I developed a two-file solution exclusively for Libertarians. Since then I realized a twenty-nine-file solution would be more flexible and comprehensive. Candidates may need as many as twenty-six of those files. If different telephone carriers are not used to minimize calling costs, then two files are not necessary. If networked, the National and State organizations each only needs one file.

LOCATEM is intended to be a comprehensive solution that leaves no one complaining that they wished there was another telephone field, or a date and time stamp button, or a way to sort members or registered Libertarians by street number or carrier route to facilitate petition drives or sign distribution. It may seem overwhelming to the uninitiated, adequate to the experienced, or minimal to those with scares fresh from the political information management battle.

After running for office five times (Assembly twice, Representative twice, City Council once) and auditing the Libertarian Party of California database system, I arrived at the need for LOCATEM. It can be readily extended to handle additional requirements that I did not foresee, or that may subsequently arise. For example a Libertarian Party 'Yellow Pages' directory of libertarian businesses.

Contents

Rationale

Libertarian candidates and activity organizers as well as Region, State and National Party organizations need strong database tools if we are to be sufficiently organized to become the largest Party. They all have special needs and often can't wait for data to be extracted from a centralized database. Each only needs to maintain data about resources in their area.

Centralized data is risky. Data distributed redundantly mitigates loss. Candidates are invariably unhappy with the response of Regions, Regions with State organizations and States with National. National doesn't trust State organizations to accurately maintain data. State organizations are afraid marginal Regions my cease to exist or otherwise lose data. If the data is redundantly maintained at all levels, everyone is happy. If all levels utilize copies of the same system (less the databases they don't need), they can more readily import new and moved member data accurately using matching field names.

A web-based system is proposed because practically everyone knows how to use a Web browser. While the National, State and the larger Regions may want to collocate servers at Internet Access Provider facilities for improved responsiveness, anyone with a cable or DSL modem and a permanent IP Address can support a Web server.

The portal hierarchy of databases can be maintained across the Internet, so National can see information in State databases, which can in turn see data in Regional databases. Portal values can be displayed in popup selection lists. If that is considered a security or privacy risk, then the data must be periodically exported, compressed, encrypted, FTPed or Emailed, decrypted, decompressed and imported. This process can be automated with scripts, but that poses a maintenance burden as IP Address and file locations change.

The automated calling function and formatted printing/FAXing features cannot be used via the Web, so the databases may be provided as runtime solutions for both PC and Mac users so they will not have to buy the database program. They only need a modem to utilize the call button. Similarly, the Region, State and National sets can be provided to those organizations for local use.

Description

LOCATEM consists of a maximum of twenty-nine related databases. References to "buttons" are graphics or text that can be associated with the execution of a script either as Web form buttons or local database window buttons.

#

Database

Fields

Relations

Reason for DB

Scripts

0

Users.fp4

  1. User ID
  2. Member Number
  3. Person ID

Person ID to Person.fp4

Restrict access to any database to Members only and indicate who changed what where.

1

National.fp4

  1. National Name global
  2. State portal
  3. Officer portal
  4. Candidate portal
  5. Office portal
  6. Comparison portal
  7. User portal

Each state organization needs to know about its Regions. National will have officers, candidates, activities and access constraints unique to it,

2

State.fp4

  1. Nation ID global
  2. State ID global
  3. Officer Portal
  4. Region portal
  5. Candidate portal
  6. Office portal
  7. Comparison portal
  8. User portal
  1. State ID to National.fp4

Each state organization needs to know about its region organizations. State organizations will have officers, candidates, activities and access constraints unique to them.

3

Region.fp4

  1. State ID global
  2. Region Number global
  3. Region Name global
  4. County portal
  5. Precinct portal
  6. Officer portal
  7. Member portal
  8. Supplier portal
  9. County portal
  10. District
  11. Office portal
  12. Comparison portal
  13. portal
  14. User portal
  1. Region ID to State.fp4

People move among Regions and Regions are redefined. Only the IDs need be changed to establish the appropriate with a prospect, registrant, member, volunteer, contributor...

Regions need to know about their members. Region organizations will have officers, candidates, activities and access constraints unique to them.

4

County.fp4

  1. County ID
  2. County Name
  3. State ID global
  4. Region ID global
  5. Office portal
  6. Supervisor portal
  7. Representative District portal
  8. Senate District portal
  9. Assembly District portal
  10. Water District portal
  11. etc.
  12. Area code portal
  13. ZIP Code portal
  1. State ID to State.fp4
  2. Region ID to Region.fp4

Although there is normally a one to one relationship to Regions, it may be one to many or many to one.

5

District.fp4

  • District ID
  • Region ID
  • Office portal
  • Precinct portal
  • Area code portal
  • ZIP Code portal
  1. County ID to County.fp4
  2. Region ID to Region.fp4

By relating various voting districts to precincts, the voters in each district can be determined.

Districts may be allocated to Regions.

6

Precinct.fp4

  1. Precinct ID
  2. Precinct Type
  3. District ID global
  4. Area code portal
  5. ZIP code portal
  1. District ID to District.fp4

By relating various voting districts to precincts, the voters in each district can be determined.

7

Office.fp4

  1. Office ID
  2. Name (Supervisor, representative, senate, assembly, water district, etc.)
  3. Qualifications
  4. Schedule portal
  5. State ID
  6. County ID
  7. District ID
  1. State ID to State.fp4
  2. County ID to County.fp4
  3. District ID to District.fp4

All political and appointed offices available in jurisdiction.

8

ZIPCode.fp4

  1. ZIP Code
  2. Precinct ID
  3. District ID
  4. Region ID
  5. State ID
  6. Carrier Route portal
  1. Precinct ID to Precinct.fp4
  2. District ID to District.fp4
  3. Region ID to Region.fp4
  4. State ID to State.fp4

ZIP Codes are a useful way to find and allocate resources.

9

CarrierRoute.fp4

  1. Carrier Route ID
  2. ZIP Code ID
  3. Street portal
  1. ZIP Code ID to ZIPCode.fp4

Important for bulk mail and signature gathering purposes.

10

TelephoneCarrier.fp4

  1. Carrier Number
  2. Carrier Name
  3. Area Code
  4. Prefix
  1. Area Code to Phone.fp4
  2. Prefix to Phone.fp4

Automate the use of different carriers to reduce calling costs by mapping area codes and prefixes to carriers.

11

AreaCode.fp4

  1. Area Code
  2. Person ID
  3. ZIP Code ID
  4. Precinct ID
  5. District ID
  6. County ID
  7. State ID
  1. ZIP Code ID to ZIPCode.fp4
  2. Person ID to Person.fp4
  3. Precinct ID to Precinct.fp4
  4. District ID to District.fp4
  5. County ID to County.fp4
  6. State ID to State.fp4

Telephone area codes and prefixes can be a useful way to find and allocate resources.

12

Person.fp4

  1. ID
  2. NamePrefix
  3. FirstName
  4. MiddleName
  5. LastName
  6. NameSuffix
  7. Organization
  8. Function
  9. Type portal
  10. Street Address portal
  11. Mailing Address portal
  12. Telephone portal
  13. Email address portal
  14. Email Subject global
  15. Email Body global
  16. Web URL portal
  17. Relationship portal
  18. Volunteer portal
  19. Donation portal
  20. Comparison portal
  21. Voter Registration number (link to Registrar of Voters database for data mining purposes)
  22. Membership number
  23. Membership Day
  24. Membership Month
  25. Membership Year
  26. Memberday Calculation
  27. Membership period
  28. Renewal date calculation
  29. Expertise
  30. Resources (canopy, flyers, tables, etc.)
  31. Notes
  32. Birth Day
  33. Birth Month
  34. Birth Year
  35. Birthday calculation
  36. Origin date
  37. Modification date
  38. Nolan Personal Freedom Score
  39. Nolan Economic Freedom Score
  40. Nolan Freedom Sum calculation
  41. Information Release Constraints
  1. Region ID to Region.fp4
  2. Person ID to Street.fp4
  3. Person ID to Mail.fp4
  4. Person ID to Phone.fp4
  5. Person ID to Relation.fp4

Contact descriptive information useful for searching and resource allocation.

Candidates, petition drivers and those conducting other activities will have access constraints unique to their purpose.

Members can maintain their own contact information, relieving Regions of the burden.

To avoid problems, each entry must be for one individual, e.g. no Mr. and Mrs. Related individuals in families using Relate.fp4. Mailing option will concatinate names at the same mailing address to minimize mailing costs.

Dates are split to facilitate notifications, e.g. renewal and statistics, e.g. member age.

Find all records with Renewal Date < value and > value.

13

Type.fp4

  1. Person ID
  2. Officer
  3. Candidate
  4. Member
  5. Libertarian
  6. Republican
  7. Democrat
  8. ...
  9. Prospect
  10. Media contact
  11. Supplier
  12. ...
  13. Notes (media contact circumstance,
  1. Person ID to Person.fp4

Persons can play many roles

14

Street.fp4

  1. Street number
  2. PreStreetDirection
  3. StreetName
  4. PostStreetDirection
  5. StreetType
  6. Suite
  7. City
  8. State
  9. ZIP code 5
  10. ZIP code 4
  11. RegionNumber
  12. Thomas Brothers
  13. Date,
  14. Page Number and
  15. Grid Location
  16. Person ID
  17. Precinct ID
  18. Carrier Route ID
  1. Person ID to Person.fp4
  2. Precinct ID to Precinct.fp4
  3. Carrier Route ID to CarrierRoute.fp4

Need to sort on Street Number or Carrier Route to optimize signature gathering.

Many people may share the same street address, which is important to optimize signature gathering.

15

Mail.fp4

  1. Person ID
  2. Blank, POBox or c/o popup
  3. If not POB, then StreetCalculation, else blank field for box number or another street address
  4. City
  5. State
  6. ZIP code 5
  7. ZIP code 4
  1. Person ID to Person.fp4

Many people may share the same postal address, which is important save money on mailings.

Make mail address same as street address

Find all Persons of Type at the same address.

16

Phone.fp4

  1. Person ID
  2. Carrier Number (1010321) portal
  3. Area code
  4. Prefix
  5. Number
  6. Type (home, office, FAX pager...)
  7. Date Stamp
  8. Time Stamp
  9. Conversation
  10. Local Area Code global
  1. Person ID to Person.fp4

Many people have many telephone numbers and may share the same telephone number(s).

New button creates new Phone.fp4 record.

Delete button deletes current Phone.fp4 record.

Dial script button dials number using carrier number if present and area code if different from Local Area Code.

Date and Time Stamp script button updates Date Stamp and Time Stamp fields.

17

EmailAddress.fp4

  • Email Address
  • Type (Home, Office, etc.)
  • Message global
  • Person ID
  • Region ID
  • State ID
  • National ID
  1. Person ID to Person.fp4
  2. Region ID to Region.fp4
  3. State ID to State.fp4
  4. National ID to National.fp4

One Person, Region, State or National may have more than one email address or multiple Persons may share an email address.

New button creates new EmailAddress.fp4 record with Person, Region, State or National ID.

Delete button deletes current EmailAddress.fp4 record.

Send button creates email message with Message field in body.

18

WebURL.fp4

  • URL
  • Type (personal, candidate)
  • Person ID
  • Region ID
  • State ID
  • National ID
  1. Person ID to Person.fp4
  2. Region ID to Region.fp4
  3. State ID to State.fp4
  4. National ID to National.fp4

One Person, Region, State or National may have more than one URL or multiple Persons may share a URL.

New button creates new Phone.fp4 record with Person, Region, State or National ID.

Delete button deletes current Phone.fp4 record.

Connect button opens URL in browser window.

19

Relation.fp4

  1. Relation ID
  2. Person ID
  3. Relation (Spouse, Father, Mother, Child...)
  1. Person ID to Person.fp4

People are related to each other in complex and unpredictable ways.

New button creates new Relation.fp4 record.

Delete button deletes current Relation.fp4 record.

20

Donation.fp4

  1. Donation ID
  2. Donation Name (One time, pledge, matching letters, matching membership, etc.)
  3. Amount
  4. Day
  5. Month
  6. Year
  7. Period
  8. Person ID
  1. Person ID to Person.fp4

Each person may donate in many ways.

New button creates new Donation.fp4 record with Person ID.

Delete button deletes current Donation.fp4 record.

21

Volunteer.fp4

  1. Volunteer ID
  2. Volunteer Type (Prospect, Member, Officer, Candidate, Road cleanup, Flyer distribution, Sign distribution, Envelope stuffing, Data entry, etc.)
  3. Person ID
  1. Person ID to Person.fp4

Each person may volunteer in many ways.

New button creates new Volunteer.fp4 record with Person ID.

Delete button deletes current Volunteer.fp4 record.

22

Account.fp4

  1. Account ID
  2. Activity ID
  3. Account Name (Visa, PayPal, etc.)
  4. Account Number (16-digit number, email address, etc.
  5. Expiration Date
  6. Three Digit Code
  7. Billing Address ID
  8. Billing Address Type (defaults to Mail Address)
  1. Activity ID to Activity.fp4
  2. Billing Address ID to Person.fp4

Different accounts may be used for different activities.

This financial data base can remain closed until needed for a billing activity (pledges, sales).

Notify Person of account debit via email.

23

Comparison.fp4

  1. Comparison ID
  2. Person ID
  3. Region ID
  4. State ID
  5. National ID
  6. Activity Portal
  1. Person ID to Person.fp4
  2. Region ID to Region.fp4
  3. State ID to State.fp4
  4. National ID to National.fp4

Sort to determine which promotional or recruiting activity has the highest ROI, or which ad in which publication in which media has the highest ROI. Spend 80% on that and experiment with the remaining 20% of your budget.

24

Activity.fp4

  1. Activity ID
  2. Activity Name
  3. Comparison ID
  4. Activity Manager ID
  5. Cost (sum of Item costs)
  6. Item portal
  7. Response (donations, new members, etc.)
  8. Value of Response in $s (memberships worth $25 plus average additional donations)
  9. Return on Investment
  10. Schedule portal
  1. Comparison ID to Comparison.fp4
  2. Activity Manager ID to Person.fp4

What activities have been conducted and what was their value?

New button creates new Activity.fp4 record with Comparison ID.

Delete button deletes current Activity.fp4 record.

25

Item.fp4

  1. Item ID
  2. Item Name
  3. Activity ID
  4. Item Cost Per Unit
  5. Number of Units
  6. Total Item Cost
  1. Activity ID to Activity.fp4

What was the cost of an activity?

New button creates new Item.fp4 record with Activity ID.

Delete button deletes current Item.fp4 record.

26

Schedule.fp4

  1. Schedule ID
  2. Activity ID
  3. Schedule Name (Senate district Registrar of Voters milestones, Senate district 42 campaign, beach party, member renewal mailing, etc.)
  4. Project Manager ID
  5. Task portal
  6. Scheduled Duration calculation
  7. Actual Duration calculation
  8. Ratio calculation
  1. Activity ID to Activity.fp4
  2. Project Manager ID to Person.fp4

Activities must be planned, coordinated and executed.

 

Only the Schedule records pertinent to an Activity will appear in the Schedule portal of that Activity.

27

Task.fp4

  1. Task ID
  2. Task Name (Get petitions, Distribute petitions, Collect petitions, deliver petitions, Stuff envelopes, Mail envelopes, etc.)
  3. Schedule ID
  4. Assignee ID
  5. Start Date
  6. Start Time
  7. End Date
  8. End Time
  9. Scheduled Duration calculation
  10. Started Date
  11. Started Time
  12. Finished Date
  13. Finished Time
  14. Actual Duration calculation
  15. Dependency portal
  1. Schedule ID to Activity ID
  2. Assignee ID to Person.fp4
  3. Dependency ID Task.fp4

The task hierarchy can be extended with additional databases (SubTask.fp4, SubSubTask.fp4) as necessary.

New button creates new Task.fp4 record with Activity ID.

Delete button deletes current Task.fp4 record.

28

TaskRelation.fp4

  1. From Task ID
  2. To Task ID
  3. Dependency Name
  1. From Task ID to Task.fp4
  2. To Task ID to Task.fp4

Some tasks are dependent on the completion of other tasks.

New button creates new TaskRelation.fp4 record with From Task ID.

Delete button deletes current TaskRelation.fp4 record.

Benefits

I have just begun this list for those who may be unable from their experience to infer the benefits from the database descriptions.

  • Avoid redundant data entry, maintenance, synchronization and misinformation.
  • Perform response tracking and compare the performance of outreach and solicitation methods to determine the best bang for your buck.
  • Find volunteers for specific projects in specific locations and correspond with them easily.
  • Know when to send membership renewal reminders and automate the effort.
  • Perform full contact management.
  • Sort for optimum bulk mailing and physical contact purposes.
  • ...
  • A copy of Person.fp4 and its related files can also be used as a personal contact management system.

Discussion

FileMaker Pro 4.0v3 is proposed as the engine, because FileMaker Pro is relational, scriptable, easy to use and modify, runs on Macs as well as PCs, and has its own Web server (WebCompanion) that, unlike later versions, which limit access to 10 concurrent users, allows unlimited TCP/IP access without the extra cost of the Unlimited or Server ($999) versions. I can generate FileMaker 4.0 runtime copies of the system. FileMaker will dial telephone numbers, email and connect to URLs. Its performance degrades after 600,000 records, but that limit will be exceeded if the hierarchy of databases is maintained. Servers can perform well with fifty database files concurrently open. Should the State organizations wish to redundantly maintain all of the Region member data or should National wish to maintain all of the State member data, then at some time in the future FileMaker 4.0 may prove to be inadequate and the system will have to be migrated to a later version of FileMaker or to another relational data management system, like Oracle,

LOCATEM must be treated as a commercial product with formal releases and distribution of those releases to all current "owners" to keep the data synchronized. Replacement database files will require exporting from the old, importing into the new and adding data for new fields. New database files will require adding relationships to some of the existing files. These are not difficult tasks, but they need to be documented and promptly done.

Consequently, the distributed system must be viewed as having a configuration the evolves over time. Information about who has what version of what file and who has implemented the latest version must be maintained. Not shown above is a database version field for all database files to facilitate problem isolation.

Multiple information layouts can be provided for various printing and FAXing purposes, like envelopes, labels, membership application forms, Petition in Lieu of Filling Fee forms, etc. Each would be populated with the data in the found set. The layout formats peculiar to the Party can be standard. The layouts peculiar for a jurisdiction will likely have to be modified to comply with jurisdiction specifications, e.g. different Counties may have different Petition in Lieu of Filing Fee form formats. If the information is served, then those making modifications must be careful to preserve the database peculiar code (CGI, specifically CDML). To facilitate that, I can provide a copy of HomePage at no cost other than CD copying, because the product is no longer sold.

More to come.

Proposal

While I am unemployed, I am willing to develop this system, and leverage the Form/Survey (activity sign-up, decision-making), Forums/ListServer (discussion groups - needs overhaul and additional file), Letters and Quotes (letter- and article-writing support) systems I have already developed (only need to enter Person ID to relate to Person.fp3 data), but it will be a full-time job (six months). Documenting it so anyone can maintain it is a full-time job (two months). Distributing and maintaining it throughout the various Libertarian organizations will also be a full-time job (indefinite).

Of course the system can be implemented in chunks according to priority, but that will introduce additional maintenance burdens, because during the development of subsequent databases the need for a field, relationship or script in a database file that has already been distributed may be discovered. This can be avoided if the entire system is developed, tested and released as a whole.

My monthly nut is $5,000. Does the Libertarian Party want to crack it for the duration?

Should I be employed full-time by a commercial enterprise, then this will be a part-time effort and take at least four times longer to develop, document and deliver in calendar time. In this case I would charge half of my normal rate of $80/hour, and customer support will be limited to evenings.

Some functionality that requires control of the computer or application programs thereon may only be available on Macs using AppleScript. As far as I know, there is no equivalent to AppleScript on IBM clones (MS Windows computers).

Home based servers can be existing personal computers. To avoid viruses and hacking, and have in integral "UPS," I recommend a used $500 iMac running System 91 or 9.2. For Regions without computer expertise, I would acquire iMacs and install them at the homes of officers or their designates. With Timbuktu installed, I can maintain them remotely. I would also provide a CD for disk maintenance purposes.

Contact Information

Bill Holmes Consulting

Change History

2/28/03
Added fields to Person.fp4, Street.fp4 and Mail.fp4 to reflect what was in the old LIBLET List file. Expanded the second paragraph of the Rationale section. -- Bill Holmes


| Libertarian Resources | LP 'Yellow Pages' |