Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Donations list website (DLW)

Available at but still in beta!

Note that the file in access-portal/backend/globalVariables is excluded from the Git repository, but you can see a corresponding dummy password file at

Setting up

From the shell run (note this will create and read into a donations database, so be careful if you already have a database with that name):

make init && make read && make reset_similarity

If you need to pass in arguments to mysql, use the MYSQL_ARGS variable:

make read MYSQL_ARGS="-u user -psecret"

After modifying the SQL instructions, use reset to drop the tables:

make reset && make read

Once the database is ready, you can run the site locally:

cp access-portal/backend/globalVariables/{,}
vi access-portal/backend/globalVariables/ # change to add database login info
cd access-portal
php -S localhost:8000

Now you can visit http://localhost:8000/index.php in your browser.

To show the similarity table, the values must be precomputed. To do that, first run (this only needs to be run once):

make reset_similarity

Then each time the donations data changes, run:

make compute_similarity

For table sorting:

make fetch_table_sorting

This will fetch the necessary files to allow tables to be sorted. To remove these files, run make clean_table_sorting.

For AnchorJS:

make fetch_anchorjs

To remove AnchorJS, run make clean_anchorjs.


This section is a tutorial of the main features of Donations List Website (DLW), with a focus on the parts that are probably non-obvious to casual users.

Main page

The main page of DLW shows information aggregated from all donations tracked by the site. The main page has the path starting with / or /index.php.

The main page of DLW has an optional parameter called display that changes the kind and number of donations listed. Currently, the possible values are:

  • individual-scale, which displays donations made by individuals (in other words, excluding donations made by private foundations and other group entities)
  • full, which displays all donations tracked by DLW
  • empty value (the default), which restricts donations to the top 30 donors, donees, and cause areas

Donor page

Each donor tracked by DLW has a donor page. Donor pages have a path starting with /donor.php. An example is the donor page for the Open Philanthropy Project.

For the Open Philanthropy Project in particular, there is a table of disclosures (from before it stopped announcing disclosures). Currently no other donor has disclosures data.

Donee page

Each donee tracked by DLW has a donee page. Donee pages have a path starting with /donee.php. An example is the donee page for Lightcone Infrastructure (formerly LessWrong 2.0).

Some entities are both a donor and a donee, in which case there will be separate pages for each role. An example is the Berkeley Existential Risk Initiative (BERI):

Donor–donee page

It is sometimes interesting to look at a specific donor–donee pair and see all the donations made by the donor to the donee, their relationship, a list of documents that mention both of them, and so on. For this, DLW has a donor–donee page for each such pair. Donor–donee pages have a path starting with /donorDonee.php. An example of this is the page for Open Philanthropy Project donations made to the Machine Intelligence Research Institute.

Influencer page

The influencer page looks at the amount of money influenced (a.k.a. the "money moved") by an entity. This is tracked separately from donations, so it is possible to compare the amount of money moved that is claimed (gathered from the entity claiming money moved, e.g. GiveWell) with the amount of money moved that is actually accounted for (gathered from the entities making or receiving the donations, e.g. Against Malaria Foundation or individual donors). Influencer pages have a path starting with /influencer.php.

The only entity for which we currently track money moved information is GiveWell. You can see the amount of influence claimed vs amount of money accounted for in the money moved table.

Even for non-GiveWell entities, influencer pages exist. An example is Chloe Cockburn. In these cases, there is no comparison between the "money moved claimed" and "money moved accounted for", because we have not entered any data for the "money moved claimed". However, it is still possible to see a list of all donations that were influenced.

Cause area filter

Most pages on DLW accept an optional cause area parameter called cause_area_filter. Using this parameter filters the donations to show only those with a matching cause area.

To give some examples:

Donee pages don't have this option, because most donees only work within a single cause area.

About page

The about page discusses how DLW is built and reliability concerns for the data.

Tips and tricks

Cache removal

The cache folder contains caches of several pages. Clearing the cache for all pages can be tedious and is not generally desired. In order to check your updates in the UI, you can just clear cache for specific pages. For instance, to clear the cache for Open Philanthropy, do the following from the repository's root folder:

rm access-portal/cache/$(echo -n "/donor.php?donor=Open+Philanthropy" | md5sum | cut -d' ' -f1).html


Donations list website (DLW): a repository for keeping track of public donations by some people I (arbitrarily) decide to track








No releases published


No packages published