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.
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.