I recently donated some money to a small web-based charity, which accepts Paypal payments and electronic bank transfers. Whilst I have no fears that the charity misspends any donations, I realised after giving that I had no idea how the money had been spent. This particular organisation is run by over-worked volunteers, and whilst I could get in touch with them, they’d probably only be able to say that monies go into “general funds” anyway.
Thus, it occurs to me that the lack of connection between a donation and its impact may be missing a great opportunity to encourage donors to give again. To achieve this, I am thinking of a system that could receive notifications of donors and amounts given, and notifications of monies spent, so that donors can be assigned to spend. While the connection between donation and spend is arbitrary, and although astute givers know this, that should not stop users in general from experiencing the warm glow of seeing evidence of help in action.
Also, when a connection is made between a giver and spend items, the system could optionally email the giver a link to show what their money was spent on.
I wonder if this project would also improve general confidence in a charity, since it would make it easy to publish all disbursements (in a fashion that anonymises all donor names, of course).
It would also be good to allow donations and disbursements to be categorised, so that if the charity is willing to permit it, donors can choose what category to support (i.e. so their monies are only allocated to expenditure in their chosen categories). Alternatively, donations could be automatically allocated to unpopular categories, e.g. 10% on general administration (with the other 90% being allocated to tangible charitable works).
Technical notes
My thinking at present is that this would be an API, or a collection of micro-APIs, to allow for the greatest amount of flexibility in how categories are configured and how the information is publicly presented. Charities with access to IT assistance could configure a private instance in the way that they use WordPress etc. now, or a shared instance could be set up, so that a WordPress plugin can be pointed to it.
Or, the presentation layer could be frontend JavaScript (requesting JSONP from a remote instance), which could negate the need for extra local backend architecture.