Toolkit

Read the data yourself.

How to look up an organization, read what it files, and pull the numbers for where you live. Then a set of AI prompts for hearing what people tell you. Copy one, fill in the brackets, and save the version that works.

Spoke with me at NEFMA? The banking and credit union version is here.

/ 01 · Public data skills

Three things anyone can do.

Check an organization’s status

Use the IRS Tax Exempt Organization Search.

  1. Search by name or EIN. The EIN is more exact, since names repeat.
  2. Check whether its exemption was automatically revoked. That happens when an organization doesn’t file for three years in a row.
  3. Open the filed returns. They’re public, and they’re where the money shows up.

Read a Form 990

Which form an organization files depends on its size. Per the IRS: the 990-N postcard if gross receipts are normally $50,000 or less, the 990-EZ if gross receipts are under $200,000 and assets under $500,000, and the full 990 above that. The postcard has very little in it. On the full 990, start here:

  1. Part I, the summary. Revenue, expenses, and net assets for this year and last.
  2. Part III, program accomplishments. What it says it did, in its own words.
  3. Part VII, compensation. Officers, directors, and the highest-paid employees.
  4. Schedule A. Why it qualifies as a public charity, and where its support comes from.

Pull your county’s numbers

Use data.census.gov, which runs on the American Community Survey.

  1. Search a topic and a place together, like “poverty Essex County, Massachusetts.”
  2. Pick 1-year or 5-year estimates. Standard 1-year estimates only exist for places of 65,000 people or more. For small towns and census tracts, use 5-year. (Census guidance)
  3. Read the margin of error column. If two places are within it of each other, you can’t say one is higher.

More public sources, by topic, are on The Landscape.

/ 02 · Before you prompt

Get one tool approved. Once.

With one approved AI tool, someone already on your team can do this work. Sit down with whoever handles your IT, privacy, or legal questions and agree on five things.

  • Which tool. Check what you already pay for before you buy anything.
  • What can go in. Comments with personal details stripped out.
  • What can’t. Names, account or case numbers, contact details, anything personal.
  • Who owns it. One person. If it’s everyone’s side project, it won’t get done.
  • Who checks it. A human reviews what the tool says before anyone acts on it.

What I write into every prompt

  • Give it context. Who wrote these, and where they came from.
  • Give it your categories. If it invents themes, they change every run and you can’t compare.
  • Ask for the emotion. Anxious, confused, and frustrated need three different fixes.
  • Ask for sentiment toward each topic. One comment can love your staff and hate your hours.
  • Use the words “trigger” and “driver.” “What are people unhappy about?” gets topics. “What drives it?” gets causes.
  • Require the exact quote. You can check its work in seconds, and it’s how you catch sarcasm.
  • Count in the spreadsheet. AI tools are unreliable at counting. Tag rows with AI, count with a pivot table, and run big files in batches.
  • Never let it guess about people. No inferring age, gender, race, or anything personal. Put that line in the prompt every time.
/ 03 · Listen

Hear what they feel.

Put the comments in one spreadsheet (date, comment, location or program), then run these in order.

Tag every comment

The master prompt. One row per comment, ready for a pivot table.

These are comments from [who: clients / volunteers / residents / members], collected from [source: surveys / call notes / public comment / reviews]. Sarcasm is common, so read for tone as well as words.

Return one table row per comment with these columns:
- Comment ID
- Topics mentioned, chosen only from: [your categories]
- Sentiment toward each topic: positive, negative, or mixed
- Main emotion (for example: grateful, relieved, frustrated, anxious, confused)
- Effort: yes if they mention repeat contact or words like "again," "still," or "third time"
- Any person, program, or location named
- The exact words that support each tag

Only tag what the comment actually says. Do not infer age, gender, race, or any other personal characteristic.
  • If you run a nonprofit or programClient or volunteer survey comments. Categories like intake, wait times, staff, transportation, hours, other.
  • If you work for a city or townPublic comment or service request notes. Categories like roads, safety, parks, permits, communication, other.
  • If you’re at a bank or credit unionCall center notes. Categories like staff, digital, fees, wait times, loans, branch, other.

Find the drivers

Run this on the tagged table. Some things only get mentioned when they break. Some get praised without anyone asking.

Using the tagged table, identify the top [5] drivers of negative sentiment. For each driver:
- Describe the trigger: what happened right before the person felt this way
- Give two supporting quotes
- Classify it: a basic expectation (people only mention it when it breaks) or a delighter (people praise it without being asked)

Then do the same for positive sentiment. Don't give me counts or percentages. I'll calculate those in the spreadsheet.

Count the names

How often do people name a person, a program, or a place?

From these comments, list every person, program, or location mentioned by name. Return one table row per mention with: comment ID, the name, the sentiment toward them, and the exact quote.

Flag who’s getting stuck

Repeat effort is usually the first sign someone’s about to give up.

Flag every comment that describes repeated effort or giving up: calling again, still waiting, a third attempt, stopped coming, went somewhere else. Return the comment ID, the exact quote, and the topic it relates to. Only flag what is stated.
  • If you run a nonprofit or programPeople who stopped showing up, or couldn’t get through intake.
  • If you work for a city or townRequests people have filed more than once.
  • If you’re at a bank or credit unionMembers or customers who mention closing an account or moving money.
/ 04 · Check the work

Trust it, then verify.

The tool will get some things wrong. These make the errors easy to find.

Find the shaky tags

Read these by hand before you share anything.

Review the tags you just produced. List any comments where the tone could be sarcastic, where the sentiment is unclear, or where you were least confident. For each, explain why and give your best reading. I'll review these by hand.

Month over month

Only works if you used the same categories both months. That’s why you save the prompt.

Here are two tagged tables using the same categories: [last month] and [this month]. Describe which topics and emotions shifted, and give quotes that show the change. Don't calculate percentages. I'll do that in the spreadsheet.
/ 05 · Act

Do something with it.

Close the loop, and explain it to the people who decide.

Tell people you heard them

“You asked. We changed it.”

People told us [theme], in comments like these: [two or three quotes]. We changed [what you changed]. Draft a short, warm message for [email / sign / newsletter / social post] that tells them we heard them and what's different now. Plain language, no jargon, under 75 words.

Explain it to the people who decide

Boards, funders, and councils each care about different things.

Here is a finding from our comments: [finding, with two or three quotes]. Write a one-paragraph summary for our [board / funders / council / leadership]. Say what we found, how we found it, what we don't know yet, and what a 90-day test would show.
  • If you run a nonprofit or programFunders often want to see who you reached and what changed.
  • If you work for a city or townCouncils often want cost, timeline, and who’s affected.
  • If you’re at a bank or credit unionLeadership often wants retention, risk, and cost.
/ 06 · Public data

Prompts for public data.

For reading what’s already published. Paste in the text, and check every number it gives you against the source.

Summarize a Form 990

Paste in the text of a filed return.

Here is the text of a Form 990: [paste it]. Summarize: total revenue and where it came from, total expenses, what the organization says it did (Part III), and the compensation listed in Part VII. Cite the part and line for every figure. Don't calculate ratios or make judgments about the organization. I'll do that myself.

Check a study before you share it

The questions from Reading the data, as a prompt.

Here is a study or report: [paste it or its methodology section]. List: who was surveyed and how many, the margin of error, who funded or published it, the time period the data covers, and what it does not tell us. If any of these aren't stated, say so. Don't summarize the findings until you've answered those.

Explain a number in plain language

Data journalism in one prompt.

Explain [number or chart] to someone with no background in data. Use one plain analogy, say where the number comes from and what period it covers, and say what it does not tell us. Under 150 words.

Pressure-test a vendor pitch

Before the demo dazzles you.

Here is a vendor proposal: [paste it]. List the questions I should ask about where our data goes, who can see it, total cost after year one, what it would take to leave, and what work it still leaves to my team. Flag any claims I should verify independently.

These are starting points, not recommendations for your organization, and tools change. Never paste personal data into a public AI tool. Strip personal details first, use a tool your organization has approved, and check with whoever handles privacy and security before you start.