What it does
The goal of Charitable is to make a nonprofit organization's (NPO) financial details easier to find than a donate button. Currently, navigating financial information is a hassle that benefits badly-run organizations. This obfuscation of information necessitates further research into NPOs so that donors can make an informed decision. To help inform donors, Charitable runs calculations on publicly supplied IRS Form 990 data obtained through ProPublica's API, revealing the NPO's charitable commitment. This is done by querying ProPublica's Nonprofit Explorer API to find the most-representative search result and it's IRS data for evaluation. Using the Red Cross as an example, the API offers pdfs of IRS information and also the XML version of this same information. XML-formatted data is then used to calculate metrics like Overall Charitable Contribution, Cash Buffer, and Net Income Margin.
Inspiration
The many ways the public continues to be misinformed and uninformed, led me to think about why we still collectively trust that our charitable donations are going directly to the cause. For each of the various NPO sites I've visited, the first feature to grab my attention was the donate button, not a mission statement or a list of lives a NPO has changed. There are many bad-actors in this NPO game, one of the worst being Kids Wish Network. Because organizations like this exist, we need to inform ourselves before we press that donate button; there are many charities for a particular cause so it is worth identifying which is one better than the other. Having financial data and pre-calculated values available at the click of button helps parse out the bad actors from the good ones. I hope my application can bring back some of the necessary transparency to the agreement between donor and NPO. We shouldn't have to trust that our donations are actually in good hands, we should know they are.
Challenges I ran into
I have never built a chrome extension before so figuring out how to communicate between the DOM and the chrome script was one of the tougher things about this project. Another difficulty stems from the way I query the ProPublica API. To get the charity's name, I parse the DOM for its title which is often in a format like "Charity Title | Home" but other times like "Home | Charity Title", "Charity Title: Home", "Charity Title", or "Charity Title and some description". In all cases but the last I am able to discern the name of the charity. When the title is clumped together with a description, I end up querying the API with a sentence rather than a search term and thus yield no results. This happens because there is no currently implemented way for me to discern which words out of the sentence are the charity's name.
Accomplishments that I'm proud of
Submitting my extension to the chrome store- I am hoping to have my submission approved before the judging. Testing it would then become as simple as downloading it from chrome store!
What I learned
More than I want to know about IRS 990 forms!
Additional links
Before realizing the video pitch needed to be about 3 minutes, I made a longer video going over how I built this project. If you are interested, you can view it here.
Built With
- chromeextension
- html
- javascript
- propublicaapi

Log in or sign up for Devpost to join the conversation.