Skip to content

About

Local analytics dashboard for CRM transaction exports, donor segmentation, contribution tracking, and outreach workflows.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

Fundraising Intelligence

Fundraising Intelligence dashboard preview

Fundraising Intelligence is a local analytics dashboard for NationBuilder transaction exports used by political campaigns and EDAs.

It helps teams understand donor behaviour, revenue sources, outreach opportunities, and configurable annual planning benchmarks without sending donor data to third-party services when run locally.

What It Does

Given a NationBuilder transactions export, the app can:

  • Break down revenue by source, including local, national, and event donations
  • Identify core local donors
  • Prioritize national donors for local outreach using a transparent heuristic engagement score (0–100) based on observed recency, frequency, and giving depth (without uncalibrated ML probability claims)
  • Detect recurring national donors across calendar months
  • Generate outreach and call-list targets (including year-specific $400+ relationship lists)
  • Track configurable annual planning benchmarks by category across user-selected reporting years
  • Audit transaction data with robust multi-format date parsing (US 12-hr, 24-hr, ISO-8601 with timezone handling) and unlinked transaction isolation

All analysis runs locally on the user's machine.

Choose a Start Path

Option 1: Download the Desktop App

If you want the fastest setup, download the packaged desktop release from the repo's Releases page.

The desktop release includes a synthetic sample CSV that you can upload to explore the dashboard.

Option 2: Run From Source

Clone the repository:

git clone https://github.com/ThomasRoyProjects/Fundraising_Intelligence
cd Fundraising_Intelligence
python3 -m venv .venv
. .venv/bin/activate
pip install -r app/requirements.txt

Generate demo data:

python app/generate_demo_data.py

Run the dashboard:

streamlit run app/fundraising_dashboard.py

Then upload the generated demo CSV inside the app.

Desktop Build

The desktop version uses an Electron wrapper with a bundled Pyodide/WebAssembly runtime for the dashboard; it does not require host Python.

Build steps:

npm install
npm run dump
npm run dist

Build output is written to dist/.

The macOS build is ad-hoc signed without certificate discovery or Keychain access. It is not notarized; verify the release checksum before approving it locally. To build universal DMG and ZIP artifacts for both Intel and Apple silicon, run npm run dist -- --mac --universal --publish never. During a universal build, the packaging hook removes bundled per-architecture signatures before merging and applies one final ad-hoc signature to the merged app.

Architecture

This project combines:

  • A Python analytics app for data loading, transformation, and dashboard logic (run by Pyodide/WebAssembly in the packaged desktop app)
  • A local-only workflow so campaign data stays on the user's machine
  • An Electron packaging layer for desktop distribution
  • Demo data generation for fast testing and portfolio review

Demo Data

If you do not have a NationBuilder export, generate sample data with:

python app/generate_demo_data.py

This creates:

app/fake_nationbuilder_transactions.csv

Tech Stack

  • Python
  • Streamlit
  • pandas
  • numpy
  • Pyodide/WebAssembly for the packaged Python runtime
  • Electron
  • stlite desktop tooling

Data Privacy

Fundraising Intelligence is designed for local-only processing.

The application:

  • does not upload donor data
  • does not require an external backend
  • does not send campaign records to third-party APIs during analysis

Project Structure

app/
  data_processing.py
  fundraising_dashboard.py
  generate_demo_data.py
  requirements.txt
tests/
  test_data_processing.py
docs/
  dashboard_preview.png

Why This Project Matters

Political and advocacy teams often work with messy fundraising exports but still need quick answers about donor concentration, conversion opportunities, and outreach priorities.

This project turns raw transaction exports into a usable local analysis tool with a deployable desktop build.

Future Improvements

  • Support additional CRM import formats
  • Add more filtering and segmentation workflows
  • Expand dashboard summaries and export options
  • Add direct integrations where local-only workflows remain appropriate

Running Tests

Run the focused regression suite with:

python -m pip install pytest
pytest tests/

Disclaimer

This project assists campaigns in analyzing fundraising activity. Configurable planning limits and engagement scores are operational heuristics and internal planning benchmarks, not statutory legal compliance determinations or predictive machine learning models. Contribution limits and reporting rules vary across federal, provincial, and municipal jurisdictions. Users remain responsible for complying with campaign finance and privacy requirements in their jurisdiction.

About

Local analytics dashboard for CRM transaction exports, donor segmentation, contribution tracking, and outreach workflows.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages