What it does

EduFundraising is a fundraising tool for K-12 parent organizations. It tracks who your group is asking, remembers what happened, and — the part a generic donor CRM doesn’t do — maps which parent already has a way in to which local business.

Finding the warm route

The reason the app exists. A cold ask to a local business is a stranger asking for money; the same ask passed through someone the owner trusts is a favour for a friend.

Connections

Any parent can flag a business they have a way into — they own it, they’re family of the owner, they manage it, they’re a regular. Each carries how well they know them and whether they’re willing to help.

Why it works that way: The person who knows the owner often isn’t in the app at all — it’s someone’s brother-in-law. So a connection can name a person who has no account, which is most of a real parent network.

Ranked routes in

Open any business and you see who can reach them, best route first, with a plain-language reason: “Dana’s brother Marco is family of the owner and knows them well — nobody has asked him yet.”

Why it works that way: A ranking nobody can explain gets ignored. Family-of-owner beats a weak regular; someone who already agreed to help beats someone unasked; someone who declined sinks but stays visible, because they may be the only route.

Introduction requests

Ask the parent who has the connection to make the introduction. It lands on their dashboard and they can say yes or no.

Why it works that way: A “no” is recorded against the connection, so the group doesn’t keep asking the same person about the same business.

Coverage

How many of the businesses on your list anyone actually has a way into, shown on your group page.

Why it works that way: If nobody has flagged anything, every ask on the list is a cold call — and that’s worth knowing before a meeting, not after.

Not asking twice

One ask per business, per drive

Two volunteers cannot both open an ask on the same business in the same campaign. The second one is told who already has it.

Why it works that way: Enforced by the database, not by care. Two people walking into the same shop the same week is the most common own-goal in a volunteer drive.

Do-not-contact, with a reason

A business that asks to be left alone is flagged, and a reason is required. They can’t be added to next year’s campaign.

Why it works that way: Board turnover is the whole problem. The volunteer who made that promise is often gone by the next drive.

Duplicate detection

Adding a business that looks like one you already have warns you, and a review screen groups likely duplicates so an admin can combine them.

Why it works that way: Merging two records moves one business’s history onto another. If that judgement is wrong the record claims a business declined when it never was asked — so the app groups and reports, and a person decides.

Remembering what happened

Interaction log

Every call, visit, email, text or letter logged against the business, with how it went. Logging also moves the ask forward, so it’s one step and not two.

Why it works that way: Kept against the business rather than in one parent’s inbox, so a new chair in September inherits the history instead of starting from zero.

Prospects outlive campaigns

Businesses belong to the group permanently; asks belong to a campaign. Last year’s “they gave $250, Marco set it up” is still there next year.

Named contacts

Record who you actually spoke to and whether they can say yes.

Why it works that way: The founding story: the pizza shop “said no” — but that was someone behind the counter, not the owner. A no from someone who was never the decision-maker isn’t a no.

Declines need a reason

Marking an ask declined requires saying why.

Why it works that way: “They said no” is a dead end for whoever picks this up next year. “They only sponsor sports teams” is a decision.

Running the drive

Campaigns

One drive — “Dad’s Night Out 2026” — with a goal, a deadline for asks, and the committee running it.

Events

Each thing the drive runs: Donuts in the Morning, Ice Cream Night, the big night. Own date, time and place, with a countdown.

Why it works that way: Shown above the ask board, because the events are the deadlines every ask is paced against.

The board

Every business in the campaign grouped by where it stands, showing who owns it and whether there’s a warm route in. Unclaimed ones can be picked up in a click.

Money kept honest

Promised and received are tracked separately.

Why it works that way: A progress bar that merges them tells a PTO it has money it can’t spend.

Yours to do

What’s assigned to you, what’s next, and what’s overdue — on the screen you land on.

The group

Find your school first

New parents search for their school before creating anything, and join the group that already exists.

Why it works that way: A duplicate group splits the connection graph and hides last year’s history. Searching first makes that structurally hard rather than something we warn about afterwards. The search tolerates spelling — “Lincoln PTO” finds “Lincoln Elementary Parent Teacher Organization”.

Requests to join

Ask to join an existing group; an admin approves. They’re emailed, and it shows in the app.

Why it works that way: Never automatic. Membership means seeing every business, every contact detail and every connection note, so a person already in the group decides.

Invitations

Admins invite parents by email. Single-use, expiring, and only redeemable by the address they were sent to.

Merging two groups

If two groups turn out to be the same organization, an admin of each agrees and they become one — every prospect, ask, interaction and connection moves across.

Why it works that way: One person can’t decide this about someone else’s group, and nothing is deleted: the businesses that now appear twice go to the review screen for a human to sort out.

Roles

Owners and admins run campaigns, assign asks and manage people. Members work their own asks and flag connections.

Privacy

This holds parents’ names, local business owners’ contact details, and who is related to whom.

Nothing crosses between groups

Every record belongs to one group. Membership is checked on every single request.

The public search shows almost nothing

Looking for your school returns a name, school and town. Never members, never businesses, never notes.

Why it works that way: It deliberately omits member counts too — that’s an activity signal, and publishing it would turn the search into a directory of which schools are worth targeting.

Nothing sits in a cache

The database is configured so none of this is held at the edge.

Not built yet

Listed so nobody plans around something that doesn’t exist.

  • Event revenueMoney is tracked through asks. A donut morning’s takings from sales have nowhere to go yet, so a campaign total won’t include them.
  • A giveback directoryBusinesses that want to be approached listing themselves, so schools start warm instead of cold.
  • Seeing across groups at one schoolTwo independent groups at the same school can each ask the same business without knowing. Correct for privacy, but it’s the double-ask problem one level up.
  • Donation processingThe app never touches money. Amounts recorded here are your own bookkeeping.