Introducing fundr

r
fundraising
prospect development
Author

Matt Farrow

Published

February 8, 2026

Introducing fundr: An R Package for Fundraising Analytics

For more than a decade, I’ve worked in fundraising in prospect development—identifying, qualifying, and managing donor prospects. Along the way, I grew to love analytics and taught myself R. I started using it for repeatable data manipulation, but over time it became the tool I reach for everywhere: regular reporting, accessing APIs, and querying SQL databases.

That evolution left me with dozens of helper functions and personal conventions that I rely on in my day-to-day work. For years, I’ve wanted to consolidate them into a single, personal package—something cohesive, reusable, and maybe even useful to others doing similar work. That’s how fundr was born.

As the package description puts it:

The goal of fundr is to provide lightweight, tidyverse-compatible utilities for fundraising and advancement analytics, with minimal required dependencies.

Why a Package?

Anyone who has spent time in prospect development or advancement analytics knows the feeling: you have a folder (or several) of .R scripts with useful snippets scattered across projects. A function to calculate fiscal years. A formatting helper for currency. A quick way to classify donors as LYBUNT or SYBUNT. Over the years these accumulate, and every new project starts with copying and pasting from the last one.

An R package solves that problem. It gives you a single, versioned, documented, and testable home for all of those utilities. And once you’ve gone through the effort of organizing things, sharing them with colleagues—or the broader Apra community—becomes trivial.

Claude Code

I have also been reading and listening to so many conversations about Claude Code and vibe coding. Working in fundraising, personally identifiable information (PII) is constantly front of mind. In healthcare fundraising, that expands to protected health information (PHI) and HIPAA as well. Because of that, I don’t have much latitude to use these tools in my day-to-day work.

This package, though, has given me the opportunity to explore what’s possible within a domain I know extremely well.

So what does that mean for fundr? For now, I’m using Claude Code to take a feature wishlist and quickly build out scripts and documentation. One reason this package didn’t exist earlier is the intersection of effort required and time available. I have no intention of submitting a package to CRAN without reviewing every function and data set and understanding them backward and forward—that wouldn’t be fair to future users. But at this early stage of development, Claude Code has been a helpful way to get things off the ground.

Design Philosophy

Minimal dependencies. The core functions depend only on base R, keeping the package lightweight and easy to install. Optional features like ggplot2 themes and database helpers are available when you have those packages installed but won’t cause issues if you don’t.

Tidyverse-compatible. fundr functions are designed to work naturally in pipelines with dplyrtidyr, and other tidyverse packages. They accept and return the kinds of vectors and data frames you’re already working with.

Domain-specific defaults. Rather than making you configure everything from scratch, fundr ships with sensible defaults for fundraising work—a July fiscal year start, standard gift level brackets, and donor classification thresholds that match common practice in the field.

Getting Started

You can install fundr from GitHub:

# install.packages("pak")
pak::pak("mattfarrow1/fundr")

From there, the package website has full documentation, and the bucketing levels vignette walks through one of the more common use cases in detail.

What’s Next

fundr is still in active development (you’ll notice the experimental lifecycle badge), and I have a growing list of features I’d like to add. If you work in fundraising analytics and have ideas, feature requests, or bug reports, I’d love to hear from you—open an issue on GitHub or reach out directly.

Building this package has been a rewarding exercise in taking years of accumulated knowledge and giving it a proper home. If you’ve been thinking about packaging up your own collection of helper functions, I’d encourage you to give it a try. The R community has made the process more approachable than ever with tools like devtoolsusethis, and pkgdown.

Back to top

Citation

For attribution, please cite this work as:
Farrow, Matt. 2026. “Introducing Fundr.” February 8, 2026. https://mattfarrow.co/project/2026-02-08-introducing-fundr/.