Database Report Writing
Short on time? Here's the gist.
You know what you want out of your database. You can see it in your mind's eye, but the system keeps returning numbers that do not make sense. Read this edition of Data-ish before you throw your computer out the window.
This is for anyone, regardless of the systems you use, because the thinking behind designing a good report is system-agnostic.
Things that make you go hmmmm.
You need to spell things out, literally.
When a report does not pull the number you expected, two things are usually true at once.
1. You asked the right question
2. The system answered that question correctly.
The system reads only what you ask. It does not know context or subtext.
Say you wanted to see renewing clients alongside their initial start date and latest renewal date, so you know whom to reach out to.
If you did not explicitly say or select what you needed in the output, the system has no way to know. Even though that layout makes logical sense to you as the person who knows the data, the system does not know what should go where.
Computers need the "obvious part" spelled out.
You need to know what you have and what is possible.
Say you want to run a report to see which young people progressed to the next grade level on time, but your system returns a blank screen.
Your database overwrites the grade field every year, so it only shows what grade a student is in right now. A student who was in kindergarten last year and first grade this year shows up only as first grade. The system has no record of the kindergarten year at all.
That means you cannot see who progressed to a grade within a 180 or 365-day window, because the data that would answer that question was never kept.
You may be able to fix this by changing how the field is configured. Keep an eye out for our September Data-ish issue, where we will dig into field configuration and the design decisions behind it.
Field Notes
At a recent conference, we sat down with a team building a reporting system from scratch. When they described what they needed, it sounded straightforward: one dashboard, one number, one filter. When they drew what their intended report output would look like and explained the drawing back to us, the sketch included more data elements, more filters, and more calculations than the description had.
People who work inside a system every day carry knowledge they do not know they are carrying. They cannot hand it to you in a sentence, but they can show you what is in their head if you give them a different way to get it out.
Data-ish Community
I built the Data-ish newsletter for everyone who has ever found themselves in that seat. As budgets shrink and demands for data grow, a newsletter stopped feeling like enough.
The Data-ish community is for people who want to go further. Each month, members get an expanded issue, a structured activity to try with their own data, and a live Zoom to talk through what they found with each other and with me.
The community section below shows how the outputs changed with better prompts. Non-members have access to community content and our live monthly gatherings through 2026.
Data-ish members only content
•
Data-ish members only content •
Go analog to understand what you need.
Step One: Draw What You Expect
Before you open the system, draw the report by hand. What fields show up? What sits in the columns you never touch? Is this a grid, a chart, a single number? What would make you say, "that is exactly what I meant," the moment you saw it?
Step Two: Write Your System a Love Letter
The fastest way to get precise with a database is to ask it for what you need in a full sentence rather than from a dropdown. Use this template the next time you request a report.
Dear [software name], I need to see [data needed], sorted or filtered by [demographic or other data] and with [other data type] so that [what you will do with the report].
P.S. I need to see this visualized as a [layout or chart type] because [reason].
Here is one example:
Dear Show Me The Money 365, I need to see all donors who gave last year but not this year, sorted by most recent gift size and whether they attended our annual meeting, so that I can prioritize donor outreach.
P.S. I need to see this visualized as an Excel grid with the following columns: Donor name; most recent gift amount; largest lifetime gift size and date; last communication touchpoint, so I can manipulate the results.
Step Three: Combine and Re-Ask
Put your drawing next to your letter. Where do they agree? Where does the letter mention something the drawing left out, or the other way around? Take both back to your system and ask for the report again, this time in full sentences.
Check Yourself
Before you turn your needs into a report, check to see if the following are true.
I know what data I expect to be included in the report because I stated it explicitly.
I put the appropriate filters on so I only see what I need (e.g. year).
I documented when and where computation was needed.
I defined any term that could mean more than one thing (e.g. "active," "renewing," "completed").
I know how the results should be sorted, and why that order matters for how I'll use them.
I named the visual format the report should take, whether that's a grid, a chart, or a single number.
I know which fields already exist in the system and which ones I'll need to request or build.
I can name where my drawing and my letter disagreed, and I know which version is right.