Skip to content
Operations23-Jun-20257 min read

Membership databases for community institutions.

A community body of 2000 to 15000 members tracking family relations, marriages, deaths, address changes, and internal migrations needs a real database, not an Excel file. The schema to model first matters.

By Mohammad Jamnagarwala · Simply Five Studio

A community organisation in Chennai serves about 6,400 members across roughly 1,800 households. The membership data has lived for years in a spreadsheet maintained by a senior volunteer. The spreadsheet has 26 columns, several of which are inconsistently filled. A new trustee asks a reasonable question in a meeting: how many widowed senior women in the community are not currently attached to a multi-generational household. The volunteer who maintains the spreadsheet looks uncomfortable. The answer requires cross-referencing three columns, none of which are authoritative, and the result will be approximate at best.

This is the moment a spreadsheet stops being adequate. The question is operational, the data exists in some form, but the data model cannot answer the question without manual investigation. The volunteers maintaining the spreadsheet are not at fault. The tool is not at fault. The mismatch is between what the organisation actually needs to know and what a flat table can structurally express.

The system that runs at Toloba Chennai AEM, a long-standing volunteer-based community organisation, treats the membership database as the structural foundation that everything else builds on. The decisions about what to model first, and what to defer, shaped how the system has held up across years of evolving needs.

Why a spreadsheet fails at community scale

A flat spreadsheet expresses one row per person or one row per household. It cannot express the relationships between rows without manual cross-referencing. A community organisation needs to express many relationship types: household membership, family relationship across households, marriage, parent-child links that span generations, deceased members whose records persist for historical and ritual purposes, and members who have migrated between localities.

Each of these relationships is a query the organisation actually runs. Which households are in the locality. Which adult children of senior members have moved away. Which families are connected to other families by marriage. Which members were active in a specific programme three years ago. The spreadsheet can be made to express any one of these. It cannot express all of them without becoming unworkable.

A relational database, properly modelled, expresses all of these cleanly. A person belongs to a household. A household has a locality and an address history. A person has a parent or multiple parents. A person has a spouse. A person has a status (active, deceased, migrated). The queries that were impossible in the spreadsheet become trivial in the database.

The schema to model first

The instinct, when building a membership system, is to model everything at once. The discipline is to model the smallest core correctly and let the rest extend from it. The core has four entities.

The person is the atomic unit. Every member is a person record with a stable identifier. The person carries name (with cultural variants where relevant), date of birth, gender, contact information, and status. The status is one of active, deceased, migrated, or inactive, with a date and a note. A deceased member's record persists; it is not deleted.

The household is the unit most community communications and billing run through. A person belongs to one household at a time, though the household membership can change over time as adult children form their own households or as remarriages occur. The household carries a primary contact, a head-of-household designation, and an address.

The relationship is what binds people across households. A person has a parent, who is another person. A person has a spouse, who is another person. These relationships are first- class entities, not denormalised fields on the person record. The relationship carries a type and a start date, and can carry an end date for relationships that have ended.

The address is the fourth core entity, with its own history. The household's current address is the active address record. Previous addresses are preserved for historical queries. A person who migrates from one locality to another generates a new address record without erasing the previous one.

These four entities, modelled correctly from the start, support nearly every query a community organisation actually runs over the first three years of the system's life. Additional entities (events, programmes, contributions) attach to them cleanly.

Marriages, deaths, migrations: the events that mutate the database

A community membership database is not static. Marriages happen. Deaths happen. Families move between localities or between cities. Each of these is an event the system has to handle cleanly, because the data integrity of the entire database depends on these mutations being applied correctly.

A marriage joins two people into a relationship and may move one of them into the other's household, or may form a new household. The database records the marriage event, mutates the spousal relationship, and updates household membership. The historical state, "this person belonged to household X until date D, then to household Y", is preserved.

A death changes the person's status to deceased, records the date, and triggers any downstream workflow the institution maintains. The person's record persists for historical, ritual, and family-history purposes. Their household membership typically does not change immediately, because the household itself continues.

A migration moves the household to a new locality or out of the organisation's geography. The address history captures the move. The person and household records persist. If the household remains a member of the broader community even though it has moved, communication continues. If the household has effectively disconnected, the status reflects that, but the record stays.

The system that handles these events cleanly does not lose historical context. The questions that come up years later, "when did this household move," "who was the head of this household in 2018," "which children of this family are now in which cities," all have structurally clean answers.

What this enables for the trustees and programme leads

A trustee planning a programme for senior women in the community can query the database for the relevant audience in 30 seconds. A programme lead preparing for a youth event can pull the list of households with members in the relevant age range. A coordinator preparing the annual community directory generates it from the live database rather than maintaining a parallel document.

The compounding effect on the organisation's operational capacity is substantial. The volunteer hours that previously went into ad-hoc spreadsheet queries, ad-hoc data cleaning, and ad-hoc reconciliation are now available for the actual community work. The trustees' governance conversations are grounded in current data rather than approximate recollection.

The deeper related view on how billing runs against this membership structure is at subscription dues and family-level billing. The view on how voluntary contributions sit alongside membership is at voluntary contributions and community trust.

What does not belong in the membership database

A clear discipline about what does not belong in the database is as important as what does. The database is not the place for medical records, sensitive financial details beyond what the organisation actually needs for its own operations, or private notes about individual members. Each of these may be relevant to specific workflows handled by specific people, but they do not belong in the structural membership layer that volunteers across multiple roles can access.

The data the organisation holds in the membership database should be the data it actually needs to run the community work, and no more. The discipline protects the members. It also protects the organisation from the risk of accumulating data whose existence creates obligations it cannot meet.

This is what decision infrastructure for a community organisation looks like at the foundation. A correctly modelled membership database. Clean event handling for the mutations that actually happen. A clear discipline about what does and does not belong. The broader view of how we build for community organisations is on the internal systems page.

When you are ready to talk through what this looks like for your organisation, Start a Conversation.

More reading

Related essays.

Continue the conversation

If this resonated, tell us about your operation.

The contact form takes about two minutes. The reply comes from the founder within two working days.