How many unique donors donated last year?
What is our average gift size for this donor?
Which donors haven’t given in the last 12 months?
Are you struggling to get answers to these questions? Do you know that some nonprofit organizations out there get answers to these questions instantly?
It comes down to organized data; and organized data happens in an organized database.
Pinpoint All Your Data Types
It is better to do this at the early stages of building a new system, but it is still a good idea to take this step at any point, this is the first step towards remediating and fixing the data reporting issues.
What data do we want to log, track and report on? Let’s start brainstorming and writing down every possible data we would need, we will think about organizing this data in a second.
Tip: Start talking about your nonprofit, your mission, impact, journeys, deliverables, goals and day to day activities, most key words from what you say there would likely be a data point.
Let’s start jotting down all of those keywords even if they seem similar or redundant, we will start organizing them in a later step.
Let’s take an example nonprofit and extract the types of data we may be tracking and logging:
Feeding America
Feeding America is the largest hunger-relief organization in the United States, working through a nationwide network of over 200 food banks and 60,000 partner agencies including food pantries and meal programs. Its mission is to end hunger by connecting people with food and providing food assistance in the wake of disasters. Feeding America also advocates for policies that address the root causes of hunger and food insecurity, and works with retailers, manufacturers, and farmers to rescue food that would otherwise go to waste.
Keywords for Data:
Programs
Food Pantries
Meals
Food
Food Assistance
Constituents
Individuals
People
Farmers
Organizations/Entities
Retailers
Manufacturers
Partner Agencies
Policies
Causes of Hunger
When working with a database or an excel sheet, we don’t have to create a table for every data type, data types that share common information can be in one table with a category or type field.
Looking back at the data types from above, we notice that Constituents, Individuals, People and Farmers would share common information such as
Name
Email
Phone Number
Address
Since these are similar except for a classification, we can have all of these under one table with a field called Classification or Category or Type.
Additionally, even though it is not explicitly stated, but every nonprofit receive donations, these are data types we should account for as well.
Applying the concepts above across the remaining data types, we will end up with the following format instead:
Table 1: Programs
Food Pantries
Meals
Food
Food Assistance
Table 2: Individuals
People
Farmers
Donors
Table 3: Organizations/Entities
Retailers
Manufacturers
Partner Agencies
Table 4: Policies
Table 5: Causes of Hunger
Table 6: Donations
We concluded what tables to build in a database just from one paragraph about the organization, in a system implementation, we dive deeper by performing Business Analysis to learn more about the Nonprofit, from which we get to learn what other tables we need and set the roadmap for the implementation. I will be writing about Business Analysis for Nonprofits in more details, stay tuned.
How Data Relate To Each Other
Now that we have our tables in place, a bigger question to ask is how do these data points connect or link or relate to each other.
An Example is how do we know that these Donations came from this Donor. A Link must be established between the two. You could add what we call a Relationship field between Donations table and Donor table, meaning, when you enter a new donation row or record, it is required to select a Donor from the Donors table.
I will write about how relationships work in depth in a future article. Feel free to subscribe to know when it is published
The Outcome
What we have done so far is that we have our data well structured in tables and relationships between tables is established.
With this setup, you already solved many if not most if not all problems with data
How many unique donors donated last year?
That is the number of donors from the Donors table with Donations having a donation date within the last year.
What is our average gift size for this donor?
The system would automatically go through the list of Donations under this Donor and performs the average
Which donors haven’t given in the last 12 months?
Number of Donors where the number of associated Donations is zero for a donation date of the last 12 months.
You can then build reports to show you this data in a dynamic way such that it always pulls the Last 12 Months instead of pulling from January of 2026 to December 2026, this way, data is updated Realtime whenever you view it and you don’t have to build these reports again.